Показать сообщение отдельно
  #6  
Старый 26.11.2016, 23:20
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от 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 тоже самое показывает, проверил
Ответить с цитированием