Click here to Skip to main content
15,867,686 members
Articles / Programming Languages / C#
Article

.NET DUMeter clone

Rate me:
Please Sign up or sign in to vote.
4.86/5 (47 votes)
10 Feb 2003BSD4 min read 342.6K   7.4K   111   86
A DUMeter clone, but with some better/different reporting features.

Sample Image - mydumeter.gif

Introduction

This is basically a DUMeter clone, but with some better/different reporting features. Being on a dialup connection, I like to see what's happening to my bandwidth. I have done this UI to be as unobtrusive as possible. Full UI customization and transparency is available. It will work on Win2K+ only as far as I am aware.

Source code

There was no big feat in doing this, so I wont bore you with the code. You can have a look. This is not really a programming article, but rather a very useful tool and replacement for DUMeter fans. You don't have to vote. Please note that the blank database is included with the source.

Usage

When running MyDUMeter for the first time, the option dialog should popup that allows you to select your interface. If anything goes wrong (for some reason), just delete the MyDUMeter.config file. Also make sure that the log.mdb (Access 2002 DB) is in the same directory and that you have at least MDAC 2.6 installed.

Some UI tips:

  • Mouse over on real-time graph shows bandwidth numbers. These numbers can always be shown via the Show Text menu.
  • Clicking on a report will bring up a tooltip with some extra stats for that "section".
  • All windows can be moved by clicking and holding down the mouse.
  • Double click real-time graph to show window border, the window can now be resized. Double click again to hide border.

Known problems and facts

  • When resizing the real-time graph, it goes on an acid trip. This is intentional. Select the size you like, and let it be. This is now fixed.
  • The average shown in the report's tooltip is the recorded average, in other words if only one log entry was made at say 10 kb/sec, then the whole section would reflect a 10 kb/sec average. IMHO this is better than using a general average.

Conclusion

I hope you find this utility handy. Any comments/suggestions welcome.

Updates

  • 1.1
    • Fixed small calculation "bug" in report tooltip.
    • Added better alignment in report.
    • Added a TypeConverter for machine name. Your PC can now be selected via dropdown box. Please recheck the interface, and make sure you have admin rights on the PC you like to monitor. A bit problematic using primitive remote debugging. I have no extra Windows PC on my network, so I had to send several versions to someone with no .NET knowledge to "debug" it. But it seems to work now.
  • 1.2
    • An empty access database is now embedded in the assembly. It will check for an existing database on start. The template database is now included with the source zip. All you need to do is the following: Add the "file" as embedded content to the project and add the code.
      C#
      if (!(File.Exists("log.mdb")))
      {
         Stream s = 
           Assembly.GetExecutingAssembly().GetManifestResourceStream
                                               ("MyDUMeter.log.mdb");
         Stream r = File.Create("log.mdb");
         int len = 8192;
         byte[] buffer = new byte[len];
         while (len > 0)
         {
            len = s.Read(buffer, 0, len);
            r.Write(buffer, 0, len);
         }
         r.Close();
         s.Close();
      }
    • Fixed "Fixed small calculation "bug" in report tooltip.".
    • MachineName "bug" is still there. Waiting for feedback.
    • Some more report options and stats.
  • 1.3
    • Added a pinger. Thank to Saurabh Nandu (or the original person who wrote it, there seems to be many people taking ownership of the code) for the base code. It will ping your desired host every 500ms and the text will displayed on the real-time graph.
  • 1.4
    • Added some more options. Ping interval and an option to hide the real-time graph when the connection goes idle. The graph will popup once the connection becomes non-idle.
    • Added much better resizing code. Redone the whole real-time graph painting.
  • 1.5
    • Thanx to Wilco B for pointing out a small problem. That has been fixed now.
    • Added very cool selection/highlighting feature for the report (see pic). Just right click hold and drag.
  • 1.6
    • Fixed many small cosmetic "bugs".
    • And thanx to Wilco B for pointing out the same problem in real-time graph.
  • 1.7
    • Many new cosmetic/stats features in Report. Selection can be zoomed into.
    • Real time graph can now be adjusted with mouse wheel (require wheel click to activate/deactivate). Shows a sluggish OSD.
    • Fixed a bug where focus will be stolen from the active window if real-time graph pops up when connection goes non-idle.
    • Removed the width constraint on the report. It was not really necessary at all. :)
  • 1.8
    • Added suggestion made by Kant.
    • Added make.bat for command line building (makes debug build).
    • Made all threads running at lower priority. Should help with CPU usage.

