DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

ローカルコンピュータのすべてのサービス(またはデバイスドライバサービスのみ)を取得する

デバイスドライバサービス以外のサービスを取得する

ServiceControllerクラスのGetServicesメソッドにより、ローカルコンピュータのデバイスドライバサービス以外のすべてのサービスを取得することができます。なお、ServiceControllerクラスはNT系OSでのみ使用できます。

次の例では、ローカルコンピュータのすべてのサービスを取得して表示しています。

VB.NET
コードを隠すコードを選択
'参照設定にSystem.ServiceProcess.dllが追加されているものとする。

Dim scs() As System.ServiceProcess.ServiceController
'デバイスドライバサービス以外の、ローカルコンピュータのすべてのサービスを取得
scs = System.ServiceProcess.ServiceController.GetServices()
'GetServices("machineName")のようにコンピュータ名を指定することも出来る
'ここで次のようにするとデバイスドライバサービスのみを取得できる
'scs = ServiceProcess.ServiceController.GetDevices();
'結果を表示する
Dim sc As System.ServiceProcess.ServiceController
For Each sc In scs
    '名前と状態を表示
    Console.WriteLine("サービスの表示名:{0} / 状態:{1}", _
        sc.DisplayName, sc.Status)
Next sc
C#
コードを隠すコードを選択
//参照設定にSystem.ServiceProcess.dllが追加されているものとする。

System.ServiceProcess.ServiceController[] scs;
//デバイスドライバサービス以外の、ローカルコンピュータのすべてのサービスを取得
scs = System.ServiceProcess.ServiceController.GetServices();
//GetServices("machineName")のようにコンピュータ名を指定することも出来る
//ここで次のようにするとデバイスドライバサービスのみを取得できる
//scs = ServiceProcess.ServiceController.GetDevices();

//結果を表示する
foreach (System.ServiceProcess.ServiceController sc in scs)
{
    //名前と状態を表示
    Console.WriteLine("サービスの表示名:{0} / 状態:{1}",
        sc.DisplayName, sc.Status);
}

デバイスドライバサービスを取得する

GetDevicesメソッドにより、デバイスドライバサービスのみを取得することができます。使い方はGetServicesメソッドと同じです。

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • 「???を参照に追加します」の意味が分からないという方は、こちらをご覧ください。
  • .NET Tipsをご利用いただく際は、注意事項をお守りください。