1、引用System.ServiceProcess.dll
2、引用System.ServiceProcess命名空间
using System.ServiceProcess;
3、.声明ServiceController变量
private ServiceController _controller;
4、假设服务名为ServicesName, 编写开始服务,停止服务,重启服务的代码如下
A:开始服务
1 private void StartService() 2 { 3 this ._controller = new ServiceController( " ServicesName " ); 4 try 5 { 6 if ((_controller.Status.Equals(ServiceControllerStatus.Stopped)) || 7 (_controller.Status.Equals(ServiceControllerStatus.StopPending))) 8 { 9 _controller.Start(); 10 } 11 else 12 { 13 _controller.Stop(); 14 } 15 } 16 finally 17 { 18 this ._controller.Refresh(); 19 this ._controller.Close(); 20 } 21 }
B:停止服务
1 private void StopService() 2 { 3 this ._controller = new ServiceController( " ServicesName " ); 4 try 5 { 6 this ._controller.Stop(); 7 this ._controller.WaitForStatus(ServiceControllerStatus.Stopped); 8 } 9 finally 10 { 11 this ._controller.Refresh(); 12 this ._controller.Close(); 13 } 14 }
C:重启服务
1 private void ResetService() 2 { 3 this ._controller = new ServiceController( " ServicesName " ); 4 try 5 { 6 this ._controller.Stop(); 7 this ._controller.WaitForStatus(ServiceControllerStatus.Stopped); 8 this ._controller.Start(); 9 this ._controller.WaitForStatus(ServiceControllerStatus.Running); 10 } 11 finally 12 { 13 this ._controller.Refresh(); 14 this ._controller.Close(); 15 } 16 }
D:若已停止则启动反则停止
1 private void SStopService() 2 { 3 this ._controller = new ServiceController( " ServicesName " ); 4 try 5 { 6 this ._controller.Stop(); 7 this ._controller.WaitForStatus(ServiceControllerStatus.Stopped); 8 this ._controller.Start(); 9 this ._controller.WaitForStatus(ServiceControllerStatus.Running); 10 } 11 finally 12 { 13 this ._controller.Refresh(); 14 this ._controller.Close(); 15 } 16 17 }