SHOEISHA iD

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

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

ComponentZine(PlusPak)

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

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

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

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

 GcProgressBarコントロールはVS標準のProgressコントロールの機能拡張版で、Windows Vistaのアニメーション効果に加え、独自の進捗表示スタイルを作成できます。

 塗りつぶしの方向やバー自体の向きの変更、設計時の書式設定によって現在の進行状況に関する詳細情報を文字としてコントロールに表示できます。

バーのスタイルの設定例(ヘルプファイルより抜粋)
バーのスタイルの設定例(ヘルプファイルより抜粋)
表示文字の書式を自由に設定できる
表示文字の書式を自由に設定できる

 バーの動作範囲は「Maximum」と「Minimum」プロパティで設定でき、進行状況はValueプロパティに設定します。バーの数値表示は「DisplayTextFormat」プロパティで行います。あらかじめプリセットされている「値のタイプ」を使用し、これを元に加工することで自作の数値表示を行うことができます。

「値のタイプ」に使用できるキーワード

 「値のタイプ」に指定できるキーワードは下記のとおりです。これらのキーワードのほかに、任意のリテラル文字と組み合わせて表示するテキストの書式を設定できます。

キーワード 説明
[v] コントロールの現在値(Value プロパティの値)
[p] 全体の進行範囲に対する完成の度合い(Value プロパティの値に基づいたパーセンテージ)
[s] 全体の進行範囲(Maximum - Minimum の値)
[m] コントロールの最小値(Minimum プロパティ)
[M] コントロールの最大値(Maximum プロパティ)
[^v] タスク完了までの残り値(Maximum - Value の値)
[^p] 全体の進行範囲に対する未完成の度合い(完了までの残り値に基づいたパーセンテージ)

「値の書式」に使用できるキーワード

 「値の書式」では、「値のタイプ」で設定する値の書式を指定します。書式に指定できるキーワードは下記のとおりです。それ以外の文字は使用できません。

キーワード 説明
# 数値の桁を指定します。値が0の場合は何も表示されません。
0 数値の桁を指定します。値が0の場合は0を表示します。
.(ピリオド) 小数点の表示位置を指定します。
,(コンマ) 桁区切り記号の表示位置を指定します。

 今回は、取得するDisk Transfer値を正確に表示する機能ではなく、ディスクにアクセスしているかどうかを視覚的に表示するためだけなので、動作範囲は「Maximum」プロパティを1000に設定します。数値は表示しないのでDisplayTextFormatプロパティの値を削除します。

PerformanceCounterクラスの使い方

 PerformanceCounterクラスは、先に説明したようにWindowsのパフォーマンスカウンタの機能を取り出して使うことができるクラスです。

 この機能を使うには、「CategoryName」「CounterName」「InstanceName」「MachineName」の4つのプロパティを使用します。最低でも「CategoryName」「CounterName」を使用し、「InstanceName」「MachineName」はカウンタによって使用するかどうかが決まります。

 使用するプロパティについては、コントロールパネルのアプリケーション「パフォーマンスモニタ」の「カウンタの追加」ダイアログで知ることができます。例えば、次の画面は「Processor」の「IdleTime」を表示するカウンタを追加しようとしています。リスト内の太字の文字が「CategoryName」、「%」で始まっているのが「CounterName」になります。そして、このカウンタではCoreDuoプロセッサのどちらのCPUの値を取り出すのかを選ぶリストが表示されますが、これが「InstanceName」になります。

 「MachineName」はリストのコンピュータです。特にコンピュータを選ばなければ指定しません。

パフォーマンスカウンタの各プロパティ名
パフォーマンスカウンタの各プロパティ名

 今回は、この中から「LogicalDisk」のカウンタ「Disk Transfers/sec」を使用します。「InstanceName」には各ドライブ名を指定し、それぞれのドライブでの転送速度を取得します。

各ドライブでの転送速度を取得する
各ドライブでの転送速度を取得する

次のページ
Tickイベントの処理

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

  • 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」など、さまざまなカンファレンスを企画・運営しています。

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

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

メールバックナンバー

アクセスランキング

アクセスランキング