Programa para leer temperatura CPU (sensores)

19/10/2007 - 13:39 por Naimus | Informe spam
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!!!

Preguntas similare

Leer las respuestas

#1 RFOG
19/10/2007 - 14:16 | Informe spam
Hasta donde yo sé no vas a poder si por WMI no se puede.

Tendrás que hacer interop a código nativo, posiblemente a través de la
función de Win32 DeviceIOControl con los valores adecuados, si no
necesitarás algún driver en modo kernel para acceder a los registros de
cada chip de control de temperatura... Y ten en cuenta que en general cada
modelo de placa, chipset, etc seguro que lleva los suyos propios y se
accede de diferente forma.

Seguro que el programa que comentas de Intel está hecho en C++ nativo.

Y aquí es donde se ve claramente la no-adecuación de un
lenguaje/herramienta a los propósitos de una tarea. Igual que a mi no se
me ocurriría hacer un programa de gestión de base de datos en C++ "a pelo"
(que conste que hay bibliotectas que facilitan la tarea), tampoco se me
ocurriría hacer esto en C# y .NET.

En Fri, 19 Oct 2007 13:39:00 +0200, Naimus
escribió:

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!!!






Microsoft Visual C++ MVP
==Visita mi blog principal: http://rfog.blogsome.com
Y este sobre programación: http://geeks.ms/blogs/rfog
Libros, ciencia ficción y programación
La verdadera energía y el verdadero caracter son como el valor, tranquilo
y moderado, sin alardes y sin vacilaciones.
Respuesta Responder a este mensaje
#2 Naimus
19/10/2007 - 16:46 | Informe spam
Muchas Gracias RFOG!!!

El caso es que empezé a hacer esto un poco "a ciegas", sin saber NADA acerca
de cómo leer valores de este tipo (ni haber utilizado un driver a nivel de
código sin ninguna API o Ejemplo), y lo hice en c# por que en principio se
habia hablado de integrar el código dentro de otra aplicación integramente
hecha en c#. Ya se sabe, ante todo que sea práctico y fácil para todos...

De hecho, el soporte que proporciona .NET y C# para WMI es completo, es
decir, se puede acceder con total comodidad a cualquier clase de WMI con los
métodos existentes en .NET, pero claro, cuando no sabes de algo a veces pasan
estas cosas, que lo descubres "a palos" y lo que parecia a priori la
solución, resulta que sólo sirve para dispositivos (o fabricantes) que
vinculan o instancian estos drivers a través de WMI (en este caso los
fabricantes de portátiles)...

He descubierto que Microsoft proporciona una especie de pasarela, en forma
de driver (.sys) llamado wmiacpi.sys. Podria ser una solución. Pero volvemos
a lo mismo, cómo utilizo esto en C++ o C#?? como llamo a los métodos del
driver este??? Algún ejemplo????

También existe la solución del ASL (ACPI Source Language) para el que dan
soporte tanto Intel como Microsoft, pero volvemos a lo mismo...

