通過C#來開啟、關閉、重啟Windows服務


通過C#開啟服務需要這個C#程序有相應權限,比如服務的賬戶是Local System的就必須以管理員權限運行C#程序才能開啟或關閉。

這里只寫重啟的方式(就是先關閉,后開啟):

// SecurityOfElecService是服務的名字,即ProjectInstaller中serviceInstaller中的ServiceName的值。這個值必須正確,否則下面的serv.CanStop等方法會報異常。

// 可以通過var servs = ServiceController.GetServices();來獲取本機上所有存在的服務(包括正在運行或已關閉的),然后遍歷它進行逐一判斷即可知道是否存在某Windows服務。

ServiceController serv = new ServiceController("SecurityOfElecService");
if (serv.CanStop)
{
// 如果權限不夠是不能Stop()的。
serv.Stop();

// 這句話如果沒有對該服務的后續操作可以不要,C#程序只是以權限向操作系統發出關閉某服務的消息而已,真正關閉該服務的是操作系統而非此C#程序(下面的Start的也一樣)
serv.WaitForStatus(ServiceControllerStatus.Stopped);
}

if (!serv.CanStop) // 不能停止,反過來就是可以開啟
{
serv.Start();
serv.WaitForStatus(ServiceControllerStatus.Running);
}

// 釋放對該服務的控制權及釋放相應資源。
serv.Close();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM