Today I dug up an old tool I wrote way back in 2007. It’s called Tray System Monitor, and it’s designed to be a very small system monitor for Windows. It runs in the tray, and shows two graphs, side by side:
Out of the box, the graphs can show:
- Battery remaining
- CPU usage
- Disk usage
- Network downstream
- Network upstream
- Network up & downstream
- Volume
- Wireless strength
I wrote Tray System Monitor back when I was using Windows full time. It was one of my first C# apps. The code is reflective of its author: a semi-experienced C++ developer that had only around a year of experience in C#.
That being said, I dusted it off today, as I wanted to run it on the Windows computer I’m using full time at a client’s office. It took a little bit of build settings tweaking to get the old girl to run, but no code changes, which I was happy about.
I’ve placed the code on Github, should you want to check it out and/or tweak it for yourself.
I should also note that it is very easy to add your own monitors to the app,
without changing any of my code. In your own DLL, include a class that implements
the IStatusProvider
interface, and place it in the same folder as the
Tray System Monitor executable. It should auto-discover your provider the next
time the app is restarted, and it will be treated just like any of the other
available providers.