I don't know if this is a problem unique to me or not, but I don't think I've ever had a PC (and I have had many) that fully respected the Power Management settings I've set in Windows. Is it non-standard hardware? Is it wimpy OS programming? Some doltish program I have running in the background that blocks proper PM? Blind luck? I don't care.
I recently moved from Windows XP to Windows 7. On XP, my screensaver would activate about half the time, and the system would go into standby correctly about half of that time. On Windows 7, nothing happens at all. The screensaver never runs, the monitor doesn't even turn off. The bottom line is that I can't really trust what Windows will do and so the settings are basically of no use to me, unless I start a betting pool based on the randomness of its behavior.
What I want is a small app to enforce the settings that Windows just doesn't seem capable of doing. To do this, it will have to:
- be able to monitor mouse and keyboard usage
- be able to monitor CPU usage
- enforce different stages of power management at user-specified times, configured separately
- screensaver launch
- spin down hard drives
- turn off monitor
- initiate standby/hibernate/shutdown
- MAJOR INTELLIGENCE BONUS: have a configurable 'mindfulness' setting that takes into account CPU usage, network activity, or disk activity.
- if activity exceeds the above settings, do not initiate standby/hibernate/shutdown
- thresholds can be user-entered, or the user can tell the program to figure it out on its own by sampling a 20-second period of 'typical' activity and using those values as the thresholds.
- must run on Windows 7, 64-bit, but it does not itself have to be a 64-bit app.
- small exe, since this will have to run continuously. No memory leaks, no 100 megabyte apps.
- Ideally, it's portable: no wacky runtimes or registry diving. No .NET or JAVA, which are already ruled out by the above requirement.
- sits quietly in the system tray, and can be configured to be invisible (not in the tray, taskbar, or alt-tab) as well.
Now, I get the sense that something like this isn't very easy to do, especially without relying upon an existing runtime, so I won't be dismayed if there are no takers. But of course I had to give it a try.
Thanks for your time!