C# 用openhardwaremonitorlib读取CPU温度

问题描述

我的程序如下usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingOpenHardwareMonitor.Hardware;namespaceCPUTemperature{publicclassUpdateVisitor:IVisitor{publicvoidVisitComputer(IComputercomputer){computer.Traverse(this);}publicvoidVisitHardware(IHardwarehardware){hardware.Update();foreach(IHardwaresubHardwareinhardware.SubHardware)subHardware.Accept(this);}publicvoidVisitSensor(ISensorsensor){}publicvoidVisitParameter(IParameterparameter){}}publicclassCHardwareMonitor{publicstaticstringGetCPUTemperature(){StringBuilderstr=newStringBuilder();try{ComputermyComputer=newComputer();UpdateVisitorupdateVisitor=newUpdateVisitor();myComputer.Open();myComputer.Accept(updateVisitor);for(inti=0;i<myComputer.Hardware.Length;i++){//循环找到HardwareType为cpuif(myComputer.Hardware[i].HardwareType==HardwareType.CPU){for(intj=0;j<myComputer.Hardware[i].Sensors.Length;j++){//找到温度if(myComputer.Hardware[i].Sensors[j].SensorType==SensorType.Temperature){//获取到cpu核心str.Append(myComputer.Hardware[i].Sensors[j].Name);str.Append("t");//这里就是cpu温度了str.Append(myComputer.Hardware[i].Sensors[j].Value.ToString());str.Append("n");}}}}}catch{}return(str.ToString());}}}

运行图如下:下面的lib没有配对的pdb是不是问题的关键。另外我的系统是win8.1的64位。我用过wmi的拒绝访问。如果不行也可以给一个API方面的温度数据读取方法。请各位麻烦帮我看一下。

解决方案

解决方案二:
这是openhardwaremonitor软件的温度测试图。目前就是能读出前面的cpu读不出后面的Value。
解决方案三:
坐等指导。
解决方案四:
有人可以告知一下吗?
解决方案五:
DoubleCPUtprt=0;varmos=newSystem.Management.ManagementObjectSearcher(@"rootWMI","Select*FromMSAcpi_ThermalZoneTemperature");foreach(varmoinmos.Get()){CPUtprt=Convert.ToDouble(Convert.ToDouble(mo.GetPropertyValue("CurrentTemperature").ToString())-2732)/10;textBox1.Text=("CPU温度:"+CPUtprt.ToString()+"°C");}

解决方案六:
这串代码用过,没有办法实时读取温度。是WMI。不过谢谢你了;继续等
解决方案七:

解决方案八:
google的网站上不去。。。汗。
解决方案九:
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Management;namespaceConsoleApplication1{classProgram{staticvoidMain(string[]args){DoubleCPUtprt=0;try{ManagementObjectSearchermos=newManagementObjectSearcher(@"root/WMI","Select*FromMSAcpi_ThermalZoneTemperature");foreach(System.Management.ManagementObjectmoinmos.Get()){CPUtprt=Convert.ToDouble(Convert.ToDouble(mo.GetPropertyValue("CurrentTemperature").ToString())-2732)/10;}}catch{}Console.WriteLine(CPUtprt.ToString());Console.ReadLine();}}}

这是wmi的代码显示温度为0
解决方案十:
。。。。。。。。。。为什么我可以读取出来呢?我是64位win7
解决方案十一:
你是用的哪个代码?
解决方案十二:
@SomethingJack
解决方案十三:
有人可以告诉我为什么吗?
解决方案十四:
不知楼主解决了么,本人也是如此。但我先运行Openhardwaremonitor程序,再执行代码就可以得到温度了。。。
解决方案十五:
管理员方式运行VS2013,就能得到结果
解决方案:
ComputermyComputer=newComputer(){MainboardEnabled=true,CPUEnabled=true,RAMEnabled=true,GPUEnabled=true,FanControllerEnabled=true,HDDEnabled=true};myComputer.Open();

解决方案:
亲,你的问题解决了吗
解决方案:
不好意思了,那个时候在解体,后面又准备考研了。总结一下这个问题。最主要的原因在于,首先需要运行那个openhardwaremonitor.exe文件也就是下图中的应用程序然后,再运行我们创建的那个C#程序,本项目最终的C#的winform如下。这样就可以看到已经可以显示温度了,并且这个检测是实时检测的,而非上面所说的WMI的方式。再贴一张图证明一下。其次,本人的系统是WIN10的,可能跟这个有点关系。因为同样的程序在队友的win7系统下就可以很无障碍的跑出来。ok,希望以后还需要这个的人们能偶有些帮助,此贴终结。

时间: 2024-12-10 21:17:58

C# 用openhardwaremonitorlib读取CPU温度的相关文章

如何检测CPU温度

如何检测CPU温度 如何检测CPU温度 作者:佚名 教程来源:本站原创 点击数:10190 更新时间:2008-8-20 随着天气慢慢变热,电脑的散热问题备受关注,.在这里我给大家推荐一个可以测试CPU温度的小软件Core Temp.它是通过CPU内核中的数字温度传感器来直接记录温度,因此准确率非常高,. 主板检测CPU温度的问题 不要总相信电脑检测的,要相信自己的感觉,你可以用手摸摸CPU风扇,如果不烫手,管他电脑检测的是多少度呢.因为检测软件也是通过主板BIOS的信息来检测温度的.而有些主板

驱动人生怎么检测电脑cpu温度

  驱动人生监测电脑cpu温度教程: 夏天电脑温度过高,频繁导致死机卡机,CPU芯片的温度好比六月的天,莫测的变幻会影响您使用电脑的体验. 尤其是在大型游戏.作图或者看视频的时候温度剧增,就像女票看到您玩游戏时一样,友谊小船说翻就翻.过高的电脑硬件温度玩家苦不堪言. 购买好的CPU散热器是解决CPU芯片高温的最直接办法.但是您知道您的CPU温度是多少吗?如何了解CPU的温度,以便能够及时对电脑的使用情况做出调整. 无疑,安装电脑温度监测软件就能够随时直观的了解其温度状态.精准的数据能够让我们感知

降低CPU温度 提高电脑系统稳定性

随着计算机技术的发展,CPU的工作频率越来越高,发热也越来越厉害.CPU厂家都建议对CPU使用"散热片+风扇"散热,但是,在使用了散热片和风扇后,散热效果还不是很理想,因CPU超频导致发热量过大而死机的现象屡见不鲜. 笔者曾接修一台由主板为Intel,Cyrix6X86/133MHz/8M/2.1G配置的PC机,DOS环境下运行正常,而进入Windows时"死机",这时摸CPU非常烫手,但CPU的散热片及风扇均正常,测CPU的工作电压也正确.试将CPU频率由133M

主板不能检测cpu温度怎么解决

  主板不能检测cpu温度的解决方法: 因为CPU在BIOS下功耗很少,并不能真正反映工作温度 所以进入操作系统,利用软件辅助 点击打开[百宝箱] 在百宝箱里找到[硬件检测]工具 这里可以看到,CPU的温度高了一度 随着用的时间越来越长,CPU的温度可能会上升,要注意哦

怎么查看cpu温度

  怎么查看cpu温度 我们借用鲁大师软件来帮助我们查看CPU温度.这是鲁大师的图标. 打开鲁大师: 在窗口右边就是当前电脑各个部件的温度: 我们可以查看更详细的信息: 也可以进行温度压力测试: 也同查看历史温度:

cpu温度过高如何处理 处理cpu温度过高的方法

  处理cpu温度过高的方法 一.清洁CPU散热风扇 1最为简单有效而又节省开支的办法就是我们自己动手使用毛刷和皮老虎清理CPU散热器的风扇,清理完成后便可有效改善处理器散热性能. 2清理风扇是一件需要耐心的事情,而且风扇的死角处不是特别容易清理,结合皮老虎,连刷再吹,相信只有耐心,灰尘很快便会去无踪,此招可以在一定程度上显著提升CPU散热能力. 3自己清理CPU风扇没有什么技术含量,我们无非用到的工具就是毛刷和皮老虎,在我们耐心的反复清理之后,原本污垢满面的散热器也会变得焕然一新.这将使散热器

cpu温度过高怎么办

  cpu温度过高怎么办 给电脑除尘 电脑由于长期暴露在外使用,灰尘从电脑的散热口进入机器内部,机器内部积累的灰尘慢慢增多,大量的灰尘吸附在散热风扇的扇叶上面,堵塞散热通风口,导致板卡产生的热量无法被及时排除,温度过高,从而引发不稳定.当你的电脑出现频繁的蓝屏现象,或者在使用电脑的过程中感觉散热风扇声音比以前大了的时候,就可以确定你的电脑散热风散上积了不少灰尘了,灰尘附着在散热风扇上到导致风扇转动吃力,因而声音很大.这时将电脑的灰尘清理一下将可以改善CPU温度过高的状况,电脑除尘可以自己动手,例

cpu温度高怎么办

大夏天可能您正在high游戏或者电影,突然电脑蓝屏死机了,然后大多数人直接会想到是不是系统的问题,接着就重装系统,如果是系统的问题,重装完系统后问题就会解决.如果还是经常出现蓝屏,便认为不是软件的问题,那么就只能是硬件的问题了,大多数人面临这种情况会送去检修,而检修时工作人员最常遇到的便是CPU温度过高导致的,也往往会把CPU的温度放检修的首位.下面,我们就一起看一下如何解决CPU温度高的问题. 原因: 超频引起的,这是机器的过高要求的工作. 电风扇引起的,这种在我们的生活中很常见.如:风扇损坏

win8系统进入bios查看cpu温度的小技巧

  win8系统进入bios查看cpu温度的小技巧           具体方法如下: 1.切换到桌面,在左下角的 Win 徽标处右击鼠标,选择"控制面板"; 2.在"控制面板"中点击"硬件和声音"; 3.在"硬件和声音"窗口中点击"更改电源按钮的功能"; 4.在打开的"系统设置"窗口中点击"更改当前不可用的设置"; 5.然后在关机设置中取消"启用快速启动&