2010-05-27 3 views
22

Pour un projet de programmation, je souhaite accéder aux relevés de température de mon CPU et de mes GPU. Je vais utiliser C#. De divers forums, j'ai l'impression qu'il y a des informations spécifiques et des ressources de développeur dont vous avez besoin pour accéder à ces informations pour différents conseils. J'ai une carte MSI NF750-G55. Le site Web de MSI ne contient aucune des informations que je recherche. J'ai essayé leur support technique et le représentant à qui j'ai parlé a déclaré ne pas avoir de telles informations. Il doit y avoir un moyen d'obtenir cette information.Surveillance de la température du processeur

Des pensées?

+1

Il existe un exemple de projet décent sur http://geekswithblogs.net/cicorias/archive/2006/11/22/97855.aspx qui pourrait vous aider à démarrer. Lien direct vers le fichier zip contenant la solution et toutes les sources: http://www.cicoria.com/downloads/TemperatureMonitor/TempMonitorSrc.zip –

+2

En utilisant la solution de Justin Niessner, beaucoup de gens ont System.InvalidOperationException. Afin de l'éviter, le programme doit être exécuté en mode administratif. –

Répondre

20

Pour le côté CPU au moins, vous pouvez utiliser WMI.

L'espace de noms objet \ est root\WMI, MSAcpi_ThermalZoneTemperature

Exemple de code:

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

ManagementObjectCollection collection = 
    searcher.Get(); 

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

qui vous donnera la température dans un format brut. Vous devez convertir à partir de là:

kelvin = raw/10; 

celsius = (raw/10) - 273.15; 

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

J'attends avec haleine appâté. – Paul

+0

@Paul - J'espère que cela ne déçoit pas. –

+0

Je reçois cette erreur: 'enumerator.Current' a lancé une exception de type 'System.InvalidOperationException' – Aaron

0

En fait, la meilleure façon faire à tout le matériel connexe de codage utilisant WMI est mieux fait par l'utilisation de ce code WMI outil créateur de Microsoft l'outil va créer le code pour vous en fonction de ce que vous cherchez et quelle langue .Net vous voulez utiliser.

Les langauges supportés sont actuellement: C#, Visual Basic, VB Script.

Questions connexes