GUIのデザイン
今回使用するコントロールです。
1
フォームは、次のプロパティを設定し、デスクトップの左上にサイズ変更できない形に設定します。
プロパティ | 設定値 |
ControlBox | False |
FormBorderStyle | FixedToolWindow |
StartPosition | Manual |
Location | 0、0 |
2
Labelコントロールは、Imageプロパティにアイコンをセットしています。
3
Timerコントロールは、次のプロパティを設定します。
プロパティ | 設定値 |
Enabled | True |
Interval | 100 |
4
ContextMenuStripコントロールは「終了」メニューを作成し、ShortcutKeysプロパティに「Ctrl+X」を設定します。そして、フォームとフォーム上のすべてのコントロールの「ContextMenuStrip」プロパティに、このContextMenuStripコントロールを設定しておきます。
作成するプログラムの機能
このプログラムでは、Windowsのパフォーマンスカウンタの機能の一部を呼び出してPlusPak for Windows Forms 5.0JのGcProgressBarコントロールを使用し、Windows Vistaで使われているプログレスバーでディスクのアクセス状況を論理ドライブごとに表示します。
動作原理は簡単で、Windowsのパフォーマンスモニタにあるカウンタパラメータ「Disk Transfer」と同じものを.NET FrameworkのPerformanceCounterクラスを使って取得し、TimerコントロールのTickイベントハンドラで100ミリ秒ごとに更新していきます。パフォーマンスカウンタの取得方法さえ分かれば、ディスク容量の取得やCPUの稼動状況、メモリの空き容量など、パフォーマンスモニタで表示できるデータはほとんど取得できます。
今回は論理ドライブの転送(Read/Write)バイト量を取得し、GcProgressBarコントロールで表示します。ドライブの指定は自動で論理ドライブを設定する方法もありますが、記事ページの都合により最初から論理ドライブを指定する方法を使いました。