Пример #1
0
        private void cmdInstallService_Click(object sender, EventArgs e)
        {
            try
            {
                string nameService = txtServiceName.Text;

                if (WinService.Install(
                        AppDomain.CurrentDomain.BaseDirectory + AppDomain.CurrentDomain.FriendlyName + " -service",
                        nameService, nameService, "DodoServer",
                        ServiceProcess.Attributes.ServiceType.Default,
                        ServiceProcess.Attributes.ServiceAccessType.Start,
                        ServiceProcess.Attributes.ServiceStartType.AutoStart,
                        ServiceProcess.Attributes.ServiceErrorControl.Normal,
                        "LanmanWorkstation\0LanmanServer\0Netman"))
                {
                    MessageBox.Show("Instalación correcta. Reinicia el servidor para que se inicie el servicio.");
                }
                else
                {
                    MessageBox.Show("Error en la instalación");
                }
            }
            catch
            {
            }
        }
Пример #2
0
        public MainViewModel(IEventAggregator eventAggregator)
        {
            _eventAggregator = eventAggregator;
            _eventAggregator.GetEvent <ScriptInfoAddedEvent>().Subscribe(OnScriptInfoAdded);
            _eventAggregator.GetEvent <ScriptInfoChangedEvent>().Subscribe((scriptInfo) => ScriptInfo = scriptInfo);
            _eventAggregator.GetEvent <SettingsChangedEvent>().Subscribe((settings) => LoadSettings(settings));

            // Disable global hotkeys while user is changing hotkey
            _eventAggregator.GetEvent <SettingsWindowOpenEvent>().Subscribe(
                () => _winService.GlobalKeyDown -= OnGlobalHotkeyDown);
            _eventAggregator.GetEvent <SettingsWindowClosedEvent>().Subscribe(
                () => _winService.GlobalKeyDown += OnGlobalHotkeyDown);

            _settingsAccess = new SettingsAccess();
            _scriptAccess   = new ScriptAccess();

            _dialogService = new DialogService();
            _scriptService = new ScriptService();

            _winService = new WinService();
            _winService.GlobalKeyDown += OnGlobalHotkeyDown;
            _winService.GlobalKeyUp   += OnGlobalHotkeyUp;

            _automationService = new AutomationService();
            _automationService.RemoveFileModificationDetectedDialogOnCreated();

            _settings = _settingsAccess.LoadSettings();

            FormViewModel = new ScriptInfoViewModel(eventAggregator, SaveScriptInfoAction);

            LoadCommands();
            LoadSettings(_settings, firstTime: true);
            ScriptNames = _scriptAccess.GetScriptNames();
        }
Пример #3
0
        private void itmeServiceRun_Click(object sender, EventArgs e)
        {
            var service = WinService.GetWinServiceByPathName(GetSelectedFilePath());

            if (service != null && service.State == "Stopped")
            {
                service.Start();
            }
        }
Пример #4
0
        public MainWindow()
        {
            ServiceToDisplay = new ObservableCollection <WinService>();
            InitializeComponent();


            IObservable <WinService> currentList = WinService.CurrentList().ToObservable();

            currentList.Subscribe(service => ServiceToDisplay.Add(service));
        }
Пример #5
0
        private void Process_Exited(object sender, EventArgs e)
        {
            var selectedFile = (sender as Process).StartInfo.Environment["InstallService"];
            var winsvc       = WinService.GetWinServiceByPathName(selectedFile);

            if (winsvc != null)
            {
                winsvc.Start();
            }
        }
Пример #6
0
        private void itemServiceStop_Click(object sender, EventArgs e)
        {
            var service = WinService.GetWinServiceByPathName(GetSelectedFilePath());

            if (service != null && service.State == "Running")
            {
                service.ServiceStoped += Service_ServiceStoped;
                service.Stop();
            }
        }
