您的位置:首页 > 编程语言 > C#

c# 获取CPU温度(非WMI,直接读取硬件)

2012-12-20 11:12 736 查看
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://tryios.com

c#交流群:55541840
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息