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 { } }
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(); }
private void itmeServiceRun_Click(object sender, EventArgs e) { var service = WinService.GetWinServiceByPathName(GetSelectedFilePath()); if (service != null && service.State == "Stopped") { service.Start(); } }
public MainWindow() { ServiceToDisplay = new ObservableCollection <WinService>(); InitializeComponent(); IObservable <WinService> currentList = WinService.CurrentList().ToObservable(); currentList.Subscribe(service => ServiceToDisplay.Add(service)); }
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(); } }
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(); } }
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); } }
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 { } }
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(); } } }
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(); } }
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(); } }
public static void Launch() { WinService service = new WinService(); System.ServiceProcess.ServiceBase.Run(service); }
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(); } }