转载: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

posted @ 2015-05-27 13:49  随缘梦中人  阅读(3505)  评论(0编辑  收藏  举报