110,539
社区成员
发帖
与我相关
我的任务
分享
// Print Spooler
ServiceController controller = new ServiceController("Spooler");
if (controller.Status == ServiceControllerStatus.Stopped)
{
controller.Start();
controller.Refresh();
}
System.ServiceProcess.ServiceController winService = null;
System.TimeSpan timeOut = new TimeSpan(0,1,0);//Set timeout
private void btnReStart_Click(object sender, System.EventArgs e)
{
try
{
InitilizeServiceController();
if (winService.Status == System.ServiceProcess.ServiceControllerStatus.Running)
{
winService.Stop();
winService.WaitForStatus(System.ServiceProcess.ServiceControllerStatus.Stopped,timeOut);//wait service change to stopped status
this.label1.Text = "service status now is :"+winService.Status;
this.label1.Update();
System.Threading.Thread.Sleep(15000);
winService.Start();
winService.WaitForStatus(System.ServiceProcess.ServiceControllerStatus.StartPending,timeOut);//wait service change to start pending status
this.label1.Text = "service status now is :"+winService.Status;
this.label1.Update();
winService.WaitForStatus(System.ServiceProcess.ServiceControllerStatus.Running,timeOut);//wait service change to running status
this.label1.Text = "service status now is :"+winService.Status;
this.label1.Update();
}
else if (winService.Status == System.ServiceProcess.ServiceControllerStatus.Stopped)
{
this.label1.Text = "service status now is :"+winService.Status+",please click start button";
this.label1.Update();
}
else
{
this.label1.Text = "service status now is :"+winService.Status;
this.label1.Update();
}
}
catch(Exception ex)
{
this.label1.Text = ex.Message;
this.label1.Update();
}
}
/// <summary>
/// Initilize Service Controller
/// </summary>
private void InitilizeServiceController()
{
if (this.txtServiceName.Text.Trim().Length == 0)
{
throw new Exception("please enter service name");
}
string serviceName = this.txtServiceName.Text;
winService = new System.ServiceProcess.ServiceController(serviceName);//Get service by name
}