public static void EnableTheService(string serviceName, string computername, serviceAction serAction) { switch (serAction) { case serviceAction.run: Process p = new Process(); p.StartInfo.FileName = "cmd.exe"; p.StartInfo.Arguments = @"/c sc \\" + computername + " config " + serviceName + " start= demand"; p.StartInfo.CreateNoWindow = true; p.StartInfo.UseShellExecute = false; p.Start(); p.WaitForExit(); break; case serviceAction.stop: Process p1 = new Process(); p1.StartInfo.FileName = "cmd.exe"; p1.StartInfo.Arguments = @"/c sc \\" + computername + " config " + serviceName + " start= disabled"; p1.StartInfo.CreateNoWindow = true; p1.StartInfo.UseShellExecute = false; p1.Start(); p1.WaitForExit(); break; default: throw new InvalidEnumArgumentException("Invalid parameter in serviceAction enum"); } }
public static void runOrStopService(string serviceName, string computer, serviceAction action) { Console.WriteLine("==========Service Manipulation=========="); switch (action) { case serviceAction.run: EnableTheService(serviceName, computer, action); using (ServiceController sc = new ServiceController(serviceName, computer)) if (sc.Status != ServiceControllerStatus.Running) { Console.WriteLine("Start sluzby {0}", sc.DisplayName); sc.Start(); Console.WriteLine("Cekani na status: Running"); sc.WaitForStatus(ServiceControllerStatus.Running, TimeSpan.FromSeconds(60)); if (sc.Status != ServiceControllerStatus.Running) { MessageBox.Show("Sluzbu " + sc.DisplayName + " se nepodarilo spustit", "", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { Console.WriteLine("Status sluzby {0}: {1}", sc.DisplayName, sc.Status); } } else { Console.WriteLine("Status sluzby {0}: {1}", sc.DisplayName, sc.Status); } break; case serviceAction.stop: EnableTheService(serviceName, computer, action); using (ServiceController sc = new ServiceController(serviceName, computer)) if (sc.Status != ServiceControllerStatus.Stopped) { Console.WriteLine("Zastavovani sluzby {0}", sc.DisplayName); sc.Stop(); Console.WriteLine("Cekani na status: Stopped"); sc.WaitForStatus(ServiceControllerStatus.Stopped, TimeSpan.FromSeconds(60)); if (sc.Status != ServiceControllerStatus.Stopped) { MessageBox.Show("Sluzbu " + sc.DisplayName + " se nepodarilo zastavit", "", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { Console.WriteLine("Status sluzby {0}: {1}", sc.DisplayName, sc.Status); } } break; default: throw new InvalidEnumArgumentException("Invalid parameter in serviceAction enum"); } Console.WriteLine("========================================"); }