Как узнать температуру платы и проца
Я хочу зделать програмку, которая в компактном виде выводит на екран состояние оперативной памяти, текущюю емкость винчестера, уровень производительности (текущюю скорость проца), тампературу мат.платы и температуру проца. Датчики там кажись стоят, потому что AIDA выводи такую инфу. Мне надо заюзать ету инфу со своей программы.
Цитата:
Win32_Fan Represents the properties of a fan device in the computer system.
Win32_HeatPipe Represents the properties of a heat pipe cooling device.
Win32_Refrigeration Represents the properties of a refrigeration device.
Win32_TemperatureProbe Represents the properties of a temperature sensor (electronic thermometer).
Есть еще вот что:
http://www.edelweiss45.narod.ru/Delphi/TEMP.html
Мне бы под VB... Я с WMI мало знаком.
Могу помочь - попытаться драйвер соорудить. :-))) но никакого VB, только VC++ :о)
А я в драйверописании вообще профан :). Но если ты знаеш как писать драйвера - посвяти меня в ето дело.
У меня не хватает ntstrsafe.h. Там функции форматированного вывода в строку, которую драйвер передает потом нашему приложению. DbgPrint выводит это сообщение отладчику, и вроде сам драйвер работает, НО не будешь же все время смотреть смотреть температуру проца через SoftICE. У тебя(или коллег) есть DDK?
Нет :(
Мдяяя.... новый DDK я сливать не стану - 174 мега мой старенький модем не выдержит... я тут тему насчет этого запостил - может найдутся добрые люди и скинут мне эти два несчастных файла..:-))))
Я нашел описание двух способов доступа - через ISA 290h и через SMBus. Я попробовал самый простой - через ISA.
После перелопачивания кучи сайтов были найдены исходники xmbmon под linux. Небольшая переделка под Win32, и вот что у меня получилось - смотри вложение.
Как это работает...
Я соорудил программулину, которая НЕ определяет датчики. Она работает только с датчиком ITE IT8712F. Посмотреть какой у тебя стоит датчик можно через проги типа Everest(я через него смотрел). Если у тебя другой датчик - показания будут неправильны!!! (насчет порчи оборудования я сильно сомневаюсь) Скачав исходники xmbmon можно "заточить" эту прогу под твой датчик. работы - минимум:о) (я в linux'е вообще не особо, можно сказать никогда и не кодил под него, все что нужно - это немного здравого смысла и пара банок пЫва :-Р )
Так. Теперь о самой проге. Драйвер sensor.sys кидаешь на диск C:. Далее просто запускаешь load.exe - консольная программулина - с окном лень было писать. Она загрузит драйвер как сервис, драйвер выплюнет инфу. Кстати, я хотел чтобы она и напряжение выводила, но операции с float невозможны в kernel mode.
P.S. Как это все криво! Я писал драйвер чтобы напрямую работать с портами из него, ибо ассемблерные in\out запрещены в винде. Но есть другой способ... в одной из прошлых ссылок (см. выше) описывается способ через драйвер giveio.sys(он разрешает нам работу с портами из кольца пользователя). Втом случае НЕ НУЖНО писать драйвер(как у меня), а все функции из isa.h(в моей проге) можно вызывать из обычной проги(хоть на Delphi). Хотел я сразу сделать так, но лень меня одолела, лето и все такое... Короче, если не сможешь переделать сам - я могу сделать, это недолго.
вау, народ, раз скачали - выскажите свое мнение, я собираюсь написать такую профессиональную программулину, мне очень интересно будет послушать вас... :о)
Преувиличивает температуру проца на 50%!
какой у тебя датчик, ты проверил? а все остальное верно показывает? у меня все как и в Everest. Матплата старенькая правда, Gigabyte GA-8IPE1000, чипсет i865PE.
Winbond W83627HF
я же написал, что прога заточена под мой датчик ITE IT8712F, и что разные интерфейсы у ВСЕХ датчиков.
Мне другое просто протестить не на чем :-)))
Сам попробуешь из xmbmon переделать?(это несложно), или мне сделать? это час займет, не более...
Главное, теперь я знаю в какую сторону копать :)
:-)))) окей, если что не получается - пиши в этой теме, я похоже, буду делать точно тоже тока на VC++....
А может,лишние 50 градусов-последствия перевода из Цельсия в Кельвины?Если хочешь,дам формулы
Нет, к разным датчикам надо обращаться по разным адресам - вот суть :) просто по этому адресу лежит хлам какой-нибудь, вот и показывает + 50....
вот ссылка. там все рассписал