ServiceControllerクラスのGetServicesメソッドにより、ローカルコンピュータのデバイスドライバサービス以外のすべてのサービスを取得することができます。なお、ServiceControllerクラスはNT系OSでのみ使用できます。
次の例では、ローカルコンピュータのすべてのサービスを取得して表示しています。
'参照設定に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
//参照設定に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メソッドと同じです。