Эх..видно совсем хардкорная тема оказалась=\
Пока настругал только функцию для чтения температуры HDD:
Код:
Function GetHDDTemperarure(DriveIndex:byte;out Temperature:SmallInt):Boolean;
Type
TSmartData = Array [0..$20F] of Byte;
Var
Op: TSmartData;
H: Cardinal;
br: DWORD;
begin
Result:=false;
try
H:= CreateFile(PChar('\\.\PhysicalDrive'+IntToStr(DriveIndex)),$C0000000,3,nil, 3,0,0);
DeviceIoControl(H,$0007C088,@Ip,$20,@Op,$210,br,nil);
CloseHandle(H);
Temperature:=Op[$A8]*$FF+Op[$A7];
if(Temperature>-50) And (Temperature<200) then
begin
Result:=true;
end;
except
end;
end;
заставить WMI хоть что то показать не удалось на 4 разных машинах...в TermalZone есть пара значений, но ни одной температуре они не соответствуют..да и они всегда константные(
Нарыл программу
http://openhardwaremonitor.org/ , которая судя по доках может экспортировать свои данные в WMI...пока не удалось ее вкурить...
Куча бесплатного подобного софта, и ни одного примера исходного кода, неужели они напрямую по портам к контроллеру обращаются Оо за 10 лет как минимум должен был появится не один велосипед-библиотека для доступа к датчикам материнки, но глухо...