Цитата:
Сообщение от lkz_07
...В первом посте есть исходник для NVIDIA, но температуру показывает 0.
|
Там обёртка для NvCplGetThermalSettings из апишной библиотеки вендора nvcpl.dll, она похоже работала под ХР, и видимо считывала выходную информацию из ветки реестра NVIDIA ...-> MXMThermalControl, а под семёркой там ничего не меняется, отсюда и нулевой показатель. Можно ещё задействовать подобную функцию GetGpuTemperatureDll из nvsulib.dll с вызовом типа
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
type
GetGpuTempDll = function(dwCoreTemp: Pointer): integer; stdcall;
var
hDll: THandle;
pdwCoreTemp: Pointer;
GetGpuTemperatureDll: GetGpuTempDll;
begin
hDll:= LoadLibrary('nvsulib.dll');
if hDll <> 0 then
try
GetGpuTemperatureDll := GetProcAddress(hDll, 'GetGpuTemperatureDll');
if Assigned(GetGpuTemperatureDll) then
Label1.Tag:= GetGpuTemperatureDll(Addr(pdwCoreTemp));
Label1.Caption:= IntToStr(integer(pdwCoreTemp));
finally
FreeLibrary(hDll);
end;
end;
этот "термометр" работает - на k420 нагрев колеблется в пределах 45-47 градусов, gpu-z тоже самое показывает, проверил