上次接手了一个需要对服务器的检测系统软件,但是在获取CPU温度的时候总是出问题,查找了很多的资料,总结了以下两种方法,是比较常见的
//第一种方法 就是传统的 wimi 方式获取 ,需要引进一个命名空间 using System.Management;
public static void GetCPUTemperature()
{
string str = "";
ManagementObjectSearcher vManagementObjectSearcher = new ManagementObjectSearcher(@"root\WMI", @"select * from MSAcpi_ThermalZoneTemperature");
foreach (ManagementObject managementObject in vManagementObjectSearcher.Get())
{
str += managementObject.Properties["CurrentTemperature"].Value.ToString();
}
//这就是CPU的温度了
float temp = (float.Parse(str) - 2732) / 10;
}
这种方式往往跟服务器本身的硬件配置是有关系的,可能会在 foreach (ManagementObject managementObject in vManagementObjectSearcher.Get