|
.NET TIPS Windowsサービスのサービス名を列挙するには?デジタルアドバンテージ 一色 政彦2005/10/14 |
![]() |
|
|
|
「TIPS:Windowsサービスを開始/停止/一時停止/再開するには?」では、.NETのプログラムから「IIS Admin」などのWindowsサービスを制御する方法について紹介した。この方法では、最初にServiceControllerクラス(System.ServiceProcess名前空間)のコンストラクタに、サービス名(例えば、「IISAdmin」)を指定する必要があった。サービス名を知るには、前掲のTIPSで説明されているように、サービスのプロパティを参照すればよい。
しかし、このサービス名をプログラムで直接取得して使いたいというケースもあるだろう。そのような場合には、ServiceControllerの静的メソッドであるGetServicesメソッドを呼び出せばよい。GetServicesメソッドは戻り値としてServiceControllerオブジェクトの配列を返す。つまり各サービス情報をまとめて返すわけだ。なおGetServicesメソッドのパラメータにコンピュータ名を指定すればそのコンピュータの、指定しなければローカル・コンピュータの(デバイス・ドライバ・サービス以外の)すべてのサービスを取得できる。
各サービスのサービス名を取得するには、この配列から1つずつServiceControllerオブジェクトを取り出し、そのServiceNameプロパティを参照すればよい。
ちなみにサービスには、実際の「サービス名」だけでなく、エンド・ユーザーに分かりやすい表示を行うための「表示名」も用意されている。これはServiceControllerオブジェクトのDisplayNameプロパティを呼び出せば取得できる。
以上の内容を実際に実装したのが、次のサンプル・プログラムだ。このプログラムは、ローカル・コンピュータのすべてのサービスのサービス名と表示名を一覧表示する。
|
||
| Windowsサービスのサービス名を列挙するサンプル・プログラム(上:C#、下:VB.NET) |
なおこのサンプル・プログラムをビルドするには、System.ServiceProcess.dllへの参照を追加する必要がある。
次の画面はこのサンプル・プログラムの実行結果である。
![]() |
| サンプル・プログラムの実行結果 |
このようにしてサービス名をプログラムで列挙することで、任意のサービスを自由にユーザーに選ばせて、そのサービスをプログラムで操作することが可能になる。![]()
|
カテゴリ:クラス・ライブラリ 処理対象:Windowsサービス 使用ライブラリ:ServiceControllerクラス(System.ServiceProcess名前空間) 関連TIPS:Windowsサービスを開始/停止/一時停止/再開するには? |
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -



