2009-07-11 13 views
8

comment faire démarrer/arrêter les services en utilisant la commande net stop en C# par exemplecomment faire démarrer/arrêter les services en utilisant la commande 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() 

j'ai utilisé la classe de processus, mais aucun résultat

Répondre

24

lieu Si vous utilisez une méthode brute telle que Process.Start, vous pouvez utiliser la classe ServiceController pour démarrer/arrêter un service particulier sur une machine locale/distante.

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

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

// Start the service 
controller.Start(); 

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

Je totalement écrit cela aussi, et il ne montre pas la chose « nouvelles réponses » avant posté. Bon travail! –

+0

merci de votre réponse rapide –

+1

Vous devrez également ajouter une référence à System.ServiceProcess. –

3

Vous devez passer le "/ c" passer à cmd.exe

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

Vous pouvez jeter un oeil à la classe System.ServiceProcess.ServiceController, qui fournit une interface gérée aux services de Windows.

Dans ce cas:

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

Merci, +1 à vous aussi. Et btw, la chose "nouvelles réponses" interroge chaque minute, donc il aurait pu manquer :) – Kirtan

Questions connexes