Monday, June 4, 2007

Network Monitor

I used to have this problem where on my current Internet connection I have a daily download quota of 1 GB and every time I had to download something large, like say ISOs or legal torrents, I had to create a scheduler task to shutdown the computer after an estimated number of hours. That wasn't too great because it was either downloading too little or too much, so I decided to write this application (I called it "Network Monitor", but any other suggestions are welcome :-) and I thought I might share it with you.

Although I tested the application in the last couple of weeks, the new version 0.5 is almost a complete rewrite as I cleaned up the UI (for public release :-), added the shutdown option and the time limit. It's my first try at .Net C# and SharpDevelop, so obviously you will need the 2.0 .Net Framework installed to be able to run the application.

Just download the archive [see below], and extract it anywhere. The application needs write permissions in that folder to create a log file. It also needs registry permissions in the HKEY_CURRENT_USER to create a few registry keys to keep the settings, to be able to remember them for the next time you start the application.

One last note, obviously this is a tool to be used by those leaving their computers overnight to download, don't use it while you are working away as it will just turn off your computer without an actual notice.

Please feel free to report bugs and even enhancement requests and I'll try to put them in.

Network Monitor, 0.6 - 4 June 2007 [download]

- fix: using values over 2GB for download/upload limits was causing immediate hibernate/shutdown [I was using signed int(s) for MB to Bytes conversion, resulting in negative numbers];
- add: display download/upload speed in KB/s;

Future enhancements:
- display average upload / download when finished;
- shutdown/hibernate if the traffic in the last x minutes is below y MB, for when the Internet connection goes dead;
- (maybe) shutdown / hibernate if the speed in the last x minutes is below y KB/s, for when the Internet is very slow;