2009-07-11 23 views
8

¿cómo iniciar/detener servicios utilizando comando net stop en C# por ejemplo¿cómo iniciar/detener servicios utilizando comando net stop en 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() 

he utilizado la clase proceso, pero sin resultado

Respuesta

24

lugar de usar un método crudo como Process.Start, puede usar la clase ServiceController para iniciar/detener un servicio en particular en una máquina local/remota.

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

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

// Start the service 
controller.Start(); 

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

estoy totalmente escribió esto, también, y no mostró la cosa "nuevas respuestas" antes de que he publicado. ¡Buen trabajo! –

+0

gracias por su rápida respuesta –

+1

También deberá agregar una referencia a System.ServiceProcess. –

3

lo necesario para aprobar el "/ c" para cmd.exe

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

Es posible que desee echar un vistazo a la clase System.ServiceProcess.ServiceController, que proporciona una interfaz administrada a los servicios de Windows'.

En este caso:

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

Gracias, +1 a usted también. Y, por cierto, la cosa de "Nuevas respuestas" sondea cada minuto, por lo que podría haberse perdido :) – Kirtan

Cuestiones relacionadas