License

This article, along with any associated source code and files, is licensed under The BSD License


Written By
Software Developer
South Africa South Africa
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
QuestionIs that so difficult to reproduce DU Meter? Pin
mnbvclkjhg25-Oct-15 16:08
mnbvclkjhg25-Oct-15 16:08 
AnswerRe: Is that so difficult to reproduce DU Meter? Pin
Colin Angus Mackay26-Oct-15 5:27
Colin Angus Mackay26-Oct-15 5:27 
GeneralMy vote of 5 Pin
eduardochiletto26-May-14 1:48
eduardochiletto26-May-14 1:48 
GeneralUse Modem EVDO connection Pin
thongminhhon1it18-Oct-09 10:50
thongminhhon1it18-Oct-09 10:50 
GeneralUsed as a Control [modified] Pin
mpgjunky26-Sep-08 0:14
mpgjunky26-Sep-08 0:14 
GeneralGreat job can, need Vista gadget implementations Pin
nemopeti25-Jan-07 11:19
nemopeti25-Jan-07 11:19 
Generalxml output Pin
gurtaran24-Apr-06 19:11
gurtaran24-Apr-06 19:11 
Generalthanks + a suggestion Pin
Herve_a18-Feb-06 22:44
Herve_a18-Feb-06 22:44 
GeneralAwesome work Pin
Hadi Fakhreddine9-Apr-05 0:37
Hadi Fakhreddine9-Apr-05 0:37 
QuestionIs MyDUMeter "Open Source"? Pin
Member 143455930-Mar-05 13:21
Member 143455930-Mar-05 13:21 
AnswerRe: Is MyDUMeter "Open Source"? Pin
leppie30-Mar-05 19:26
leppie30-Mar-05 19:26 
GeneralRe: Is MyDUMeter "Open Source"? Pin
Member 143455910-Apr-05 4:49
Member 143455910-Apr-05 4:49 
AnswerRe: Is MyDUMeter "Open Source"? Pin
Hadi Fakhreddine9-Apr-05 0:33
Hadi Fakhreddine9-Apr-05 0:33 
GeneralRe: Is MyDUMeter "Open Source"? Pin
Member 143455910-Apr-05 4:46
Member 143455910-Apr-05 4:46 
GeneralSupport for Windows ME Pin
FrancescoNavarria13-Nov-04 22:42
FrancescoNavarria13-Nov-04 22:42 
GeneralRe: Support for Windows ME Pin
JeffHarrold8-Jan-05 15:21
JeffHarrold8-Jan-05 15:21 
GeneralIt doesn´t run anymore, after WindowsUpdate Pin
Member 14345599-Jun-04 4:29
Member 14345599-Jun-04 4:29 
GeneralRe: It doesn´t run anymore, after WindowsUpdate Pin
JeffHarrold8-Jan-05 15:15
JeffHarrold8-Jan-05 15:15 
GeneralSmall bugette Pin
easyTree14-May-04 3:15
easyTree14-May-04 3:15 
GeneralError: The referenced component 'Haxord' could not be found. Pin
woo_hoo10-Feb-04 22:07
woo_hoo10-Feb-04 22:07 
GeneralRe: Error: The referenced component 'Haxord' could not be found. Pin
leppie27-Feb-04 21:18
leppie27-Feb-04 21:18 
GeneralCPU usage Pin
Member 104509324-Feb-04 22:13
Member 104509324-Feb-04 22:13 
GeneralRe: CPU usage Pin
leppie27-Feb-04 21:14
leppie27-Feb-04 21:14 
GeneralProgramm doesn't start Pin
Snikit4-Dec-03 13:13
Snikit4-Dec-03 13:13 
GeneralRe: Programm doesn't start Pin
JeffHarrold8-Jan-05 15:18
JeffHarrold8-Jan-05 15:18 
I don't know if anyone answered this problem, or if you found out the answer yourself, but it sounds like you don't have the .NET Framework installed on your computer. If you go to Windows Update you should be able to download it from there. Hope that helps.

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.