如何使用c#从Bios获取CPU温度信息我尝试了CPU temperature monitoring中的代码
但没有运气。 enumerator.Current
抛出异常。
我怎样才能做到这一点?感谢。
错误:
"This system doesn't support the required WMI objects(1) - check the exception file
Not supported
at System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)
at System.Management.ManagementObjectCollection.ManagementObjectEnumerator.MoveNext()
at CedarLogic.WmiLib.SystemStatistics.RefreshReadings() in D:\Downloads\TempMonitorSrc\TemperatureMonitorSln\WmiLib\SystemStatistics.cs:line 25
at CedarLogic.WmiLib.SystemStatistics.get_CurrentTemperature() in D:\Downloads\TempMonitorSrc\TemperatureMonitorSln\WmiLib\SystemStatistics.cs:line 87
at TemperatureMonitor.SystemTrayService.CheckSupport() in D:\Downloads\TempMonitorSrc\TemperatureMonitorSln\TemperatureMonitor\SystemTrayService.cs:line 260"
答案 0 :(得分:1)
答案 1 :(得分:0)
我遇到了完全相同的问题:
您引用的链接中的代码是正确的。我的.exe在Windows / XP和Windows / Vista上工作正常(只要我在Vista上以“管理员身份运行”)...但在Windows Embedded 7上出现WMI错误“不支持”时失败。
此时,我不知道问题是操作系统(WES7)还是我的主板(英特尔DH57jg)。
答案 2 :(得分:0)
虽然不理想,但我发现最接近/最好的解决方案是使用Speedfan(免费),它可以通过内存映射将其探测信息暴露给外部应用程序。有人做了C#转换:
Reading SpeedFan shared memory with C#
“建立在我所谈论的内容之上 上一篇文章,我们想说 访问SpeedFan提供的数据 来自C#应用程序。作为一个小 除此之外,从中读取信息 SMBus和其他低级接口 只能从内核完成。所以 SpeedFan等应用程序(HWMonitor, 珠穆朗玛峰等等)通常运行一个 内核级别的驱动程序,然后是 前端GUI呈现 信息。
对于SpeedFan,共享内存 (实际上它在技术上是一种记忆 我认为Windows上的映射文件是 用于内核之间的通信 驱动程序和用户空间GUI 应用。格式更好 该文件已被公开 SpeedFan的作者。所以,够了 说说,让我们看一些代码!“