DELPHI ТЕМПЕРАТУРА ВИДЕОКАРТЫ

В Delphi можно получить температуру видеокарты с помощью использования библиотеки WMI (Windows Management Instrumentation). Для этого нужно создать функцию, которая будет получать информацию о видеокарте.

function GetVideoCardTemperature: Double;
const
WmiNamespace = 'root\CIMV2';
WmiClass = 'Win32_VideoController';
WmiProperty = 'CurrentTemperature';
var
wmiLocator: IWbemLocator;
wmiServices: IWbemServices;
wmiObjectSet: IEnumVariant;
wmiObject: OleVariant;
wmiValue: RealInt64;
begin
Result := 0;
if Succeeded(CoCreateInstance(CLSID_WbemLocator, nil, CLSCTX_INPROC_SERVER, IID_IWbemLocator, wmiLocator)) then
begin
if Succeeded(wmiLocator.ConnectServer(WmiNamespace, nil, nil, '', '', '', 0, nil, wmiServices)) then
begin
if Succeeded(wmiServices.ExecQuery('SELECT ' + WmiProperty + ' FROM ' + WmiClass, 'WQL', WBEM_FLAG_FORWARD_ONLY or WBEM_FLAG_RETURN_IMMEDIATELY, nil, wmiObjectSet)) then
begin
try
wmiObjectSet.Next(1000, 1, wmiObject, wmiValue);
Result := wmiValue / 10;
finally
wmiObjectSet := nil;
end;
end;
end;
end;
end;

Эта функция возвращает температуру видеокарты в градусах Цельсия. Для того чтобы получить эту температуру, вызовите функцию GetVideoCardTemperature.

Если вам нужно мониторить температуру видеокарты в реальном времени, то вы можете использовать библиотеку Open Hardware Monitor (https://openhardwaremonitor.org/). Она предоставляет API для доступа к датчикам, включая датчики температуры видеокарты. Ниже приведен пример кода на Delphi, который использует Open Hardware Monitor для мониторинга температуры видеокарты:

uses
OpenHardwareMonitor.WMI;

procedure TForm1.Timer1Timer(Sender: TObject);
var
UpdateVisitor: TUpdateVisitor;
Hardware: TOHWMonHardware;
Sensor: TOHWMonSensor;
begin
UpdateVisitor := TUpdateVisitor.Create;
try
OpenHardwareMonitor.WMI.Update(UpdateVisitor);
for Hardware in UpdateVisitor.Hardware do
begin
if Hardware.HardwareType = 'GPU' then
begin
for Sensor in Hardware.Sensors do
begin
if Sensor.SensorType = 'Temperature' then
begin
if Sensor.Name.Contains('Core') then
begin
Label1.Caption := 'GPU Temperature: ' + Sensor.Value.ToString + 'C';
Break;
end;
end;
end;
Break;
end;
end;
finally
UpdateVisitor.Free;
end;
end;

Этот код использует таймер, который каждые несколько секунд обновляет информацию о датчиках и выводит текущую температуру GPU в Label.

Как узнать температуру процессора, видеокарты, мат.платы итд?

Какие должны быть температуры у видеокарты?

КАК СНИЗИТЬ ТЕМПЕРАТУРУ ВИДЕОКАРТЫ И УЛУЧШИТЬ ФПС В ИГРАХ, ВИДЕОКАРТА СИЛЬНО ГРЕЕТСЯ, ПРОСАДКИ ФПС

ГРЕЕТСЯ ВИДЕОКАРТА ДАЖЕ ПОСЛЕ СМЕНЫ ТЕРМОПАСТЫ ?! ЕСТЬ РЕШЕНИЕ!

Какие температуры опасны для видеокарты? От 0° до 90°

ПРОБЛЕМЫ СОВРЕМЕННЫХ КАРТ И ПУТИ ИХ РЕШЕНИЯ. УСТРАНЯЕМ ПЕРЕГРЕВ RTX 3080

Температура видеокарты. Максимальная и рабочая температура видеокарты

Ледяная Видеокарта Без Даунвольтинга и Андервольта на примере 3060ti Как Настроить MSI Afterburner

Как понизить температуру видеокарты в 2 клика?

РАЗРУШИТЕЛЬ МИФОВ / ТЕМПЕРАТУРА ВИДЕОКАРТЫ И ПРОЦЕССОРА!

Реклама
Новое
Реклама