By Casey Liss

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:

Tray System Monitor Demo GIF

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.