sopy7 Ответов: 2

Как подключить сервис к средству просмотра событий


У меня есть exe-файл и служба windows, я буду постоянно поддерживать работу службы windows. Но я хочу убедиться,что служба запущена, если запущен exe. Итак, я сделаю запись в Event viewer о том, что приложение запущено, после этой записи я хочу запустить службу windows.

Что я уже пробовал:

Я попробовал ниже код, чтобы запустить другой exe-файл. Но я хочу запустить службу windows
private static void CreateEventScheduler()
        {
            using (TaskService ts = new TaskService())
            {
                TaskDefinition td = ts.NewTask();
                td.RegistrationInfo.Description = "Auto - Start Service";
                EventTrigger eTrigger = (EventTrigger)td.Triggers.Add(new EventTrigger());
                eTrigger.SetBasic("Application", "TestApplication", 12345);
                eTrigger.Enabled = true;
                //eTrigger.ExecutionTimeLimit = TimeSpan.Zero;
                td.Actions.Add(@"D:\Application\Demo Applications\Console\AppForScheduler\AppForScheduler\bin\Debug\AppForScheduler.exe");
                // Register the task in the root folder
                ts.RootFolder.RegisterTaskDefinition(TaskName, td);
            }
        }

2 Ответов

Рейтинг:
0

Graeme_Grant

Прочтите эту статью: Процесс построения событий Windows служба журнала Watcher, чтобы экспортировать записи журнала событий, как RSS-канал[^]

Вы обнаружите, что в нем есть образец кода, который вы ищете.


Рейтинг:
0

sopy7

Ну, я создал планировщик задач вручную, этот планировщик сработал, когда Windows приложение записывает сообщение о событии системы. Т. е. В разделе курок планировщик, выберите "О происходящем" от "Приступайте к выполнению задания"выпадающее меню, Добавить имя источника, добавить EventID. При регистрации сообщения через приложение Source и EventID должны быть такими же, как указано в планировщике задач.

В разделе действие выберите "Запустить программу"вариант, в программу/скрипт добавить текстовое поле "%windir%/system32/sc.exe" в "Добавить аргумент"текстовое поле Добавить пуск "имя службы Windows".

После создания задачи щелкните правой кнопкой мыши task> & gt; export, это создаст xml-файл.

Добавленный этот XML-файл в Inno SETUP как часть пакета развертывания, он будет регистрировать событие на компьютере всякий раз, когда приложение будет установлено.

Также, добавил журнал событий приложений Windows вызова метода onStart.

Таким образом, всякий раз, когда приложение запускается, запускается событие OnStart, журнал будет зарегистрирован в журнале системных событий с определенным идентификатором и источником. Как только журнал будет введен, будет запущен соответствующий планировщик, который запустит службу Windows

Ниже приведен код c# для сообщения loggin для просмотра событий через событие OnStart

//Add reference to System.Diagnostics namespace
protected override void OnStartup(StartupEventArgs e)
{
  const string Source = "TestWindowsApp", Log = "Application", Event = "TestWindowsApp       Application Started";
  const int EventID = 16317;

if (!EventLog.SourceExists(Source))
   EventLog.CreateEventSource(Source, Log);
   EventLog.WriteEntry(Source, String.Format("{0}: {1}", Event, System.DateTime.Now),     EventLogEntryType.Information, EventID);
}