使用c启动和停止服务#
问题描述:
我想停止服务,然后在服务完成停止后重新启动服务。 我正在使用c#并生成了以下代码。问题是:如果服务已启动,它将停止服务,但不会重新启动服务。如果服务在下次调用该函数时停止,它将只启动该服务。使用c启动和停止服务#
string strCmdText1, strCmdText2;
strCmdText1 = "NET STOP \"AdmnService\"";
strCmdText2 = "NET START \"AdmnService\"";
System.Diagnostics.Process.Start("CMD.exe", "/C" + strCmdText1);
System.Diagnostics.Process.Start("CMD.exe", "/C" + strCmdText2);
有没有办法将命令连接成一行?我不确定/ C的功能,但可能还有其他一些开关执行两个命令。
答
您可以使用ServiceController(在System.ServiceProcess .NET 4的组件)。这里有一个简单的控制台应用程序显示如何:
ServiceController controller = new ServiceController("AdmnService");
controller.Stop();
controller.WaitForStatus(ServiceControllerStatus.Stopped);
Console.WriteLine("Service status: " + controller.Status);
controller.Start();
Console.WriteLine("Service status: " + controller.Status);
+0
这工作得很好! thnks – crh225 2013-02-26 20:14:22
你可以创建一个批处理文件来执行2个命令,然后使用c#来启动批处理文件吗? – Matt 2013-02-26 19:36:33
正是我在想什么。 – RandomUs1r 2013-02-26 19:36:59