Как получить информацию о температуре процессора из Bios с помощью c #?

Как получить информацию о температуре процессора из Bios с помощью C # Я попробовал использовать код в мониторинг температуры процессора

Но не повезло. 'enumerator.Current' вызвал исключение.

Как я могу этого добиться? Спасибо.

Ошибка :

"Эта система не поддерживает требуемые объекты WMI (1) - проверьте файл исключения \ r \ nНе поддерживается \ r \ n \ r \ n в System.Management.ManagementException.ThrowWithExtendedInfo (ManagementStatus errorCode) \ r \ n в системе .Management.ManagementObjectCollection.ManagementObjectEnumerator.MoveNext () \ r \ n в CedarLogic.WmiLib.SystemStatistics.RefreshReadings () в D: \ Downloads \ TempMonitorSrc \ TemperatureMonitorSln \ WmiLibcs \ System.Statistics .SystemStatistics.get_CurrentTempera () в D: \ Downloads \ TempMonitorSrc \ TemperatureMonitorSln \ WmiLib \ SystemStatistics.cs: строка 87 \ r \ n в TemperatureMonitor.SystemTrayService.CheckSupport () в D: \ TemperatureTrayService.CheckSupport () в D: \ TemperatureTrayMonitorSrcitorSrc \ Temperature cs: строка 260 "


person Anuya    schedule 01.09.2010    source источник
comment
Вам нужно будет получить улучшенного поставщика WMI от производителя материнской платы. Не рассчитывай на получение.   -  person Hans Passant    schedule 01.09.2010
comment
Вы можете просмотреть все объекты WMI с помощью WMI Studio. Это проводник для объектов WMI. Вы можете найти его с помощью своей любимой поисковой системы.   -  person linuxuser27    schedule 01.09.2010
comment
Есть ли другой способ сделать это ИЛИ что я могу сделать, чтобы он поддерживал WMI? Спасибо.   -  person Anuya    schedule 01.09.2010
comment
@ linuxuser27, я хочу выполнить эту задачу программно.   -  person Anuya    schedule 01.09.2010
comment
Да, я это понимаю. Я просто упомянул об этом инструменте, чтобы вы могли увидеть, какие объекты WMI доступны. Имя объекта могло измениться в зависимости от того, какую версию Windows вы используете.   -  person linuxuser27    schedule 01.09.2010
comment
@ linuxuser27, я проверил с помощью указанного вами инструмента. Существует класс под названием MSAcpi_ThermalXOneTempera, но он говорит, что у выбранного класса нет экземпляра.   -  person Anuya    schedule 01.09.2010
comment
Отсутствие экземпляров означает, что вам не повезло. К сожалению, «Ганс Пассан» правильный. Если экземпляров рассматриваемых классов нет или вы не можете найти там объект, который предоставит вам эту информацию, вам придется получить поставщика WMI от вашего производителя.   -  person linuxuser27    schedule 01.09.2010
comment
@ linuxuser27, Я хочу прояснить одну вещь. Это похоже на то, что с этой материнской платой, которая у меня сейчас есть, ничего нельзя сделать ИЛИ я могу использовать какой-нибудь драйвер для поставщика WMI? Я новичок в WMI ...   -  person Anuya    schedule 01.09.2010
comment
Это не проблема драйвера. Это компонент WMI, использующий базовый драйвер. Возможно, вы установили драйвер для этого компонента, но, похоже, не существует компонента WMI, поддерживающего этот драйвер. WMI - это просто абстракция для управления системой.   -  person linuxuser27    schedule 01.09.2010
comment
@ linuxuser27, WMI - единственный способ получить доступ к температуре ЦП. Информация ?   -  person Anuya    schedule 01.09.2010
comment
Честно говоря, понятия не имею. Я уверен, что есть и другие механизмы, но я их не знаю. Есть и другие объекты WMI, которые предоставляют информацию о температуре. Эти классы можно найти в root\CIMV2 под CIM_ManagedSystemElement\CIM_LogicalElement\CIM_LogicalDevice. Эти классы содержат много информации, а не только temp. Вы можете найти там то, что ищете. Удачи.   -  person linuxuser27    schedule 01.09.2010


Ответы (3)


Я бы порекомендовал следующий подход. Есть несколько бесплатных приложений, которые следят за температурой процессора и отображают ее. Попробуйте загрузить некоторые из них, а затем проанализируйте приложение, чтобы увидеть, какие методы они вызывают, чтобы узнать, как они работают. Может быть, у них совсем другой подход, чем у вашего существующего. Также вы можете просто написать им электронное письмо и спросить, как они это сделали ...

http://www.alcpu.com/CoreTemp/

http://www.techpowerup.com/realtemp/

http://malektips.com/core-temp-cpu-windows-system-tray-taskbar.html

person Phil Wright    schedule 03.09.2010

Вам необходимо поддерживать множество различных аппаратных датчиков для сбора данных о температуре. Лучше взять готовые решения вроде этих:

1) Open Hardware Monitor - приложение .NET 2.0 с открытым исходным кодом:

http://openhardwaremonitor.org/

2) Core Temp - бесплатное приложение и .NET API для получения данных о температуре:

http: // www.alcpu.com/CoreTemp/developers.html

person Community    schedule 03.09.2010

Я знаю, что эта ветка устарела, но я хотел добавить к ней немного другой подход. Получите марку / модель микросхемы ввода-вывода на материнской плате и получите лист данных для указанной микросхемы ввода-вывода (здесь для справки я буду использовать микросхему ITE IT8783F). Посмотрите что-то вроде Environment Controller и вычислите порты доступа и чтения. Да ... вы должны понимать HEX, MSB и LSB, и я не буду вдаваться в вычисления / объяснения здесь (выходящие за рамки). Теперь, в этом случае порт доступа - 295, а порт чтения - 296. Ниже в разделе есть таблица для регистров контроллера среды. В этом случае температура процессора находится в регистре 2Ah (или 0x2A). Итак, код VB / C #, который я использовал для получения информации, выглядит так:

Private Function GetCPUTemp() As UInt32
    Dim tCpu As UInt32
    Dim stCpu As Short
    PortAccess.Outputb(&H295, &H2A)
    stCpu = PortAccess.Inputb(&H296)
    tCpu = CType(stCpu, UInt32)
    Return tCpu
End Function

Теперь вам просто нужно выяснить, что вы хотите с этим делать. Помните, если вы обнаружите, что получаете сумасшедшие дурацкие числа, вы либо берете из неправильного регистра, либо вам может потребоваться реализовать коэффициент масштабирования (как вы делаете с показаниями напряжения). Это тоже должно быть в паспорте.

person Highroller    schedule 03.04.2012
comment
Вот соответствующий документ от Intel, Мониторинг ЦП с DTS / PECI от сентября 2010 г., download.intel.com/design/intarch/papers/322683.pdf с некоторой информацией об интерпретации данных о температуре процессоров Intel. - person Richard Chambers; 13.01.2013