转载:c# 获取CPU温度(非WMI,直接读取硬件)
c#获取cpu温度
很早一个项目做远控,所以需要用到获取cpu温度,但是就是不知从何下手,无意中发现了Open Hardware Monitor,令我的项目成功完成
亲测20台清装xp sp2的机器,无问题,Windows 7和Windows 8 也测试过,无问题。。当然,此库可不止能获取cpu温度!!
Open Hardware Monitor可以支持大部分常见的主板芯片与硬件组件,监控包含主板、CPU、硬盘、显示卡、装置的电压、温度、风扇转速与运作频率、
即时负载等信息。
下载地址:http://pan.baidu.com/share/link?shareid=146663&uk=3324999280
使用方法:将库添加至项目中
声明:
PersistentSettings settings =new PersistentSettings();
UpdateVisitor updateVisitor = new UpdateVisitor();
初始化config配置文件,详情见Bin目录Debug/Replase\OpenHardwareMonitor.config文件
settings.Load(Path.ChangeExtension(
Application.ExecutablePath, ".config"));
初始化Computer对象
Computer computer= new Computer(settings);
调用open方法
conputer.open();
获取cpu温度:
StringBuilder str = new StringBuilder();
computer.Accept(updateVisitor);
for (int i = 0; i < computer.Hardware.Length; i++)
{
//循环找到HardwareType为cpu
if (computer.Hardware[i].HardwareType == HardwareType.CPU)
{
for (int j = 0; j < computer.Hardware[i].Sensors.Length;j++ )
{
//找到温度
if (computer.Hardware[i].Sensors[j].SensorType == SensorType.Temperature)
{
//获取到cpu核心
str.Append(computer.Hardware[i].Sensors[j].Name);
str.Append("\t");
//这里就是cpu温度了
str.Append(computer.Hardware[i].Sensors[j].Value.ToString());
str.Append("\n");
}
}
}
}
Console.WriteLine(str.ToString());
这样子就获取到每个cpu核心的温度了。。
转载出处:http://blog.csdn.net/tryios/article/details/8348893