Hola a todos,
El caso es que llevo un tiempo desarrollando una aplicación para leer la
temperatura de los sensores de la CPU (no para portátiles), y precisamente lo
único que he conseguido es leer la temperatura de la CPU en portátiles a
través de WMI (en concreto, las clases MAcpi_ThermalZoneTemperature en
root\\WMI y Win32_TemperatureProbe en root\\CIMv2). A continuación expongo el
método que utilizo en la DLL que he creado para verificar si en el ordenador
donde se ejecuta la aplicación dispone de dicha información:
private bool existsTemperatureMethods()
{
string scope1 = "root\\WMI";
string query1 = "select * from MSAcpi_ThermalZoneTemperature";
string scope2 = "root\\CIMV2";
string query2 = "select * from Win32_TemperatureProbe";
Mo1 = new ManagementObjectSearcher(scope1,query1);
Mo2 = new ManagementObjectSearcher(scope2,query2);
Mo1.Options.DirectRead = true;
Mo1.Options.EnumerateDeep = true;
Mo2.Options.DirectRead = true;
Mo2.Options.EnumerateDeep = true;
q1 = Mo1.Get();
q2 = Mo2.Get();
if(q1!=null )
{
try
{
foreach(ManagementObject Q1 in q1)
{
eTMMo1 = true;
this.existsTM = true;
ntemp++;
}
}
catch(System.Management.ManagementException Mex)
{
eTMMo1 = false;
}
}
if(q2!=null)
{
try
{
foreach(ManagementObject Q2 in q2)
{
eTMMo2 = true;
this.existsTM = true;
ntemp++;
}
}
catch(System.Management.ManagementException Mex)
{
eTMMo2 = false;
if(!eTMMo1)
{
existsTM = false;
}
}
}
return this.existsTM;
}
Me he estado informando ampliamente sobre el tema pero no he encontrado nada
concreto sobre cómo obtener dichas temperaturas (que se positivamente que
existen, dado que otros programas como Intel Desktop Utilities, en la placa
modelo DG965WH de intel, los muestran de manera activa...).
Intuyo que debo acceder a la información de los sensores via ACPI, SMBus,
IPMI, etc... pero no he encontrado ningún recurso o explicación
suficientemente clara como para poder desarrollar en c#...)
Espero vuestras respuestas!!!
Leer las respuestas