我正在为系统性能创建一个个人监控程序,但我在弄清楚 C# 如何检索 CPU 和 GPU 温度信息时遇到了问题。
我已经让程序通过 PerformanceCounter 检索 CPU 负载和频率信息(以及各种其他信息),但我无法找到 CPU 温度的实例、对象和计数器变量。
此外,我需要能够获得不止一个 GPU 的温度,因为我有两个。
我该怎么办?
最佳答案
您可以为此使用 WMI,有一个用于 WMI 的 c# 代码生成器,在创建 WMI 请求时很有帮助,因为它没有很好的文档记录。
可在此处找到 WMI 代码生成器:http://www.microsoft.com/en-us/download/details.aspx?id=8572
快速尝试生成如下内容:
public static void Main()
{
try
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\WMI",
"SELECT * FROM MSAcpi_ThermalZoneTemperature");
foreach (ManagementObject queryObj in searcher.Get())
{
Console.WriteLine("-----------------------------------");
Console.WriteLine("MSAcpi_ThermalZoneTemperature instance");
Console.WriteLine("-----------------------------------");
Console.WriteLine("CurrentTemperature: {0}", queryObj["CurrentTemperature"]);
}
}
catch (ManagementException e)
{
MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
}
}
这可能不是您所需要的,只需尝试使用可用的属性和类即可
关于C# CPU 和 GPU 温度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29607595/