2010-05-27 21 views
22

Per un progetto di programmazione vorrei accedere alle letture della temperatura dalla mia CPU e dalle GPU. Userò C#. Da vari forum ho l'impressione che ci siano informazioni specifiche e risorse per gli sviluppatori di cui hai bisogno per accedere a tali informazioni per varie schede. Ho una scheda MSI NF750-G55. Il sito Web di MSI non ha nessuna delle informazioni che sto cercando. Ho provato il loro supporto tecnico e il rappresentante con cui ho parlato ha dichiarato di non avere tali informazioni. Ci deve essere un modo per ottenere tali informazioni.Monitoraggio della temperatura della CPU

Qualche idea?

+1

C'è un progetto di esempio decente su http://geekswithblogs.net/cicorias/archive/2006/11/22/97855.aspx che potrebbe aiutarti a iniziare. Link diretto al file zip contenente la soluzione e tutte le fonti: http://www.cicoria.com/downloads/TemperatureMonitor/TempMonitorSrc.zip –

+2

Utilizzando la soluzione di Justin Niessner molte persone hanno ottenuto System.InvalidOperationException. Per evitarlo, il programma dovrebbe essere eseguito in modalità amministrativa. –

risposta

20

Per almeno il lato CPU delle cose, è possibile utilizzare WMI.

L'\ oggetto namespace è root\WMI, MSAcpi_ThermalZoneTemperature

codice di esempio:

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

ManagementObjectCollection collection = 
    searcher.Get(); 

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

che vi darà la temperatura in un formato raw. Dovete convertire da lì:

kelvin = raw/10; 

celsius = (raw/10) - 273.15; 

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

Attendo con fiato sospeso. – Paul

+0

@Paul - Speriamo che non delude. –

+0

Ho ricevuto questo errore: 'enumerator.Current' ha generato un'eccezione di tipo 'System.InvalidOperationException' – Aaron

0

realtà il modo migliore fare per qualsiasi hardware correlati codifica utilizzando WMI è fatto meglio attraverso l'utilizzo di questo strumento Codice WMI Creatore dal Microsoft lo strumento creerà il codice per, sulla base di ciò che si stai cercando e quale lingua .Net vuoi usare.

Le lingue attualmente supportate sono: C#, Visual Basic, VB Script.

Problemi correlati