SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ComponentZine(PlusPak)

ディスクアクセス状況を通知する.NETアプリケーションを作る

PlusPak for Windows Forms 5.0Jのプログレスバーを使ったアプリケーションの作成

  • X ポスト
  • このエントリーをはてなブックマークに追加

GUIのデザイン

 今回使用するコントロールです。

GUIで使用するコントロール
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コントロールで表示します。ドライブの指定は自動で論理ドライブを設定する方法もありますが、記事ページの都合により最初から論理ドライブを指定する方法を使いました。

Windowsのパフォーマンスカウンタで表示している論理ディスクのDisk Transfer値。これと同じものを.NET FrameworkのPerformanceCounterクラスで取得できる
Windowsのパフォーマンスカウンタで表示している論理ディスクのDisk Transfer値。これと同じものを.NET FrameworkのPerformanceCounterクラスで取得できる

次のページ
GcProgressBarコントロールの配置と設定

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
ComponentZine(PlusPak)連載記事一覧

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

8ビットコンピュータの時代からBASICを使い、C言語を独習で学びWindows 3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Excel VBAとVisual Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。近著に、「ExcelユーザーのためのAccess再...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3238 2009/03/17 12:12

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング