精华内容
下载资源
问答
  • 支持大部分常见的主板芯片与硬件组件,包含主板、CPU、硬盘、显卡、装置的电压、温度、风扇转速与运作频率、 Mainboard = 0, SuperIO = 1, CPU = 2, GpuNvidia = 3, GpuAti = 4, TBalancer = 5, ...
  • 花血本在网上的一个开源库 ,本人编译后亲测20台清装xp sp2的机器,无问题,win7 和win8 也测试过,无问题。。
  • C#获取CPU温度

    千次阅读 2019-05-06 19:00:32
    /// <summary> /// 获取cpu温度 /// </summary> /// <returns></returns> internal static string GetTemperatureOftheCPU() { /* ...
      /// <summary>
            /// 获取cpu温度
            /// </summary>
            /// <returns></returns>
            internal static string GetTemperatureOftheCPU()
            {
                /*
                Mainboard = 0,    主板
                SuperIO = 1,
                CPU = 2,
                RAM = 3,          内存
                GpuNvidia = 4,    显卡
                GpuAti = 5,       A卡
                TBalancer = 6,    声道
                Heatmaster = 7,
                HDD = 8           机械硬盘
                */
                /* 
                Voltage = 0,        电压
                Clock = 1, 时钟
                Temperature = 2,    温度
                Load = 3, 负荷
                Fan = 4,            风扇转速
                Flow = 5, 流
                Control = 6,        控制
                Level = 7,
                Factor = 8, 因子
                Power = 9,          功率
                Data = 10, 数据
                SmallData = 11      小数据
                */
                string m_cpuTemperature = "nuknow";
                UpdateVisitor updateVisitor = new UpdateVisitor();
                Computer computer = new Computer();
                computer.Open();
                computer.CPUEnabled = true;
                computer.Accept(updateVisitor);
                for (int i = 0; i < computer.Hardware.Length; i++)
                {
                    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)
                            {
                                if (computer.Hardware[i].Sensors[j].SensorType == SensorType.Temperature)
                                    m_cpuTemperature = computer.Hardware[i].Sensors[j].Value.ToString();
                            }
                        }
                    }
                }
                computer.Close();
                return $"{  m_cpuTemperature }℃"; 
            }

     

    展开全文
  • 通过C#程序实时读取硬件信息及更新显示,本人亲测!
  • 转载:c# 获取CPU温度(非WMI,直接读取硬件)-附件资源
  • 很久前在Win8实现过远程CPU温度监控,用的是WMI方法,感觉简单易用。 现在换上了Win10,发现获取到的温度一直不会变,于是找到了http://blog.csdn.net/yanpingsoft/article/details/8754679 提到了...

    本方法Win10 64bit 亲身测试可用,温度可以实时更新!!

    很久前在Win8实现过远程CPU温度监控,用的是WMI方法,感觉简单易用。

    现在换上了Win10,发现获取到的温度一直不会变,于是找到了http://blog.csdn.net/yanpingsoft/article/details/8754679 提到了OpenHardwareMonitor,于是就尝试了一下,但发现了一个问题:只有先运行现成的OpenHardwareMonitor.exe,我的C#程序才能读到温度值,否则为null。情况跟http://bbs.csdn.net/topics/391007951?page=1的一样。

    搞了许久,没头绪,于是打算更新下OpenHardwareMonitor的库。于是网上百度“OpenHardwareMonitor”,找到最新的0.8.0beta的版本,下载替换了OpenHardwareMonitorLib.dll。试了下发现不能兼容,所以稍微改下代码,增加一句:computer.CPUEnabled = true;就完事了。完整的使用代码如下:


    1、添加引用OpenHardwareMonitorLib.dll,添加using OpenHardwareMonitor.Hardware;

    2、增加一个类

    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) { }
        }

    3、具体实现代码:

    private void button1_Click(object sender, EventArgs e)//某个按键触发
            {

                UpdateVisitor updateVisitor = new UpdateVisitor();
                Computer computer = new Computer();
                computer.Open();
                computer.CPUEnabled = true;
                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)
                            {
                                if (computer.Hardware[i].Sensors[j].Name == "CPU Package")  //我只获取整个package的温度,需要其他core的温度就改这里
                                    Console.WriteLine("Tem=" + computer.Hardware[i].Sensors[j].Value.ToString());
                            }
                        }
                    }
                }
                computer.Close();
            }



    展开全文
  • Open Hardware Monitor V0.8.0.5 开源 C#获取CPU溫度、硬件温度、时钟等
  • C#获取CPU温度(OpenHardwareMonitorLib.dll库)

    千次阅读 热门讨论 2017-07-25 16:28:30
     if (hardwareItem.HardwareType == HardwareType.CPU)  {  foreach (var sensor in hardwareItem.Sensors)  {  if (sensor.SensorType == SensorType.Temperature)  {  ret = Convert.ToInt32(sensor.Value)...

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

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

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

    2、读取温度,这里只读取了一次,如果需要你可以用定时器轮询:

    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);
            }
        }
    }

     

    展开全文
  • c# 获取CPU温度,非WMI
  • vb.net/C#双码 获取CPU温度/主板温度/显卡温度 硬盘温度 驱动获取非wmi 源码+中文注释,vb.net+c#双码
  • C# 获取CPU 温度 的两种方式

    万次阅读 2013-04-03 10:43:16
    上次接手了一个队服务器的检测系统软件,但是在获取CPU温度的时候总是出问题,查找了很多的资料,总结了一下两种方法,是比较常见的 //第一种方法 就是传统的 wimi 方式获取 ,需要引进一个命名空间 using System....

    上次接手了一个需要对服务器的检测系统软件,但是在获取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()) 这一行代码报错

    解决方案一:用管理员身份运行你的项目  (如果还是有错的话,那就使用第二种方式吧)

     

    ///第二种方法 据说是非wimi方式,好像是通过虚拟硬盘读取的(没看太懂)(也是要以管理员身份运行这个软件)

    这个方法需要引进一些现有的开源类库(OpenHardwareMonitor.csproj,OpenHardwareMonitorLib.csproj)

    下载地址:http://download.csdn.net/detail/liyanping521/5216007

       这种方法是借鉴别人的,是一个OpenHardwareMonitor的开源检测软件,有源码和使用方法

     Open Hardware Monitor可以支持大部分常见的主板芯片与硬件组件,监控包含主板、CPU、硬盘、显示卡、装置的电压、温度、风扇转速与运作频率、负载等信息。

    使用方法:将库添加至项目中(就是将你下载的项目源码放你的项目里边或者是引用编译好的dll 文件)
     
    声明:
     
    PersistentSettings settings =new PersistentSettings();
     
    UpdateVisitor updateVisitor = new UpdateVisitor();
     
    初始化config配置文件,详情见Bin目录Debug/Replase\OpenHardwareMonitor.config文件
     

    //Application 的命名空间是 System.Windows.Forms; 别引用错了
    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());

     

     

    展开全文
  • C#获取CPU温度支持Win10

    千次阅读 2018-11-22 10:44:18
    【已解决】C#获取CPU温度支持Win10(OpenHardwareMonitor) 本方法Win10 64bit 亲身测试可用,温度可以实时更新!! 很久前在Win8实现过远程CPU温度监控,用的是WMI方法,感觉简单易用。 现在换上了Win10,发现...
  • c#获取CPU温度,可以读取本机上硬件信息
  • C# 获取Windows硬件温度

    2017-07-14 12:44:23
    C# 获取 Windows 操作下同下各种硬件的指标信息,CPU温度,硬盘温度,硬盘容量,负载等
  • CPU温度是通过 rsmgr,硬盘温度是通过WMI,可以拿来研究
  • C# 获取CPU温度

    千次阅读 2012-03-15 21:34:34
    在程序中引用:using System.Management; 然后再程序中添加: public static string GetTher() ... ManagementObjectSearcher... str = "CPU 溫度 : " + CPUtprt.ToString() + " °C"; return str;
  • 通過調用OpenHardwareMonitor獲取電腦CPU溫度,使用率,內存使用率,風扇轉速,硬盤溫度及使用率,必須使用管理員權限
  • OpenHardwareMonitor源码工程 读cpu温度,显卡温度,硬盘温度,风扇转速,硬件信息,cpu占用,附赠项目源码 最新版是0.8 beta,研究这个项目的源码能学到很多,希望对你有用
  • 通过开源库 OpenHardware获取硬件信息,如CPU和显卡温度、使用率等,详细使用教程在本人CSDN博客
  • c#获取cpu温度 很早一个项目做远控,所以需要用到获取cpu温度,但是就是不知从何下手,无意中发现了Open Hardware Monitor,令我的项目成功完成 亲测20台清装xp sp2的机器,无问题,Windows 7和Windows 8 也...
  • C#通过调用WinIo获取CPU温度

    热门讨论 2009-05-12 14:26:19
    C#通过调用WinIo获取CPU温度, C#通过调用WinIo获取CPU温度,
  • 机房的空调有时会失效,如不能及时觉察和处理,则可能造成很多服务机宕机,为此,能获得计算机的cpu的温度就很重要,...以下是c#利用openhardwaremonitor获取cpu温度的方法,已用于某机房温度监控,仅供参考。 1.到...
  • C#读取电脑CPU温度winform测试程序,引用OpenHardwareMonitorLib.dll库,该dll库在debug夹下,listBox打印温度数据并显示
  • 获取电脑cpu温度(非wmi)

    热门讨论 2015-02-26 09:43:41
    利用网上OpenHardwareMonitorLib.dll获取电脑cpu温度,可动态变化(非wmi)
  • C#用OpenHardwareMonitorLib.dll读CPU温度 注意要有管理员的权限,1.5秒定时器刷新数据,兼容WIN7/WIN10. WINXP没有试,还请各位指点

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 513
精华内容 205
关键字:

c#获取cpu温度

c# 订阅