2009-07-11 19 views
8

làm thế nào để bắt đầu/dừng các dịch vụ sử dụng lệnh net stop trong C# ví dụlàm thế nào để bắt đầu/dừng các dịch vụ sử dụng lệnh net stop trong C#

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() 

tôi đã sử dụng quá trình lớp nhưng kết quả không

Trả lời

24

Thay vào đó sử dụng phương thức thô như Process.Start, bạn có thể sử dụng lớp ServiceController để bắt đầu/dừng một dịch vụ cụ thể trên máy cục bộ/từ xa.

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

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

// Start the service 
controller.Start(); 

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

Tôi hoàn toàn viết này cũng vậy, và nó không hiển thị "câu trả lời mới" điều trước khi tôi đăng. Làm tốt lắm! –

+0

cảm ơn vì phản hồi nhanh của bạn –

+1

Bạn cũng sẽ cần phải thêm tham chiếu vào System.ServiceProcess. –

3

Bạn cần phải vượt qua "/ c" chuyển sang cmd.exe

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

Bạn có thể muốn có một cái nhìn tại các lớp System.ServiceProcess.ServiceController, cung cấp một giao diện quản lý các dịch vụ của Windows.

Trong trường hợp này:

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

Cảm ơn, +1 cho bạn. Và btw, câu hỏi "Câu trả lời mới" thăm dò ý kiến ​​mỗi phút một lần, vì vậy nó có thể đã bỏ lỡ :) – Kirtan

Các vấn đề liên quan