CPU温度监控

Pau*_*ul 22 c# monitor temperature

对于编程项目,我想访问CPU和GPU的温度读数.我将使用C#.从各种论坛,我得到的印象是,您需要特定的信息和开发人员资源才能访问各种板卡的信息.我有一个MSI NF750-G55板.MSI的网站没有我要查找的任何信息.我尝试了他们的技术支持,我采访的代表说他们没有任何此类信息.必须有办法获得该信息.

有什么想法吗?

Jus*_*ner 20

至少在CPU方面,您可以使用WMI.

名称空间\对象是 root\WMI, MSAcpi_ThermalZoneTemperature

示例代码:

ManagementObjectSearcher searcher = 
    new ManagementObjectSearcher("root\\WMI",
                                 "SELECT * FROM MSAcpi_ThermalZoneTemperature");

ManagementObjectCollection collection = 
    searcher.Get();

foreach(ManagementBaseObject tempObject in collection)
{
    Console.WriteLine(tempObject["CurrentTemperature"].ToString());
}
Run Code Online (Sandbox Code Playgroud)

这将以原始格式为您提供温度.你必须从那里转换:

kelvin = raw / 10;

celsius = (raw / 10) - 273.15;

fahrenheit = ((raw / 10) - 273.15) * 9 / 5 + 32;
Run Code Online (Sandbox Code Playgroud)

  • Sadlyl,大多数主板都没有通过WMI实现这一点.它也会在我的系统上引发异常. (5认同)
  • 我只想指出`MSAcpi_ThermalZoneTemperature`不是CPU临时值; 而是主板区域的温度......这对于根据厨房温度测量厨房炉灶的温度非常有用...... (2认同)