Пример #7
0
        public static void Launch()
        {
            WinService service = new WinService();

            //如果是运行的Windows操作系统,则设置控制台标题
            if (ProgramUtils.IsRuningOnWindows())
            {
                Console.Title = ProgramUtils.GetProgramVersion();
            }

            service.Start(null);
            while (true)
            {
                Console.Write(">");
                var line = Console.ReadLine();
                switch (line)
                {
                case "":
                    break;

                case "help":
                    Console.WriteLine("help\t显示帮助");
                    Console.WriteLine("cls\t清空屏幕");
                    Console.WriteLine("exit\t退出程序");
                    break;

                case "cls":
                    Console.Clear();
                    break;

                case "exit":
                    if (ProgramUtils.IsRuningOnWindows())
                    {
                        Environment.Exit(0);
                    }
                    else
                    {
                        Process.GetCurrentProcess().Kill();
                    }
                    return;

                default:
                    Console.WriteLine("未知命令,键入help查看帮助");
                    break;
                }
                if (!ProgramUtils.IsRuningOnWindows())
                {
                    Console.WriteLine("Unknown command.you have to kill this process to terminal program.");
                    Thread.CurrentThread.Join();
                }
            }
        }
    private static void Main(string[] args)
    {
        var appMgr = new ApplicationManager();

        // pass --console and it runs as console!
        if (args.ToList().Contains("--console"))
        {
            appMgr.Start();
            Console.Read();      // blocking here until key press
            appMgr.Stop();
        }
        else
        {
            var winService = new WinService(appMgr);
            ServiceBase.Run(winService);
        }
    }
Пример #9
0
 private void cmdUninstallService_Click(object sender, EventArgs e)
 {
     try
     {
         string nameService = txtServiceName.Text;
         if (WinService.Uninstall(nameService))
         {
             MessageBox.Show("Desinstalación correcta");
         }
         else
         {
             MessageBox.Show("Error en la desinstalación");
         }
     }
     catch
     {
     }
 }
Пример #10
0
        public static void Launch()
        {
            WinService service = new WinService();
            var assembly = System.Reflection.Assembly.GetEntryAssembly();
            var versionAndTime = $"{new WinServiceInstaller().ServiceName} Ver:{assembly.GetName().Version}  Build:{AssemblyUtils.GetLinkerTime(assembly).ToString("F")}";
            //如果是运行的Windows操作系统,则设置控制台标题
            if (ProgramUtils.IsRuningOnWindows())
                Console.Title = versionAndTime;

            service.Start(null);
            while (true)
            {
                Console.Write(">");
                var line = Console.ReadLine();
                switch (line)
                {
                    case "":
                        break;
                    case "help":
                        Console.WriteLine("help\t显示帮助");
                        Console.WriteLine("cls\t清空屏幕");
                        Console.WriteLine("exit\t退出程序");
                        break;
                    case "cls":
                        Console.Clear();
                        break;
                    case "exit":
                        if (ProgramUtils.IsRuningOnWindows())
                            Environment.Exit(0);
                        else
                            Process.GetCurrentProcess().Kill();
                        return;
                    default:
                        Console.WriteLine("未知命令,键入help查看帮助");
                        break;
                }                
                if (!ProgramUtils.IsRuningOnWindows())
                {
                    Console.WriteLine("Unknown command.you have to kill this process to terminal program.");
                    Thread.CurrentThread.Join();
                }
            }
        }
Пример #11
0
        static void Main(string[] args)
        {
            log4net.Config.XmlConfigurator.Configure();

            //if (ServiceUtil.CheckIfsRunning(out CurrentProcess))
            //    Environment.Exit(-1);

            try
            {
                //ServiceUtil.Initialize(getpublicIp: false);

                AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
                WinService = new WinService();

                if (Environment.UserInteractive || (args?.Length > 0 && args.Contains("-Console")))
                {
                    ////---------------Publicação em ConsoleApplication;----------------/////
                    Console.CancelKeyPress += Console_CancelKeyPress;
                    Console.Title           = System.Reflection.Assembly.GetEntryAssembly().GetName().Name;
                    WinService.StartConsole(); //A bagaça começa aqui.
                    ReadCommands();
                }
                else
                {
                    ////---------------------Publicação em serviço;---------------------/////
                    ServiceBase.Run(WinService);
                }
                Environment.Exit(-1);
            }
            catch (Exception ex)
            {
                Log.Fatal($"Erro fatal no Program !", ex);
                Console.Write("Press any key");
                Console.ReadLine();
            }
        }
