4

我想创建一个程序来监控我的 GPU 温度(AMD ATI HD),如果它低于 50C,就给我发一封电子邮件。

我知道如何发送电子邮件 - 我只是不知道如何获得温度:/

任何帮助都是极好的!

运行 Visual Studio - 适用于 Windows 窗体(或 Java 也可以!)

安迪

4

3 回答 3

4

我建议你看看这里的 OpenHardwareMonitor 项目

Open Hardware Monitor 是一款免费的开源软件,可监控计算机的温度传感器、风扇速度、电压、负载和时钟速度。

Open Hardware Monitor 支持当今主板上的大多数硬件监控芯片。CPU 温度可以通过读取 Intel 和 AMD 处理器的核心温度传感器来监测。可以显示 ATI 和 Nvidia 显卡的传感器以及 SMART 硬盘驱动器温度。监控的值可以显示在主窗口、可自定义的桌面小工具或系统托盘中。Open Hardware Monitor 软件无需安装即可在 32 位和 64 位 Microsoft Windows XP / Vista / 7 和任何基于 x86 的 Linux 操作系统上运行。

它们是开源的,您应该能够查看它们的代码并在那里查看。

于 2013-12-08T11:22:08.827 回答
3

查看 AMD 显示库中的 Overdrive API。他们有一个 C# 示例,但您必须自己将钩子添加到温度库中。

AMD 显示库

具体来说:ADL2_Overdrive6_Temperature_Get (ADL_CONTEXT_HANDLE context, int iAdapterIndex, int *lpTemperature)

于 2013-12-08T21:56:58.830 回答
0

对于 NVIDIA 用户...

我尝试了 Open Hardware Monitor,它可以工作,但有时它会在拉高 GPU 温度的同时导致 CPU 使用率高的状态(如果我让它只拉 CPU 温度,这个问题就会消失)。

我最终使用这个 NuGet 包直接从 NVAPI 中提取温度。

https://github.com/falahati/NvAPIWrapper

一些示例代码看起来像......

PhysicalGPU[] gpus = PhysicalGPU.GetPhysicalGPUs();
foreach (PhysicalGPU gpu in gpus)
{
    Console.WriteLine(gpu.FullName);
    foreach (GPUThermalSensor sensor in gpu.ThermalInformation.ThermalSensors)
    {
        Console.WriteLine(sensor.CurrentTemperature);
    }
}
于 2021-04-23T19:57:48.733 回答