上次接手了一个需要对服务器的检测系统软件,但是在获取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 温度 的两种方式相关推荐

  1. ML之catboost:基于自定义数据集利用catboost 算法实现回归预测(训练采用CPU和GPU两种方式)

    ML之catboost:基于自定义数据集利用catboost 算法实现回归预测(训练采用CPU和GPU两种方式) 目录 基于自定义数据集利用catboost 算法实现回归预测(训练采用CPU和GPU两 ...

  2. html中获取modelandview中的json数据_从Bitmap中获取YUV数据的两种方式

    从Bitmap中我们能获取到的是RGB颜色分量,当需要获取YUV数据的时候,则需要先提取R,G,B分量的值,然后将RGB转化为YUV(根据具体的YUV的排列格式做相应的Y,U,V分量的排列) 所以这篇 ...

  3. Spark-Streaming获取kafka数据的两种方式-Receiver与Direct的方式

    Spark-Streaming获取kafka数据的两种方式-Receiver与Direct的方式,可以从代码中简单理解成Receiver方式是通过zookeeper来连接kafka队列,Direct方 ...

  4. Android获取IP地址的两种方式(准确版)

    原文:https://blog.csdn.net/sinat_16458039/article/details/50260589 最近看了好多网上获取IP地址的例子,发现好多都不完全准确,这里我写一下 ...

  5. Express全系列教程之(四):获取Post参数的两种方式

    一.关于POST请求 post方法作为http请求很重要的一部分,几乎所有的网站都有用到它,与get不同,post请求更像是在服务器上做修改操作,它一般用于数据资源的更新. 相比于get请求,post ...

  6. iOS 通过URL网络获取XML数据的两种方式

    下面简单介绍如何通过url获取xml的两种方式. 第一种方式相对简单,使用NSData的构造函数dataWithContentsOfURL:不多解释,直接上代码咯. NSURL *url = [NSU ...

  7. 【url传参】之 获取url?后面的参数,对应参数名获取值 和 全量获取转换为对象结构两种方式

    访问你挚爱的强哥_百度搜索https://www.baidu.com/s?wd=%E4%BD%A0%E6%8C%9A%E7%88%B1%E7%9A%84%E5%BC%BA%E5%93%A5&r ...

  8. struts2_action获取web资源的两种方式

    Ⅰ.和servelet API 解耦的方式:只能访问到有限的资源 (1)通过ActionContext的getXXX方法获取相关资源 例: public class TestActionContext ...

  9. java获取文件后缀_Java获取文件后缀的两种方式

    在对文件进行操作的时候,我们经常需要用到文件的后缀.但是Java API中并没有提供获取文件后缀的方法.下面的工具方法可以帮助我们实现这个目的. 方法1 代码示例: package org.4spac ...

最新文章

  1. 单链表-两个线性表的合并1(破环原链表+尾插法)
  2. MPB:农科院田健、韩东飞等-​​水稻根系互作功能微生物的筛选方法
  3. java component创建_spring--打印hello--注解component--自动创建对象
  4. vue项目打包丢入服务器,浅谈vue项目如何打包扔向服务器
  5. wxWidgets:wxOwnerDrawnComboBox类用法
  6. netflix_Netflix播放按钮剖析
  7. 逆向so_安卓逆向 | 分析调试与so调用实战
  8. MySQL 之binlog日志说明及利用binlog日志恢复数据操作记录
  9. Entity Framework 实践系列 —— 搞好关系 - 单相思(单向一对一,one-to-one)
  10. T-SQL查询处理详解
  11. WM_CREATE消息响应函数和WM_INITDIALOG消息响应函数之区别
  12. centos安装wget_宝塔是干什么的?3分钟教会你云服务器上安装宝塔面板
  13. matlab 画图 方程,matlab 画图与解方程
  14. CentOS7安装Zeppelin完整步骤
  15. html英文字母大小,英语字母书写笔顺 英语 , 26个英文字母大小写规范书写技巧...
  16. SPIR-V教程 -- SPIR-V介绍(一)
  17. javascript原生脚本代码 飘浮广告
  18. VSCode撸猫插件vscode-cats它来了,一起来云撸猫吧
  19. bzoj1707[Usaco2007 Nov]tanning分配防晒霜*
  20. [Python Scrapy爬虫] 二.翻页爬取农产品信息并保存本地

热门文章

  1. 全面升级2022版Zoomla逐浪CMS官网全新上线激情内测体验进行中
  2. 外星人控制中心(AWCC)出现错误日志导致电脑卡顿的解决建议
  3. 2021,从多云到专有云?
  4. strlen、sizeof与size()求字符串长度的区别
  5. 为什么西汉“透光镜”会产生奇异的透光现象?
  6. 如何打造业务系统的数据生产力
  7. 2.4G语音空鼠翻页笔激光笔遥控器方案
  8. 女朋友生日or情人节表白,如果感到腼腆,可以制作一份唯一的属于她的微信小程序礼物
  9. 关于驱动和设备的相关的注册表键的位置,和相关信息
  10. 《命运赋》--吕蒙正