Кто-нибудь знает, как получить текущую статистику температуры материнской платы, процессора или жесткого диска?
В GNU/Linux я знаю, что могу использовать что-то вроде hddtemp или sensord, чтобы получить информацию, а затем проанализировать ее... но в Windows : Как я могу это сделать? И можно ли это сделать с помощью C# или Java или любого другого языка программирования высокого уровня?
Спасибо!
Как получить температуру материнской платы ПК (и другую аппаратную статистику)?
Ответы (4)
Проблема с датчиками температуры и другими датчиками мониторинга заключается в том, что на аппаратном уровне нет ни единого протокола, ни драйверов, позволяющих получать эту информацию с помощью общего API.
Программное обеспечение, подобное уже упомянутому SpeedFan и HWMonitor (от создателей утилиты CPU-Z), работает кропотливо. каталогизация различных датчиков и контроллеров шины и реализация соответствующих протоколов, обычно с использованием драйвера режима ядра для доступа к устройствам SMBus.
Чтобы внедрить эту функциональность в собственное программное обеспечение, вы можете либо разработать эту функциональность самостоятельно (возможно, уменьшив объем работы, адаптировав ее к вашему конкретному оборудованию и используя код Linux с сайта www.lm-sensors.org в качестве справочного материала), либо приобрести коммерческую библиотеку. который это реализует. Один из них, используемый HWMonitor, доступен здесь.
удачи
Я бы сказал, что при наличии правильных конфигураций он может быть лучше, чем в Windows.
http://www.lm-sensors.org/ выполняет всю работу. Я подключил его к RRDgraph & Munin, и я следил за температурой в своей комнате в течение почти года, и у меня были красивые графики. Также показал мне, что мой вентилятор процессора медленно изнашивается, и я мог видеть, как линия наклоняется вниз в течение длительного периода, и знал, что она на исходе.
http://www.lm-sensors.org/browser/lm-sensors/trunk/doc/developers/applications — это то, что вам нужно.
(Ой, подождите, я терплю неудачу. Вы на *nix хотите сделать это на Windows, моя беда :( ..эм... ну. Удачи. Может быть, я оставлю это здесь на случай, если кто-то найдет ваш пост при поиске противоположность)
Когда я пользовался Windows, все, что я помню, это старый монитор материнской платы (снято с производства). В статье на Wiki говорится, что существует speedfan, и это лучший вариант. Программно, я думаю, вам придется найти спецификации оборудования и покопаться в API Windows и в стеках произвольных смещений адресов шины.
Как предполагает @AndrewJFord, эти методы варьируются от поставщика к поставщику, действительно от части к части, но я сделаю некоторые обобщения, если это нормально.
- Насколько я знаю, все современные процессоры Intel, AMD и IBM имеют встроенные термодатчики с известными открытыми API для чтения этих данных. Я не эксперт в этих API, поэтому не знаю, насколько они похожи, но я был бы удивлен, если бы API Intel и AMD сильно отличались. На вашем месте я бы поискал «инструмент управления системой» с открытым исходным кодом (кстати, есть несколько подобных, написанных как Apple Widgets) и посмотрел, как они это делают.
- Материнские платы чертовски сильно различаются, некоторые из них имеют обширное температурное датчики, некоторые не имеют, и все они будут иметь довольно разные API. Я бы начал с того, что связался со службой поддержки в компании, которая делает ваш выбор.
- В целом я считаю, что только очень высокопроизводительные диски SAS со скоростью 15 об / мин имеют встроенные термодатчики, я знаю, что некоторые системы среднего уровня имеют датчики, прикрепленные к корпусу на концентраторе, и сообщают об этом обратно в мобильное устройство. На самом деле не уверен, как получить эту информацию, но опять же, я бы начал с разговора с теми же людьми, что и вопрос выше.
Теперь я большой пользователь HP, и весь их набор управляется чем-то, что называется Insight Management Agents, версии которого доступны для Windows и большинства Linux. Что они делают, так это собирают всю системную информацию со всех своих датчиков (процедуры, память, мобильные устройства, вентиляторы, диски и т. д.) и предоставляют ее через API опроса на основе SNMP или через интерфейс SNMP/SMTP/MAPI на основе предупреждений. Я осмелюсь сказать, что у IBM/Dell и т. д. будут свои не менее хорошие и функционально похожие версии, но я их не знаю, извините. Если ваши машины «небрендовые»/сделаны из комплекта или у вас нет контроля, то я не знаю ни одного единственного способа легко получить всю эту информацию.
Это будет немного отличаться в зависимости от вашего оборудования. Как только вы узнаете от поставщика оборудования, есть ли датчики на вашей материнской плате, вы можете рассмотреть возможность использования SNMP и HOST-RESOURCE MIB.
Используйте мастер добавления и удаления компонентов Windows в разделе «Средства управления и мониторинга», чтобы установить SNMP. Затем вы сможете запросить у своего Windows-бокса много информации, используя стандартное программное обеспечение для управления системами, такое как OpenView или Nagios.