如何以整数值获取 NVIDIA 核心温度

本文关键字:NVIDIA 核心 温度 获取 整数 | 更新日期: 2023-09-27 17:56:50

我正在上Arduino微控制器课程,我正在做我的最后一个项目:一个根据外壳温度工作的自动计算机冷却系统。

我無法使用以下來源獲得我的 NVIDIA GPU 核心溫度:此 MSDN 連結或此 NVIDIA 連結。如何获取 GPU 的温度值?

我在 C# 方面的知识是基本的,我无法从该手册或 MSDN 中的代码示例中分辨出正面。

如何以整数值获取 NVIDIA 核心温度

在长时间搜索如何做到这一点之后,我将继续回答我自己的问题,我找到了获取数据的方法。

使用OpenHardwareMonitor.dll从他们的开源链接中,我能够获得我需要的东西。

这是我在 Windows c# 应用程序中使用的代码(它可能不是最好的方法,但它可以完成工作。

希望有人觉得这有帮助:

using OpenHardwareMonitor.Hardware;

...

public partial class mainWindow : Form
{
    Computer myComputer;
    public mainWindow()
    {
        InitializeComponent();
        myComputer = new Computer();
        myComputer.Open();
        myComputer.GPUEnabled = true;
        myComputer.CPUEnabled = true;
        foreach (var hardwareItem in myComputer.Hardware)
        {
            if (hardwareItem.HardwareType == HardwareType.GpuNvidia)
            {
                foreach (var sensor in hardwareItem.Sensors)
                {
                    if (sensor.SensorType == SensorType.Temperature)
                    {
                        GPUtemp.Text = String.Format(sensor.Value + "°C");
                    }
                }
            }
            if (hardwareItem.HardwareType == HardwareType.CPU)
            {
                foreach (var sensor in hardwareItem.Sensors)
                {
                    if (sensor.SensorType == SensorType.Temperature)
                    {
                        CPUtemp.Text = String.Format(sensor.Value + "°C");
                    }
                }
            }
        }
    }
    private void valueRefresh_Tick(object sender, EventArgs e)
    {
        myComputer = new Computer();
        myComputer.Open();
        myComputer.GPUEnabled = true;
        myComputer.CPUEnabled = true;
        foreach (var hardwareItem in myComputer.Hardware)
        {
            if (hardwareItem.HardwareType == HardwareType.GpuNvidia)
            {
                foreach (var sensor in hardwareItem.Sensors)
                {
                    if (sensor.SensorType == SensorType.Temperature)
                    {
                        GPUtemp.Text = String.Format(sensor.Value.ToString()); // write the value to a lable on the form
                    }
                }
            }
            if (hardwareItem.HardwareType == HardwareType.CPU)
            {
                foreach (var sensor in hardwareItem.Sensors)
                {
                    if (sensor.SensorType == SensorType.Temperature)
                    {
                        CPUtemp.Text = String.Format(sensor.Value.ToString());    // write the value to a lable on the form
                    }
                }
            }
        }
    }
}