c# - tengo - Obteniendo información de sistema operativo, plataforma y dispositivo en Windows 8
como saber que windows tengo en mi laptop (2)
Solo tengo ItemNameKey, ModelNameKey, ManufacturerKey, para trabajar o los que no tienen números hexadecimales. Los otros no, no sé por qué. Esto es código operativo, pero en C ++, y dado que no hay nada al respecto en C ++ / CX, lo estoy publicando aquí (me tomó un tiempo averiguar qué espacios de nombres se usan en C # y tardé aproximadamente una hora en descubrir cómo escriba cualquier cosa derivable y que funcione fuera de Colecciones :: Iterable and Collections :: Iterator en C ++)
using namespace Windows::System;
//using namespace Windows::System::L.Linq;
using namespace Windows::System::Threading;
using namespace Windows::Devices::Enumeration::Pnp;
using namespace Collections;
//public class SystemInfoEstimate
//{
Platform::Array< Platform::String ^> ^StrArray;// = ref new Platform::Array< Platform::String ^>(1);
ref class MyIterator sealed: IIterator<Platform::String ^>
{
int Index;
public:
MyIterator()
{
Index = 0;
}
property virtual Platform::String ^ Current
{
Platform::String ^ get()
{
return StrArray->get( Index );
}
}
property virtual bool HasCurrent
{
bool get()
{
return true;
}
}
virtual bool MoveNext()
{
Index++;
if (Index >=StrArray->Length)
return false;
return true;
}
virtual unsigned int GetMany( Platform::WriteOnlyArray<Platform::String ^> ^Arr)
{
for(int i=0; i<StrArray->Length; i++)
{
Arr->set( i, StrArray[i] );
}
return StrArray->Length;
}
};
ref class MyIterable sealed: IIterable<Platform::String ^>
{
public:
virtual IIterator<Platform::String ^> ^First()
{
return ref new MyIterator();//StrArray[0];
}
};
Platform::String ^ItemNameKey = "System.ItemNameDisplay";
Platform::String ^ ModelNameKey = "System.Devices.ModelName";
Platform::String ^ ManufacturerKey = "System.Devices.Manufacturer";
Platform::String ^ DeviceClassKey = "{A45C254E-DF1C-4EFD-8020-67D146A850E0},10";
Platform::String ^ PrimaryCategoryKey = "{78C34FC8-104A-4ACA-9EA4-524D52996E57},97";
Platform::String ^ DeviceDriverVersionKey = "{A8B865DD-2E3D-4094-AD97-E593A70C75D6},3";
Platform::String ^ RootContainer = "{00000000-0000-0000-FFFF-FFFFFFFFFFFF}";
Platform::String ^ RootQuery = "System.Devices.ContainerId:=/"" + RootContainer + "/"";
Platform::String ^ HalDeviceClass = "4d36e966-e325-11ce-bfc1-08002be10318";
void GetSystemInfo()
{
//return;
StrArray = ref new Platform::Array< Platform::String ^>(2);
MyIterable^ MI = ref new MyIterable();
StrArray->set( 0, ModelNameKey );//ManufacturerKey );
StrArray->set( 1, ManufacturerKey );
auto v = create_task( PnpObject::CreateFromIdAsync(PnpObjectType::DeviceContainer, RootContainer, MI )//StrArray);
);
v.wait();
PnpObject ^Ret = v.get();
UINT Size = Ret->Properties->Size;
if (Size > 0)
{
for(int i=0; i<StrArray->Length; i++)
{
IIterator< IKeyValuePair< Platform::String ^, Platform::Object ^>^ > ^ It = Ret->Properties->First();
bool Moving = true;
while(Moving)
{
Platform::String ^PropStr = It->Current->Value->ToString();
//You could put OutputDebugString here ^
Moving = It->MoveNext();
}
}
}
}
¿Cómo obtengo la siguiente información sobre Windows 8?
Plataforma, versión del sistema operativo, nombre del dispositivo, ID del dispositivo y operador (no estoy seguro de si el operador es aplicable a Windows 8)
Con Windows Phone 8, los recupero usando:
Platform: Environment.OSVersion.Platform
OS Version: Environment.OSVersion.Version
Device name: Microsoft.Phone.Info.DeviceStatus.DeviceName
Device ID: Windows.Phone.System.Analytics.HostInformation.PublisherHostId
Carrier: Microsoft.Phone.Net.NetworkInformation.DeviceNetworkInformation.CellularMobileOperator
Estoy buscando el equivalente de Windows 8 de la información anterior de Windows Phone 8 usando C #.
Puede obtener información debajo de aquí
Versión de Windows
Arquitectura del procesador
Categoría del dispositivo
Fabricante de dispositivos
Modelo de dispositivo
Para la identificación única, vea UDID para Windows 8
Puede obtener información debajo de aquí
Version de aplicacion
Versión del sistema operativo
Nombre de la máquina