Windows サービスを表し、実行中のサービスまたは停止したサービスへの接続、サービスの操作、またはサービスに関する情報の取得を実現します。
この型のすべてのメンバの一覧については、ServiceController メンバ を参照してください。
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.ServiceProcess.ServiceController
Public Class ServiceController
Inherits Component
[C#]
public class ServiceController : Component
[C++]
public __gc class ServiceController : public Component
[JScript]
public class ServiceController extends Component
スレッドセーフ
この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。
解説
ServiceController クラスを使用すると、既存のサービスに接続して、動作を制御できます。 ServiceController クラスのインスタンスを作成すると、特定の Windows サービスと対話できるようにプロパティを設定します。この設定後、クラスを使用してサービスの開始、停止、およびその他の操作を実行できます。
ほとんどの場合、 ServiceController コンポーネントは管理機能として使用します。たとえば、 ServiceController インスタンスを通じてサービスにカスタム コマンドを送信する Windows アプリケーションまたは Web アプリケーションを作成できます。サービス コントロール マネージャ (SCM: Service Control Manager) Microsoft 管理コンソール スナップインではカスタム コマンドがサポートされていないため、このような機能は便利です。
ServiceController のインスタンスを作成した後で、対話の対象となるサービスを識別する 2 つのプロパティとして、制御するコンピュータ名およびサービス名を設定する必要があります。
メモ 既定では、 MachineName はローカル コンピュータに設定されているため、別のコンピュータを指定するインスタンスを設定しない限り、この設定を変更する必要はありません。
通常、サービスの作成者は、特定のコマンドに関連付けられているアクションをカスタマイズするコードを書き込みます。たとえば、 ServiceBase.OnPause コマンドに応答するコードをサービスに含むことができます。この場合、 Pause タスクのカスタム プロセスは、システムがサービスを一時中断する前に実行されます。
サービスが処理できる一連のコマンドは、そのサービスのプロパティによって決まります。たとえば、あるサービスの CanStop プロパティを false に設定するとします。この設定により、そのサービスでは Stop コマンドが使用できなくなります。必要なボタンを無効にすると、SCM でサービスを停止できなくなります。コードでサービスを停止しようとすると、エラーが発生し、" servicename を停止できませんでした。" というエラー メッセージが表示されます。
必要条件
名前空間: System.ServiceProcess
プラットフォーム: Windows NT Server 4.0, Windows NT Workstation 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
アセンブリ: System.Serviceprocess (System.Serviceprocess.dll 内)
参照
ServiceController メンバ | System.ServiceProcess 名前空間 | ServiceBase | ServiceControllerStatus | ServiceType