2010-05-27 4 views
22

Для проекта программирования я хотел бы получить доступ к показаниям температуры с моего процессора и графических процессоров. Я буду использовать C#. На разных форумах создается впечатление, что для доступа к этой информации для разных плат требуется определенная информация и ресурсы разработчиков. У меня есть плата MSI NF750-G55. На веб-сайте MSI нет никакой информации, которую я ищу. Я попробовал их техническую поддержку, и представитель, с которым я говорил, заявил, что у них нет такой информации. Должен быть способ получить эту информацию.Мониторинг температуры процессора

Любые мысли?

+1

Существует достойный образец проекта по адресу http://geekswithblogs.net/cicorias/archive/2006/11/22/97855.aspx, который может помочь вам приступить к работе. Прямая ссылка на zip-файл, содержащий решение и все источники: http://www.cicoria.com/downloads/TemperatureMonitor/TempMonitorSrc.zip –

+2

Используя решение Justin Niessner, многие люди получили System.InvalidOperationException. Чтобы избежать этого, программа должна запускаться в административном режиме. – 2013-05-07 18:21:51

ответ

20

По крайней мере, на стороне процессора, вы можете использовать WMI.

Пространство имен \ объект root\WMI, MSAcpi_ThermalZoneTemperature

Пример кода:

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

ManagementObjectCollection collection = 
    searcher.Get(); 

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

Это даст вам температуру в сыром виде. Вы должны преобразовать оттуда:

kelvin = raw/10; 

celsius = (raw/10) - 273.15; 

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

Я жду с наживкой. – Paul

+0

@Paul - Надеюсь, это не разочарует. –

+0

Я получаю эту ошибку: «enumerator.Current» выбрал исключение типа «System.InvalidOperationException» – Aaron

0

На самом деле лучший способ сделать для любого оборудования, связанного кодирования с использованием WMI лучше всего сделать с помощью с помощью этого инструмента Код WMI Creator от Microsoft инструмент будет создавать код для вас на основе того, что вы ищут и какой язык .Net вы хотите использовать.

В настоящее время поддерживаются langauges: C#, Visual Basic, VB Script.

Смежные вопросы