2009-07-11 64 views
8

如何启动/停止在C# 使用net stop命令服务,例如如何启动/停止使用net stop命令服务

Dim pstart As New ProcessStartInfo 
Dim path As String = Environment.GetFolderPath(Environment.SpecialFolder.System) 
Dim p As New Process 
pstart.FileName = path + "\cmd.exe" 
pstart.UseShellExecute = False 
pstart.CreateNoWindow = True 
pstart.WorkingDirectory = path 
pstart.FileName = "cmd.exe" 
pstart.Arguments = " net start mysql" 
p.StartInfo = pstart 
p.Start() 

我已经使用进程类,但没有任何结果

回答

24

相反使用Process.Start这样的粗糙方法,您可以使用ServiceController类来启动/停止本地/远程机器上的特定服务。

using System.ServiceProcess; 
ServiceController controller = new ServiceController(); 

controller.MachineName = "."; 
controller.ServiceName = "mysql"; 

// Start the service 
controller.Start(); 

// Stop the service 
controller.Stop(); 
+0

我完全写到这,太,也没有表现出“新答案”的东西我张贴之前。做得好! – 2009-07-11 05:17:26

+0

感谢您的快速响应 – 2009-07-11 05:22:05

3

您需要将“/ C”开关传递给CMD.EXE

pstart.Arguments = "/c net start mysql" 
6

你可能想看看System.ServiceProcess.ServiceController类,它提供了一个管理界面,Windows的服务。

在这种情况下:

var mysql = new System.ServiceProcess.ServiceController("mysql"); 
if (mysql .Status == ServiceControllerStatus.Stopped) { 
    mysql.Start(); 
}