有谁知道如何获取当前主板、处理器或高清温度统计数据?
在 GNU/Linux 中,我知道我可以使用 hddtemp 或 sensord 之类的东西来获取信息,然后解析它……但在 Windows 中:我该怎么做?而且,可以使用 C# 或 Java 或任何其他高级编程语言来完成吗?
谢谢!
4 回答
我会争辩说,当正确的配置到位时,它可以优于 Windows 的配置。
http://www.lm-sensors.org/完成所有工作。我把它连接到 RRDgraph & Munin,我在将近一年的时间里监测我房间的温度,并得到了漂亮的图表。还显示我的 CPU 风扇正在慢慢磨损,我可以看到线长时间倾斜并知道它正在退出。
http://www.lm-sensors.org/browser/lm-sensors/trunk/doc/developers/applications是你想要的。
(哦,等等,我失败了。你在 *nix 上想在 Windows 上做,我的错 :( ..um.. 好吧。祝你好运。也许我会把这个留在这里,以防有人在搜索时找到你的帖子相反的)
回到我使用 windows 的时候,我记得的只有 Ye' Old Motherboard Monitor (Discontinued)。维基文章说有speedfan,这看起来是你最好的选择。以编程方式,我想您必须找到硬件规格并挖掘 Windows API 和任意总线地址偏移的堆栈加载。
正如@AndrewJFord 建议的那样,这些方法因供应商而异,实际上因部分而异,但如果可以的话,我会做一些概括。
- 据我所知,英特尔、AMD 和 IBM 目前的所有主流处理器都有板载热传感器,带有已知的暴露 API,用于读取这些数据。我不是这些 API 的专家,所以不知道它们有多相似,但如果 Intel 和 AMD 的 API 有那么大的不同,我会感到惊讶。如果我是你,我会搜索一个开源的“系统管理工具”(顺便说一下,有一些像这样写成 Apple Widgets)并看看他们是如何做到的。
- 主板差异很大,有些具有广泛的热传感器,有些没有,并且所有的 API 都将具有相当不同的 API。我会首先联系公司的支持人员,他们让您选择主板。
- 总的来说,我相信只有非常高端的 15krpm SAS 磁盘具有内置热传感器,我知道一些中档系统在集线器的外壳上安装了传感器并将其报告给主板。真的不知道如何获得这些信息,但我再次与上述问题相同的人交谈。
现在我是 HP 的大用户,他们的所有工具包都由称为Insight Management Agents的工具进行检测,其中有适用于 Windows 和大多数 Linux 的版本。他们所做的是从所有传感器(proc、内存、主板、风扇、磁盘等)收集所有系统信息,并通过基于 SNMP 的轮询 API 或基于警报的 SNMP/SMTP/MAPI 接口公开这些信息。我敢说 IBM/Dell 等将有自己的同样优秀且功能相似的版本,但我不知道他们很抱歉。如果您的机器是“非品牌”/套件制造或您无法控制,那么我不知道有任何单一方法可以轻松获取所有这些信息。
温度和其他监控传感器的问题在于硬件级别没有通用协议,也没有允许使用通用 API 检索该信息的驱动程序。
像已经提到的 SpeedFan 和HWMonitor(来自 CPU-Z 实用程序的制造商)这样的软件通过煞费苦心地对各种传感器和总线控制器进行分类,并实施相应的协议来工作,通常使用内核模式驱动程序来访问 SMBus 设备。
要将此功能嵌入到您自己的软件中,您可以自己开发此功能(可能通过针对您的特定硬件进行定制来减少工作量,并使用来自 www.lm-sensors.org 的 linux 代码作为参考)或购买商业库实现它。一个由 HWMonitor 使用,可在此处获得。
祝你好运
根据您的硬件,这会有所不同。从硬件供应商处确定主板上是否有传感器后,您可能会考虑使用 SNMP 和 HOST-RESOURCE MIB。
使用管理和监控工具下的添加/删除 Windows 组件向导来安装 SNMP。然后,您应该能够使用标准系统管理软件(如 OpenView 或 Nagios)向您的 Windows 机器询问大量信息。