Приостановите завершение работы системы на некоторое время в C # / VB.net - PullRequest
0 голосов
/ 11 ноября 2009

Я создал службу Windows в C # .net, и теперь я хочу, чтобы она предупредила меня, если она отключится. Для этого я использую события Dispose / Unload, но теперь я хочу, чтобы сервисы останавливались из-за процесса выключения системы, он предупредит меня.

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

Дальнейшее улучшение, если я могу запустить его без надлежащей загрузки системы, например, как сканирование при загрузке avast.

1 Ответ

1 голос
/ 20 февраля 2010

Я знаю, что мой ответ слишком поздно, но я просто вижу этот вопрос прямо сейчас:)

Вы можете обработать системное событие:

Microsoft.Win32.SystemEvents.SessionEnded

Это событие возникает, когда вы выключаете систему или выходите из нее. Обращайтесь с этим, чтобы выполнить любую логику, в которой вы нуждаетесь.

Пример:

@ OnStart () вашего сервиса добавьте следующую строку кода:

Microsoft.Win32.SystemEvents.SessionEnded += new Microsoft.Win32.SessionEndedEventHandler(SystemEvents_SessionEnded);

затем добавьте обработчик события:

void SystemEvents_SessionEnded(object sender, Microsoft.Win32.SessionEndedEventArgs e)
        {
            //put you logic here
        }
...