Trafmon

Trafmonはネットワークインターフェースの送信、受信の速度や使用率を表示し、簡単なグラフで表示するフリーソフトウェアです。

Windows 2000およびWindows XPで動作します。

インストールはアーカイブファイルを展開するだけです。
アンインストールはTrafmon.exeおよびTrafmon.ini(もしあれば)を削除するだけです。

使い方

起動するとスクリーンショット1のようになります。

ウィンドウ上にマウスポインタを移動して、左ボタンでドラッグすることでウィンドウの位置を移動できます。

ウィンドウ上でマウスの右ボタンをクリックするか、またはシステムトレイのアイコン上で右ボタンをクリックすることでことでポップアップメニューが開き、「about」(バージョン情報および著作権情報を表示する)、「Config」(設定ダイアログを開く)、「Clear Graph」(グラフのクリア)、「Exit」(終了)が選べます。

ウィンドウの端にマウスポインタを移動して、左ボタンでドラッグすることでウィンドウのサイズを変更できます。

青が送信、緑が受信です。sec.(秒)、min.(分)、hour(時)、day(日)のそれぞれのB/sの表示は単位時間当たりの送受信バイト数、括弧内は累積送受信バイト数です。
sec.の行にある%は対象ネットワークインターフェースの最大速度に対するパーセンテージです。
GraphPeakの行は、現在グラフに表示されている送受信のそれぞれの最大値です。グラフのスケールが変動するので、この値をみてスケールを知ることが出来ます。

スクリーンショット1
スクリーンショット1

スクリーンショット2は設定ダイアログです。設定にはリミッターを設けていないため、とんでもない設定も可能です。おかしくなった場合は「すべて初期値に戻す」を押して対処してください。
ウィンドウを画面外に出してしまって操作不可能になった場合は、拙作のResize & Moveなどのウィンドウ位置を別プログラムから変更できるソフトウェアを使用して画面内に戻してください。

スクリーンショット2
スクリーンショット2

細かい説明

レジストリには書き込みません。設定を変更した場合は、実行ファイルのあるディレクトリに Trafmon.ini という名前で中身がテキストのファイルを作成します。

PdhEnumObjectItemsで最初に見つかったネットワークインターフェースを対象に処理します。
初期値としてはLoopback以外を設定します。

pingなどでテストをすると、送信の線と受信の線が重なってしまうため、送信と受信のどちらの線を上にするかを、1秒ごとに交互に変えています。

CPUにあまり負荷をかけずに表示したいと思って作成したものなので、SetTimer関数を使用して(おおよそ)1秒ごとにPdhCollectQueryData関数でネットワーク使用量を取得しています。
グラフの表示にCPUパワーを食われても困るし、さりとて固定のスケールでは使用量が多い時と少ない時の両方に対応できないので、CreateDIBSectionで作成したデバイス独立のビットマップにグラフを作成し、表示の時にStretchBltで拡大・縮小しています。
内部では初期値横256ドット(秒)分、縦1000ドット分(表示対象ネットワークインターフェースの最大速度/1000の精度)のグラフを作成しています。
CPUパワーの代わりにメモリを消費する方針で作成しています。

元々はCrusoe TM5600 600MHzのノートPC(今となってはかなり遅い)でネットサーフィンしている時のネットワーク送受信量をみたくて作成したのですが、そのノートPCが壊れたため別のデスクトップPCでYouTubeなどを見ているときにどうなっているのかを見るという方向に変わり、結果として今の形に落ち着きました。

その後、中古のノートPCを購入して使い始めたのですが、ウィンドウが邪魔な場合があったので自動的に隠すオプションをつけました。マウスをフックして監視するのが常套手段のようですが、そこまでするものでもないと考え、タイマー処理でマウスポインタの位置を読み取ってウィンドウの外にマウスポインタが移動したら表示するようにしました。

その他注意事項など

このソフトを使用することで何か問題や損害などがあっても当方は責任を負いません。

このソフトの著作権は私(509)にあります。

2007年2月7日 Version 1.1
○ グラフ描画Y軸オフセットが有効になっていなかったバグを修正
○ 何故かCreateWindowExを無駄に呼び出していたバグを修正(メモリ使用量が異常に増えていた)
○ インターフェース切替時にクラッシュする可能性があった問題を修正
○ マウスポインタをウィンドウ上に持っていくと隠れるオプションを追加
○ システムトレイにアイコンを表示し、そのアイコンから右クリックメニューを開けるようにした
○ タスクトレイに表示しないようにした
○ IMEを使わないようにした(少しだけメモリ使用量を削減)
○ 1日分の表示を行わない場合はその分のメモリを解放するようにした
○ バージョンを確認できるようにaboutダイアログを追加した

2007年5月8日 Version 1.2
○ 日単位の平均値と最大値がおかしくなる問題をある程度修正
○ GraphPeakが下がらないバグを修正したつもり
○ longの最大値を越えた場合はunsigned longで処理するように変更
○ グラフの最大表示倍率の設定が無効になっていたバグを修正

※ 基本的にウェブアクセス時のトラフィックを見るなどの目的で作成しているため、netperfなどを使って最大トラフィックを出した場合などには対応していません。そのような目的の場合はもっと詳しいソフトを使うと思いますが、何故かこのソフトで対応して欲しいという要望があればご連絡ください。時間が取れたらやってみます。

連絡先

509509enator@gmail.com にメールを送ってください。