SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: danybdk en Miércoles 25 de Enero de 2012, 21:14

Título: Como leer temperatura procesador ??
Publicado por: danybdk en Miércoles 25 de Enero de 2012, 21:14
Hola, me gustaria saber como puedo monitorizar la temperatura de la cpu para poder usarla en un programa que estoy haciendo, he buscando mucho en internet pero no encuentro nada alguien tiene idea?, gracias
Título: Re:Como leer temperatura procesador ??
Publicado por: U2_Caparzo en Lunes 12 de Marzo de 2012, 00:23
no se puede, si algun computador tuviera ese tipo de "termometro" en el procesador, ya traeria implementado un monitor para eso, lo que tratas de hacer es como captar wi-fi desde un pc que no tiene esa opcion, por tener un software que capte wi-fi, si no esta el hardware, no captara wi-fi.
Título: Re:Como leer temperatura procesador ??
Publicado por: gabio2 en Lunes 12 de Marzo de 2012, 01:50
U2_Caparzo, por lo general si trae ese tipo de monitoreo, al menos en las computadoras actuales si alcanzan cierta temperatura se apagan por protección (no digo que todas las traigan) pero en la mayoría de las computadoras y portátiles en el BIOS es posible leer ese dato, sin embargo no sé como obtenerlo en algún lenguaje de programación.
Título: Re:Como leer temperatura procesador ??
Publicado por: U2_Caparzo en Lunes 12 de Marzo de 2012, 03:04
U2_Caparzo, por lo general si trae ese tipo de monitoreo, al menos en las computadoras actuales si alcanzan cierta temperatura se apagan por protección (no digo que todas las traigan) pero en la mayoría de las computadoras y portátiles en el BIOS es posible leer ese dato, sin embargo no sé como obtenerlo en algún lenguaje de programación.

lo primero si me he percatado, mi laptop se apaga sola(es que ya esta viejita :$) ¿pero sera posible que solo sea como sistema de seguridad mas que algo que pueda ser usado por el usuario de la computadora? a mi parecer no parece una mala opcion a tomar en cuenta... pero bueno en mi caso es solo una teoria debido a que no tengo un amplio conocimiento sobre hardware y en programacion solo estoy empezando en C#
Título: Re:Como leer temperatura procesador ??
Publicado por: rfog en Lunes 12 de Marzo de 2012, 10:22
Supongo que se podrá leer por WMI, pero no sé cómo.

La medida de la temperatura en un micro ha ido evolucionando a lo largo del tiempo. Primero llevaban las placas base un sensor justo debajo del zócalo, y luego AMD puso de moda que fuera el propio micro el que se leyera a sí mismo su propia temperatura.

En todos los casos supone acceder al hardware, y dependiendo del micro y de la edad del mismo se hace de una forma o de otra. En el caso de que sea la placa base la que mida la temperatura, tendríamos que acceder a los datos de la bios (ojo, a los datos, no a la bíos).

En el caso de un micro moderno, existen instrucciones en ensamblador para obtener dicho valor, y si no existen, se hace accediendo al "espacio de direcciones del micro", es decir, una dirección de memoria absoluta fuera de cualquier virtualización de memoria te daría el valor de la temperatura.

Bueno, en ambos casos, realmente el valor no, sino un número con el cual, aplicando una ecuación que es diferente para cada micro y manera de leerla, te daría el valor real de la temperatura.

Pero para todo eso es necesario acceder al anillo 0 y con instrucciones de modo privilegidado: en otras palabras, o te permite el WMI (que lo ignoro, y muchas veces lo que se lea ahí suele ser bastante impreciso) o te tienes que hacer un driver de dispostivo, que será diferente para cada combinación de procesador/placa base (Y es por eso por lo que cada fabricante de placas base te da un programa para mirar la temperatura y no suele haber uno que lo haga para cualquier micro/placa base, y si los hay, que los hay, en general si tienes la suerte de que hayan implementado el algoritmo y el driver de tu sistema, podrás ver la temperatura. En otro caso, ni siquiera puedes estar seguro de que el valor que te muestren sea cierto).