[Service] ServiceController 使用
這次看到一個服務控制的類別元件, 就來用用看吧!
1. 利用樣本來創建新的專案. (我是使用C++ CLI的Windows Form樣本)
由於他一開始並沒有將我們需要的參考:
System::SystemProcess,
所以我們需要到屬性中手動加入我們需要的參考(如下圖)

加入之後, 我們可以發現, 工具箱多了ServiceController這個元件可使用.
所以我們要使用ServiceController的時候, 可以直接從工具箱拉元件過來使用又或者可以直接新增他.
System::ServiceProcess::ServiceController^ sc1;
sc1=gcnew System::ServiceProcess::ServiceController("指定的服務名稱");
到控制台->系統管理工具->服務去找一個比較熟悉的服務...來測試一下吧...
(ex: 服務名稱: avast! Antivirus)

只要在建構時設定在本機上的服務名稱或者可以對ServiceName做定義;
就可以針對指定的Service做動作(啟動、停止等...)
sc1->ServiceName="指定的服務名稱";
當然, ServiceController有屬性可以知道此服務是否可以停止(CanStop)、暫停或者再啟動(CanPauseAndContinue)。
當指定的服務沒有存在執行的本機時, 可能會產生以下Exception.
(當CanStop為false時, 我們又執行Stop方法時, 會產生InvalidOperationException)

MSDN ServiceController類別:
http://msdn.microsoft.com/zh-tw/library/system.serviceprocess.servicecontroller(v=vs.80).aspx
1. 利用樣本來創建新的專案. (我是使用C++ CLI的Windows Form樣本)
由於他一開始並沒有將我們需要的參考:
System::SystemProcess,
所以我們需要到屬性中手動加入我們需要的參考(如下圖)

加入之後, 我們可以發現, 工具箱多了ServiceController這個元件可使用.
所以我們要使用ServiceController的時候, 可以直接從工具箱拉元件過來使用又或者可以直接新增他.
System::ServiceProcess::ServiceController^ sc1;
sc1=gcnew System::ServiceProcess::ServiceController("指定的服務名稱");
到控制台->系統管理工具->服務去找一個比較熟悉的服務...來測試一下吧...
(ex: 服務名稱: avast! Antivirus)

只要在建構時設定在本機上的服務名稱或者可以對ServiceName做定義;
就可以針對指定的Service做動作(啟動、停止等...)
sc1->ServiceName="指定的服務名稱";
當然, ServiceController有屬性可以知道此服務是否可以停止(CanStop)、暫停或者再啟動(CanPauseAndContinue)。
當指定的服務沒有存在執行的本機時, 可能會產生以下Exception.
(當CanStop為false時, 我們又執行Stop方法時, 會產生InvalidOperationException)

MSDN ServiceController類別:
http://msdn.microsoft.com/zh-tw/library/system.serviceprocess.servicecontroller(v=vs.80).aspx