2010-05-27 13 views
22

Para un proyecto de programación, me gustaría acceder a las lecturas de temperatura de mi CPU y GPU. Estaré usando C#. De varios foros me da la impresión de que hay información específica y recursos de desarrollador que necesita para acceder a esa información para varios tableros. Tengo una placa MSI NF750-G55. El sitio web de MSI no tiene la información que estoy buscando. Probé su soporte técnico y el representante con el que hablé afirmó que no tenían esa información. Debe haber una forma de obtener esa información.Control de temperatura de la CPU

¿Alguna idea?

+1

Hay un proyecto de muestra decente en http://geekswithblogs.net/cicorias/archive/2006/11/22/97855.aspx que podría ayudarlo a comenzar. Enlace directo al archivo zip que contiene la solución y todas las fuentes: http://www.cicoria.com/downloads/TemperatureMonitor/TempMonitorSrc.zip –

+2

Usando la solución de Justin Niessner, muchas personas obtuvieron System.InvalidOperationException. Para evitarlo, el programa debe ejecutarse en modo administrativo. –

Respuesta

20

Para al menos el lado de la CPU de las cosas, podría usar WMI.

El espacio de nombres \ objeto es root\WMI, MSAcpi_ThermalZoneTemperature

Código de ejemplo:

ManagementObjectSearcher searcher = 
    new ManagementObjectSearcher("root\\WMI", 
           "SELECT * FROM MSAcpi_ThermalZoneTemperature"); 

ManagementObjectCollection collection = 
    searcher.Get(); 

foreach(ManagementBaseObject tempObject in collection) 
{ 
    Console.WriteLine(tempObject["CurrentTemperature"].ToString()); 
} 

que le dará la temperatura en un formato en bruto. Usted tiene que convertir a partir de ahí:

kelvin = raw/10; 

celsius = (raw/10) - 273.15; 

fahrenheit = ((raw/10) - 273.15) * 9/5 + 32; 
+1

Espero con la respiración contenida. – Paul

+0

@Paul - Afortunadamente no decepciona. –

+0

Recibo este error: 'enumerator.Current' lanzó una excepción de tipo 'System.InvalidOperationException' – Aaron

0

En realidad, la mejor manera de hacer a cualquier hardware relacionado con la codificación usando WMI se realiza mejor mediante el uso de esta herramienta Código WMI creador de Microsoft la herramienta va a crear el código para usted, basado en lo que están buscando y qué idioma .Net quieres usar.

Los lenguajes admitidos actualmente son: C#, Visual Basic, VB Script.

Cuestiones relacionadas