Hay alguien que sepa como utilizar algo de esto en un código entendible o
generalizado (C++ o C#), aunque haya que hacer cosas aparte, pero almenos
algún ejemplo desde el principio???... no estaria de mas que desarrolladores
y fabricantes se dedicasen a facilitar las cosas a los sufridos programadores
en vez de dedicarse a vender y fardar de lo que pueden hacer sus productos.

Perdona por el tostón pero es que llevo con esto bastante tiempo y empiezo a
quemarme, a cada paso que doy es como un laberinto que tiene todos los
caminos cerrados...

Muchas gracias. Espero que me podais ayudar mas.


"RFOG" wrote:

Hasta donde yo sé no vas a poder si por WMI no se puede.

Tendrás que hacer interop a código nativo, posiblemente a través de la
función de Win32 DeviceIOControl con los valores adecuados, si no
necesitarás algún driver en modo kernel para acceder a los registros de
cada chip de control de temperatura... Y ten en cuenta que en general cada
modelo de placa, chipset, etc seguro que lleva los suyos propios y se
accede de diferente forma.

Seguro que el programa que comentas de Intel está hecho en C++ nativo.

Y aquí es donde se ve claramente la no-adecuación de un
lenguaje/herramienta a los propósitos de una tarea. Igual que a mi no se
me ocurriría hacer un programa de gestión de base de datos en C++ "a pelo"
(que conste que hay bibliotectas que facilitan la tarea), tampoco se me
ocurriría hacer esto en C# y .NET.

En Fri, 19 Oct 2007 13:39:00 +0200, Naimus
escribió:

> 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!!!
>



Microsoft Visual C++ MVP
==> Visita mi blog principal: http://rfog.blogsome.com
Y este sobre programación: http://geeks.ms/blogs/rfog
Libros, ciencia ficción y programación
> La verdadera energía y el verdadero caracter son como el valor, tranquilo
y moderado, sin alardes y sin vacilaciones.

Respuesta Responder a este mensaje
#3 RFOG
19/10/2007 - 17:05 | Informe spam
Nunca he hecho nada de eso, pero por lo que veo es para que los creadores
de drivers hagan el interfaz de su chip a WMI, no para que los usuarios
finales puedan acceder a esa información
(http://www.microsoft.com/whdc/syste...-acpi.mspx)

Y lo mismo con el ASL
(http://www.microsoft.com/whdc/syste...otify.mspx).

Todo eso es para que los fabricantes de placas y demás hagan sus drivers.
De MS tienes el Device Driver Kit, que posiblemente incluya más
información sobre todo eso
(http://www.microsoft.com/whdc/devto...fault.mspx).

Por otro lado, teniendo la suerte de conocer el nombre del dispositivo en
cuestión, y si Windows lo tiene registrado (lo que necesita un driver o
que al menos Windows sepa qué es), mediante DeviceIOControl es posible
pasar y obtener información de ese dispostivo.
http://msdn2.microsoft.com/en-us/li...3224.aspx.

Todo lo que se salga de ahí requiere un driver.

Aunque siempre te quedaría la posibilidad de mirar qué hacen programas
como los que citas, es decir, mediante el Windbg (Windows Debugging Tools)
u otras herramientas similares, pegarte la empollada monitorizando.

En Fri, 19 Oct 2007 16:46:01 +0200, Naimus
escribió:

Muchas Gracias RFOG!!!

El caso es que empezé a hacer esto un poco "a ciegas", sin saber NADA
acerca
de cómo leer valores de este tipo (ni haber utilizado un driver a nivel
de
código sin ninguna API o Ejemplo), y lo hice en c# por que en principio
se
habia hablado de integrar el código dentro de otra aplicación
integramente
hecha en c#. Ya se sabe, ante todo que sea práctico y fácil para todos...

De hecho, el soporte que proporciona .NET y C# para WMI es completo, es
decir, se puede acceder con total comodidad a cualquier clase de WMI con
los
métodos existentes en .NET, pero claro, cuando no sabes de algo a veces
pasan
estas cosas, que lo descubres "a palos" y lo que parecia a priori la
solución, resulta que sólo sirve para dispositivos (o fabricantes) que
vinculan o instancian estos drivers a través de WMI (en este caso los
fabricantes de portátiles)...

He descubierto que Microsoft proporciona una especie de pasarela, en
forma
de driver (.sys) llamado wmiacpi.sys. Podria ser una solución. Pero
volvemos
a lo mismo, cómo utilizo esto en C++ o C#?? como llamo a los métodos del
driver este??? Algún ejemplo????

También existe la solución del ASL (ACPI Source Language) para el que dan
soporte tanto Intel como Microsoft, pero volvemos a lo mismo...

Hay alguien que sepa como utilizar algo de esto en un código entendible o
generalizado (C++ o C#), aunque haya que hacer cosas aparte, pero almenos
algún ejemplo desde el principio???... no estaria de mas que
desarrolladores
y fabricantes se dedicasen a facilitar las cosas a los sufridos
programadores
en vez de dedicarse a vender y fardar de lo que pueden hacer sus
productos.

Perdona por el tostón pero es que llevo con esto bastante tiempo y
empiezo a
quemarme, a cada paso que doy es como un laberinto que tiene todos los
caminos cerrados...

Muchas gracias. Espero que me podais ayudar mas.


"RFOG" wrote:

Hasta donde yo sé no vas a poder si por WMI no se puede.

Tendrás que hacer interop a código nativo, posiblemente a través de la
función de Win32 DeviceIOControl con los valores adecuados, si no
necesitarás algún driver en modo kernel para acceder a los registros de
cada chip de control de temperatura... Y ten en cuenta que en general
cada
modelo de placa, chipset, etc seguro que lleva los suyos propios y se
accede de diferente forma.

Seguro que el programa que comentas de Intel está hecho en C++ nativo.

Y aquí es donde se ve claramente la no-adecuación de un
lenguaje/herramienta a los propósitos de una tarea. Igual que a mi no se
me ocurriría hacer un programa de gestión de base de datos en C++ "a
pelo"
(que conste que hay bibliotectas que facilitan la tarea), tampoco se me
ocurriría hacer esto en C# y .NET.

En Fri, 19 Oct 2007 13:39:00 +0200, Naimus
escribió:

> 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!!!
>



Microsoft Visual C++ MVP
==>> Visita mi blog principal: http://rfog.blogsome.com
Y este sobre programación: http://geeks.ms/blogs/rfog
Libros, ciencia ficción y programación
>> La verdadera energía y el verdadero caracter son como el valor,
tranquilo
y moderado, sin alardes y sin vacilaciones.








Microsoft Visual C++ MVP
==Visita mi blog principal: http://rfog.blogsome.com
Y este sobre programación: http://geeks.ms/blogs/rfog
Libros, ciencia ficción y programación
La verdadera energía y el verdadero caracter son como el valor, tranquilo
y moderado, sin alardes y sin vacilaciones.
Respuesta Responder a este mensaje
#4 Naimus
19/10/2007 - 17:38 | Informe spam
Si, todo esto ya lo habia encontrado...

La verdad es que la opción de DeviceIOControl la habia visto por encima...

Voy a ver si me sirve esta opción, también estoy intentando enviar un
comentario en intel, a ver si alguien me dice algo y arroja algo de luz...

seguiré informando de mis éxitos / fracasos

"RFOG" wrote:

Nunca he hecho nada de eso, pero por lo que veo es para que los creadores
de drivers hagan el interfaz de su chip a WMI, no para que los usuarios
finales puedan acceder a esa información
(http://www.microsoft.com/whdc/syste...-acpi.mspx)

Y lo mismo con el ASL
(http://www.microsoft.com/whdc/syste...otify.mspx).

Todo eso es para que los fabricantes de placas y demás hagan sus drivers.
De MS tienes el Device Driver Kit, que posiblemente incluya más
información sobre todo eso
(http://www.microsoft.com/whdc/devto...fault.mspx).

Por otro lado, teniendo la suerte de conocer el nombre del dispositivo en
cuestión, y si Windows lo tiene registrado (lo que necesita un driver o
que al menos Windows sepa qué es), mediante DeviceIOControl es posible
pasar y obtener información de ese dispostivo.
http://msdn2.microsoft.com/en-us/li...3224.aspx.

Todo lo que se salga de ahí requiere un driver.

Aunque siempre te quedaría la posibilidad de mirar qué hacen programas
como los que citas, es decir, mediante el Windbg (Windows Debugging Tools)
u otras herramientas similares, pegarte la empollada monitorizando.

En Fri, 19 Oct 2007 16:46:01 +0200, Naimus
escribió:

> Muchas Gracias RFOG!!!
>
> El caso es que empezé a hacer esto un poco "a ciegas", sin saber NADA
> acerca
> de cómo leer valores de este tipo (ni haber utilizado un driver a nivel
> de
> código sin ninguna API o Ejemplo), y lo hice en c# por que en principio
> se
> habia hablado de integrar el código dentro de otra aplicación
> integramente
> hecha en c#. Ya se sabe, ante todo que sea práctico y fácil para todos...
>
> De hecho, el soporte que proporciona .NET y C# para WMI es completo, es
> decir, se puede acceder con total comodidad a cualquier clase de WMI con
> los
> métodos existentes en .NET, pero claro, cuando no sabes de algo a veces
> pasan
> estas cosas, que lo descubres "a palos" y lo que parecia a priori la
> solución, resulta que sólo sirve para dispositivos (o fabricantes) que
> vinculan o instancian estos drivers a través de WMI (en este caso los
> fabricantes de portátiles)...
>
> He descubierto que Microsoft proporciona una especie de pasarela, en
> forma
> de driver (.sys) llamado wmiacpi.sys. Podria ser una solución. Pero
> volvemos
> a lo mismo, cómo utilizo esto en C++ o C#?? como llamo a los métodos del
> driver este??? Algún ejemplo????
>
> También existe la solución del ASL (ACPI Source Language) para el que dan
> soporte tanto Intel como Microsoft, pero volvemos a lo mismo...
>
> Hay alguien que sepa como utilizar algo de esto en un código entendible o
> generalizado (C++ o C#), aunque haya que hacer cosas aparte, pero almenos
> algún ejemplo desde el principio???... no estaria de mas que
> desarrolladores
> y fabricantes se dedicasen a facilitar las cosas a los sufridos
> programadores
> en vez de dedicarse a vender y fardar de lo que pueden hacer sus
> productos.
>
> Perdona por el tostón pero es que llevo con esto bastante tiempo y
> empiezo a
> quemarme, a cada paso que doy es como un laberinto que tiene todos los
> caminos cerrados...
>
> Muchas gracias. Espero que me podais ayudar mas.
>
>
> "RFOG" wrote:
>
>> Hasta donde yo sé no vas a poder si por WMI no se puede.
>>
>> Tendrás que hacer interop a código nativo, posiblemente a través de la
>> función de Win32 DeviceIOControl con los valores adecuados, si no
>> necesitarás algún driver en modo kernel para acceder a los registros de
>> cada chip de control de temperatura... Y ten en cuenta que en general
>> cada
>> modelo de placa, chipset, etc seguro que lleva los suyos propios y se
>> accede de diferente forma.
>>
>> Seguro que el programa que comentas de Intel está hecho en C++ nativo.
>>
>> Y aquí es donde se ve claramente la no-adecuación de un
>> lenguaje/herramienta a los propósitos de una tarea. Igual que a mi no se
>> me ocurriría hacer un programa de gestión de base de datos en C++ "a
>> pelo"
>> (que conste que hay bibliotectas que facilitan la tarea), tampoco se me
>> ocurriría hacer esto en C# y .NET.
>>
>> En Fri, 19 Oct 2007 13:39:00 +0200, Naimus
>> escribió:
>>
>> > 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!!!
>> >
>>
>>
>>
>> Microsoft Visual C++ MVP
>> ==> >> Visita mi blog principal: http://rfog.blogsome.com
>> Y este sobre programación: http://geeks.ms/blogs/rfog
>> Libros, ciencia ficción y programación
>> > >> La verdadera energía y el verdadero caracter son como el valor,
>> tranquilo
>> y moderado, sin alardes y sin vacilaciones.
>>



Microsoft Visual C++ MVP
==> Visita mi blog principal: http://rfog.blogsome.com
Y este sobre programación: http://geeks.ms/blogs/rfog
Libros, ciencia ficción y programación
> La verdadera energía y el verdadero caracter son como el valor, tranquilo
y moderado, sin alardes y sin vacilaciones.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida