How can I start and stop a windows service from a c# Form application?
ExecuteCommand(Int32) Method.
Add a reference to System.ServiceProcess.dll
. Then you can use the ServiceController class.
// Check whether the Alerter service is started. ServiceController sc = new ServiceController(); sc.ServiceName = "Alerter"; Console.WriteLine("The Alerter service status is currently set to {0}", sc.Status.ToString()); if (sc.Status == ServiceControllerStatus.Stopped) { // Start the service if the current status is stopped. Console.WriteLine("Starting the Alerter service..."); try { // Start the service, and wait until its status is "Running". sc.Start(); sc.WaitForStatus(ServiceControllerStatus.Running); // Display the current service status. Console.WriteLine("The Alerter service status is now set to {0}.", sc.Status.ToString()); } catch (InvalidOperationException) { Console.WriteLine("Could not start the Alerter service."); } }
First add a reference to the System.ServiceProcess assembly.
To start:
ServiceController service = new ServiceController("YourServiceName"); service.Start(); var timeout = new TimeSpan(0, 0, 5); // 5seconds service.WaitForStatus(ServiceControllerStatus.Running, timeout);
To stop:
ServiceController service = new ServiceController("YourServiceName"); service.Stop(); var timeout = new TimeSpan(0, 0, 5); // 5seconds service.WaitForStatus(ServiceControllerStatus.Stopped, timeout);
Both examples show how to wait until the service has reached a new status (running, stopped...etc.). The timeout parameter in WaitForStatus is optional.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With