下面的示例使用 ServiceController 类检查 Telnet 服务的当前状态。如果该服务已停止,此示例将启动该服务。如果该服务正在运行,此示例将停止该服务。
/// <summary>
/// 开启或关闭某个服务
/// </summary>
/// <param name="serviceName">服务名</param>
/// <param name="serviceFlag">服务状态 false关 true开</param>
public void StartService(string serviceName,bool serviceFlag)
{
using (System.ServiceProcess.ServiceController sc = new System.ServiceProcess.ServiceController())
{
sc.ServiceName = serviceName;
TimeSpan timeout = new TimeSpan(0,0,15);
//开
if (serviceFlag)
{
if (sc.Status != ServiceControllerStatus.Running)
{
sc.Start();
sc.WaitForStatus(ServiceControllerStatus.Running, timeout);
}
}
else
{
if (sc.Status != ServiceControllerStatus.Stopped)
{
sc.Stop();
sc.WaitForStatus(ServiceControllerStatus.Stopped, timeout);
}
}
}
}