Page4●PerformanceCounterコンポーネントPerformanceCounterコンポーネント(以下、PerformanceCounter)は、Windowsに付属しているパフォーマンス・モニタの情報を取得するためのコンポーネントだ。このコンポーネントとChartコントロールを組み合わせれば、パフォーマンス・モニタのグラフのようなUIをWindowsフォームに追加できる。●ProcessコンポーネントProcessコンポーネント(以下、Process)は、ほかのプログラムを起動するときに使うコンポーネントだ。Processを使えば、起動したプログラムに対して、終了を待ち合わせたり強制終了させたりすることもできる。下記のコードはProcessの利用例だ。Windowsフォーム上には、「Start_Button」「Wait_Button」「Kill_Button」という名前の3つのButtonコントロールと、「Process1」という名前のProcessを配置している。Processの使用例(上:VB、下:C#)ButtonコントロールのClickイベント・プロシージャ(=Start_Button_ClickメソッドとWait_Button_ClickメソッドとKill_Button_Clickメソッド)は、Windowsフォーム・デザイナのフォーム画面上に配置した各Buttonコントロールをダブルクリックすると、そのひな型コードが自動的に生成される。サンプルという性質上、StartメソッドとWaitForExitメソッドは別のイベント・プロシージャに分けているが、起動したプログラムの終了を待ち合わせる処理を実装する場合は、(これらは別のイベント・プロシージャに分離せずに)Startメソッドの直後にWaitForExitメソッドを実行するのが一般的だ。WaitForExitメソッドを実行するとWindowsフォームの移動なども含めたUI操作が無視されてしまうので、(プログラムの終了を待ち合わせている間にもUI操作が必要な場面では)ProcessのStartメソッドとWaitForExitメソッドの実行をBackgroundWorkerで別スレッド化することも考慮に入れておいた方がいいだろう。●SerialPortコンポーネントSerialPortコンポーネント(以下、SerialPort)はRS-232Cなどのシリアルポートを使うためのコンポーネントだ。PC間のデータのやりとりはTCP/IPなどのプロトコルが主流になってきたが、制御機器などとのデータのやりとりはRS-232C経由となるときもあるので、そのようなときにSerialPortを使うことになる。●ServiceControllerコンポーネントServiceControllerコンポーネント(以下、ServiceController)は、Windowsサービスの情報を取得したり起動や停止を行ったりすることができるコンポーネントだ。起動や停止には、UACによる管理者への権限昇格が必要になるので、DirectoryEntryと同様に、app.manifestファイルを作成し、<requestedExecutionLevel>要素のlevel属性に「requireAdministrator」を指定する。●TimerコンポーネントTimerコンポーネント(以下、Timer)は、非UIデザイン系のコンポーネントの中で利用頻度が高い部類に入るコンポーネントだ。Windowsフォーム・アプリケーション内でずっと立ち上げておいて、定期的に状況を監視して、その状況報告を表示するような処理を行いたいときに、Timerは役立つ。Timerを使えば、指定したミリ秒数でTickイベントが発生して、自動的にイベント・プロシージャが呼び出されるので、その中に処理を記述すればよい。1秒ごとに(1000ミリ秒ごとに)CPU使用率を測定してProgressBarに表示するためには、次のようなコードを記述する。Timerを使うためのコードはEnabledプロパティの有効/無効くらいで、大半がCPU使用率を表示する部分であることに注目してほしい。このようにTimerは簡単に使えるということだ。Windowsフォーム上には、「CPU_ProgressBar」という名前のProgressBarコントロールと、「Timer1」という名前のTimer1、「PerformanceCounter1」という名前のPerformanceCounterを配置している。PerformanceCounterコンポーネントのプロパティ設定が必要だ。Time」を、[InstanceName]プロパティに「_Total」を、それぞれ入力する(MachineNameプロパティ以外は、入力欄の右端の[▼]ボタンをクリックすると表示されるリストから選択可能)。Timerの使用例(上:VB、下:C#)フォームのShownイベント・プロシージャ(=Timer_Form_Shownメソッド)は、Windowsフォーム・デザイナのフォーム画面を選択した状態で、[プロパティ]ウィンドウの[イベント]一覧のイベント項目をダブルクリックすると自動生成される。TimerのTickイベント・プロシージャ(=Timer1_Tickメソッド)は、Timerをダブルクリックすると自動生成される。■まとめ3回にわたってWindowsフォームで使用する基本的なコントロールを説明してきた。これらの基本的なコントロールを組み合わせれば、ちょっとしたプログラムから本格的な業務アプリケーションまで、さまざまなWindowsフォーム・アプリケーションを作ることができる。そこで次回から、画面デザインと両輪となるデータ・バインディングなど、業務アプリケーション構築に必須な部分について説明していく。これまで紹介してきたWindowsフォーム・コントロールを使っていくので、どのようなUIにはどのようなコントロールを当てはめるべきか、ぜひ、頭の中でイメージできるように読み返していただき、次回をお待ちいただきたい。7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。TranslatorはPowerPoint用のアドイン。