與現有服務通訊的簡介

更新:2007 年 11 月

您可以使用 ServiceController 元件,連接並控制現有服務的行為。當您建立 ServiceController 元件的執行個體時,會將該執行個體設定為與某一特定 Windows 服務產生互動。然後,您可以使用元件執行個體來開始、停止或者操作該服務。例如,您可以建立 ServiceController 元件,並與 Timer 元件一起使用,以便開始及停止以某一時間間隔為基礎的服務。

您可以利用 ServiceController 元件來執行幾項實用的動作。例如:

  • 您可以開始及停止您連接的服務、暫停該服務或者執行任何服務能夠回應的其他管理動作。如需詳細資訊,請參閱 HOW TO:執行服務的管理工作

  • 您可以查詢與元件互動的服務的各種屬性,並擷取屬性值。例如,您可以擷取 CanStopCanPauseAndContinue 的屬性值,決定服務是否可以停止、暫停或繼續。

  • 您可以傳回某一電腦現有的服務清單。

  • 您可以指定一個自訂命令,以呼叫您的服務。如需自訂命令的詳細資訊,請參閱 MSDN Online。

ServiceController 元件實際上會將動作的要求傳送到服務控制管理員,而不傳送到服務本身。服務控制管理員會停止、開始或暫停服務,或者按照指定執行其他動作。ServiceController 將要求傳送到服務控制管理員之後即傳回,並不會等候服務控制管理員將要求傳送到服務。因此,您應該在服務類別而非 ServiceController 類別範圍內處理例外狀況。

注意事項:

一般而言,如果您想要該元件操作包含在同一專案的服務,那麼不應將 ServiceController 元件加入到 Windows 服務應用程式。專案中建立服務的程式碼無法用來控制服務;必須從其他的內容中控制。

請參閱

工作

HOW TO:建立 ServiceController 元件執行個體

HOW TO:執行服務的管理工作

HOW TO:擷取服務清單

服務管理員範例