Обнаружение события закрытия окон - PullRequest
3 голосов
/ 04 июля 2010

У меня служба Windows, всегда работающая после запуска ПК, как мне определить использование .NET 3.5 или WMI, когда пользователь или какое-либо другое приложение / процесс запросило завершение работы или перезагрузку в Windows.

Я не хочу останавливать это, просто зарегистрируйте время и кто инициировал выключение (пользователь или процесс в порядке, на самом деле не нужно знать, какой процесс)

Спасибо

Ответы [ 3 ]

3 голосов
/ 04 июля 2010

Используйте событие Microsoft.Win32.SystemEvents.SessionEnding .

Однако обратите внимание, что вы находитесь в службе Windows, и это событие не будет срабатывать для вас, пока вы не создадитескрытая форма в вашем сервисе.Вы можете получить один из них бесплатно, включив в службе параметр «Взаимодействовать с рабочим столом».

1 голос
/ 04 июля 2010

Вы ищете событие SystemEvents.SessionEnding .

Происходит, когда пользователь пытается выйти из системы или завершить работу системы.

0 голосов
/ 04 июля 2010

Событие Win32.SessionEnded вызывается при завершении работы системы.Вы должны приложить к этому в своей программе.

...