Code snippet about some Windows service operation methods.
Install Service:
Public Static voidInstallservice (stringFilePathstringServiceName,string[] options) { Try { if(!isserviceexisted (ServiceName)) {IDictionary mysavedstate=NewHashtable (); Assemblyinstaller Myassemblyinstaller=NewAssemblyinstaller (); Myassemblyinstaller.usenewcontext=true; Myassemblyinstaller.path=filepath; Myassemblyinstaller.commandline=options; Myassemblyinstaller.install (mysavedstate); Myassemblyinstaller.commit (mysavedstate); Myassemblyinstaller.dispose (); } } Catch(Exception ex) {Throw NewException ("Install Service error\n"+Ex. Message); } }
Uninstall Service:
Public Static voidUninstallservice (stringFilePathstringServiceName,string[] options) { Try { if(isserviceexisted (serviceName)) {Assemblyinstaller Myassemblyinstaller=NewAssemblyinstaller (); Myassemblyinstaller.usenewcontext=true; Myassemblyinstaller.path=filepath; Myassemblyinstaller.commandline=options; Myassemblyinstaller.uninstall (NULL); Myassemblyinstaller.dispose (); } } Catch(Exception ex) {Throw NewException ("UnInstall Service error\n"+Ex. Message); } }
Verify Serive Exist or not:
Public Static BOOLIsserviceexisted (stringserviceName) {servicecontroller[] Services=servicecontroller.getservices (); foreach(ServiceController sinchservices) { if(S.servicename = =serviceName) { return true; } } return false; }
Start a Service:
Public Static voidStartService (stringserviceName) { if(isserviceexisted (ServiceName)) {Console.WriteLine ("Start Service: {0}", ServiceName); System.ServiceProcess.ServiceController Service=NewSystem.ServiceProcess.ServiceController (serviceName); if(Service. Status! = System.ServiceProcess.ServiceControllerStatus.Running &&service. Status!=System.ServiceProcess.ServiceControllerStatus.StartPending) {service. Start (); for(inti =0; I < -; i++) {service. Refresh (); System.Threading.Thread.Sleep ( +); if(Service. Status = =System.ServiceProcess.ServiceControllerStatus.Running) {CONSOLE.WR Iteline ("Service start successfully."); Break; } if(i = = -) {Console.WriteLine ("Start Service error\n"+serviceName); } } } }
Stop a Service:
Public Static voidStopService (stringserviceName) { if(isserviceexisted (ServiceName)) {Console.WriteLine ("Stop Service: {0}", ServiceName); System.ServiceProcess.ServiceController Service=NewSystem.ServiceProcess.ServiceController (serviceName); if(Service. Status = =System.ServiceProcess.ServiceControllerStatus.Running) {service. Stop (); for(inti =0; I < -; i++) {service. Refresh (); System.Threading.Thread.Sleep ( +); if(Service. Status = =System.ServiceProcess.ServiceControllerStatus.Stopped) {CONSOLE.WR Iteline ("Service stopped successfully."); Break; } if(i = = -) {Console.WriteLine ("Stop Service error\n"+serviceName); } } } } } }
Windows Service Operations