【C#】获取CPU温度(OpenHardwareMonitorLib.dll库)

目录

1、简述

2、地址

3、下载OpenHardwareMonitorLib库,并引用到项目中

4、读取温度


1、简述

尝试过WinIo,Rdmsr,WMI,OpenHardwareMonitorLib。OpenHardwareMonitorLib和rdmsr都是用的WinRing0.sys驱动,然后要在程序里面加载这个驱动就可读取这些寄存器的值。OpenHardwareMonitorLib把驱动封装到自己的内部来了,这里讲的是OpenHardwareMonitorLib的方法。

2、地址

OpenHardwareMonitorLib.dll下载地址:https://download.csdn.net/download/u014597198/11106339

3、下载OpenHardwareMonitorLib库,并引用到项目中

4、读取温度

这里只读取了一次:

using System;
using OpenHardwareMonitor.Hardware;
using System.Text;

namespace VS_ReadCPUTemperature
{
    public class UpdateVisitor : IVisitor
    {
        public void VisitComputer(IComputer computer)
        {
            computer.Traverse(this);
        }
        public void VisitHardware(IHardware hardware)
        {
            hardware.Update();
            foreach (IHardware subHardware in hardware.SubHardware)
                subHardware.Accept(this);
        }
        public void VisitSensor(ISensor sensor) { }
        public void VisitParameter(IParameter parameter) { }
    }
    class Program
    {
        static int getTemperature() 
        {
            int ret = 0;
            Computer myComputer = new Computer();
            UpdateVisitor updateVisitor = new UpdateVisitor();
            myComputer.Open();
            myComputer.Accept(updateVisitor);
            foreach (var hardwareItem in myComputer.Hardware)
            {
                if (hardwareItem.HardwareType == HardwareType.CPU)
                {
                    foreach (var sensor in hardwareItem.Sensors)
                    {
                        if (sensor.SensorType == SensorType.Temperature)
                        {
                            ret = Convert.ToInt32(sensor.Value);
                        }
                    }
                }
            }
            return ret;
        } 
        static void Main(string[] args)
        {
            int t = getTemperature();
            Console.WriteLine("温度是:" + t);
            Console.ReadKey();

            //如果文件不存在,则创建;存在则覆盖
            //System.IO.File.WriteAllText(@"C:\Users\Public\Documents\CPUTemperature.txt", t.ToString(), Encoding.UTF8);
        }
    }
}

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沙振宇

你的鼓励将是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值