does any one know how to get the current motherboard, processor or HD temperature statistics?
In GNU/Linux, I know I could use something like hddtemp or sensord to get the info, and then parse it... but in Windows: How can I do this? And, Can it be done with with C# or Java or any other hight level programming language?
Thanks!
相关问题
- Delete Messages from a Topic in Apache Kafka
- Jackson Deserialization not calling deserialize on
- How to maintain order of key-value in DataFrame sa
- StackExchange API - Deserialize Date in JSON Respo
- Difference between Types.INTEGER and Types.NULL in
The problem with temperature and other monitoring sensors is that there is no common protocol on the hardware level, nor drivers allowing to retrieve that information with common API.
Software like already mentioned SpeedFan and HWMonitor (from the makers of CPU-Z utility) work by painstakingly cataloging the various sensors and bus controllers, and implementing corresponding protocols, usually using kernel-mode driver to access SMBus devices.
To embed this functionality in you own software, you can either develop this functionality yourself (possibly reducing the amount of work by tailoring it to your specific hardware, and using linux code from www.lm-sensors.org as reference) or purchasing commercial library that implements it. One, used by HWMonitor, is available here.
good luck
I would argue that when the right configurations are in place, it can be superior to windows's one.
http://www.lm-sensors.org/ is what does all the work. I had that plugged into RRDgraph & Munin and I was monitoring the temperature of my room over a period of almost a year and had nice pretty graphs. Also showed me my CPU fan was slowly wearing down, and I could see the line sloping down over a long period and know it was on the way out.
http://www.lm-sensors.org/browser/lm-sensors/trunk/doc/developers/applications is what you want.
(Oh wait, I fail. You're on *nix wanting to do it on Windows, my bad :( ..um.. well. Good luck. Maybe I'll leave this here in case somebody finds your post while searching for the contrary)
Back when I did use windows, all I recall is Ye' Old Motherboard Monitor ( Discontinued ). Wiki article says there is speedfan and that looks like your best option. Programmatically, I guess you'll have to find the hardware specs and dig through Windows API and stackloads of arbitrary bus address offsets.
This is going to vary quite a bit depending on your hardware. Once you figure out from your hardware vendor whether you have sensors on your motherboard, you might look into using SNMP and the HOST-RESOURCE MIB.
Use the Add/Remove Windows Components Wizard under Management and Monitoring Tools to get SNMP installed. Then you should be able to ask your Windows box for lots of info using standard systems management software like OpenView or Nagios.
As @AndrewJFord suggest these methods vary from vendor to vendor, indeed from part to part, but I'll make some generalisations if that's ok.
Now I'm a big HP user and all of their kit is instrumented by something called Insight Management Agents, of which there are versions available for Windows and most Linux's. What they do is gather all the system information from all their sensors (proc, memory, mobo, fans, disks etc) and expose that via an SNMP-based polling API or via an alert-based SNMP/SMTP/MAPI interface. I dare say IBM/Dell etc will have their own equally good and functionally similar versions but I don't know them sorry. If your machines are 'off-brand'/made-from-kit or you have no control then I'm not aware of any single method of getting at all this information easily.