Пример #12
0
        protected override void OnExecute(Timer timer)
        {
            STrace.Trace(GetType().FullName, "Iniciando reinicio de servicios...");

            var te = new TimeElapsed();

            try
            {
                var winServices = WinService.GetLogictrackerServices();

                foreach (var service in winServices)
                {
                    STrace.Trace(GetType().FullName, "Servicio a reiniciar: " + service.ServiceName);
                    service.Refresh();

                    if (service.ServiceName.Contains("EDESUR") || service.ServiceName.Contains("5057"))
                    {
                        STrace.Trace(GetType().FullName, "Se saltea Servicio de EDESUR");
                        continue;
                    }

                    var detenido = false;
                    var iniciado = false;
                    var retry    = 0;
                    if (service.CanStop)
                    {
                        while (!detenido && retry < 5)
                        {
                            retry++;
                            STrace.Trace(GetType().FullName, "Deteniendo servicio: " + service.ServiceName);
                            service.Stop();
                            Thread.Sleep(5000);
                            service.Refresh();
                            if (service.Status == ServiceControllerStatus.Stopped)
                            {
                                STrace.Trace(GetType().FullName, "Servicio detenido: " + service.ServiceName);
                                detenido = true;
                                retry    = 0;
                                while (!iniciado && retry < 5)
                                {
                                    retry++;
                                    STrace.Trace(GetType().FullName, "Iniciando servicio: " + service.ServiceName);
                                    service.Start();
                                    Thread.Sleep(5000);
                                    service.Refresh();

                                    if (service.Status == ServiceControllerStatus.Running)
                                    {
                                        STrace.Trace(GetType().FullName, "Servicio iniciado: " + service.ServiceName);
                                        iniciado = true;
                                    }
                                }
                            }
                        }

                        service.Close();
                    }
                }

                var ts = te.getTimeElapsed().TotalSeconds;
                STrace.Trace(GetType().FullName, string.Format("Servicios reiniciados en {0} segundos.", ts));
            }
            catch (Exception ex)
            {
                STrace.Exception(GetType().FullName, ex);
            }
            finally
            {
                ClearData();
            }
        }
Пример #13
0
 public static void Launch()
 {
     WinService service = new WinService();
     System.ServiceProcess.ServiceBase.Run(service);
 }
Пример #14
0
        protected override void OnExecute(Timer timer)
        {
            STrace.Trace(GetType().FullName, "Iniciando WatchDog...");

            var serviceDescription = GetString("Service").Trim();

            if (serviceDescription.Equals(string.Empty))
            {
                return;
            }

            var te = new TimeElapsed();

            try
            {
                var winServices = WinService.GetServicesToWatch(serviceDescription);

                foreach (var service in winServices)
                {
                    STrace.Trace(GetType().FullName, "Servicio a verificar: " + service.ServiceName);
                    service.Refresh();

                    if (service.Status == ServiceControllerStatus.Stopped)
                    {
                        STrace.Trace(GetType().FullName, "Servicio detenido: " + service.ServiceName);

                        var iniciado = false;
                        var retry    = 0;
                        while (!iniciado && retry < 5)
                        {
                            retry++;
                            STrace.Trace(GetType().FullName, "Iniciando servicio: " + service.ServiceName);
                            service.Start();
                            Thread.Sleep(5000);
                            service.Refresh();

                            if (service.Status == ServiceControllerStatus.Running)
                            {
                                STrace.Trace(GetType().FullName, "Servicio iniciado: " + service.ServiceName);
                                iniciado = true;

                                var parametros = new[] { service.ServiceName };
                                SendMail(parametros);
                            }
                        }

                        service.Close();
                    }
                }

                var ts = te.getTimeElapsed().TotalSeconds;
                STrace.Trace(GetType().FullName, string.Format("Tarea finalizada en {0} segundos.", ts));
            }
            catch (Exception ex)
            {
                STrace.Exception(GetType().FullName, ex);
            }
            finally
            {
                ClearData();
            }
        }
Пример #15
0
        public static void Launch()
        {
            WinService service = new WinService();

            System.ServiceProcess.ServiceBase.Run(service);
        }