using System.Collections.Generic; using System.ServiceProcess; using System.Text; using System.Reflection; namespace GeneratorService { static class Program { /// /// The main entry point for the application. /// static void Main(string[] args) { if (args.Length > 0) { if (args[0] == "-i") { ServiceInstaller si = new ServiceInstaller(); si.InstallService(Assembly.GetExecutingAssembly().Location, "AyaNovaGenerator", "AyaNova generator service"); } else if (args[0] == "-u") { //Attempt to stop the service first ServiceController sc = new ServiceController("AyaNovaGenerator"); if (sc.Status == ServiceControllerStatus.Running) if (sc.CanStop) sc.Stop(); sc.WaitForStatus(ServiceControllerStatus.Stopped, new System.TimeSpan(0,0,30));//wait max 30 seconds to stop then just proceed anyway sc.Dispose(); ServiceInstaller si = new ServiceInstaller(); si.UnInstallService("AyaNovaGenerator"); } } else { System.ServiceProcess.ServiceBase[] ServicesToRun; ServicesToRun = new System.ServiceProcess.ServiceBase[] { new AyGenSrv() }; System.ServiceProcess.ServiceBase.Run(ServicesToRun); } //ServiceBase[] ServicesToRun; //// More than one user Service may run within the same process. To add //// another service to this process, change the following line to //// create a second service object. For example, //// //// ServicesToRun = new ServiceBase[] {new Service1(), new MySecondUserService()}; //// //ServicesToRun = new ServiceBase[] { new AyGenSrv() }; //ServiceBase.Run(ServicesToRun); } } }