Обнаружение события закрытия окон

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

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

Спасибо

3 ответа

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

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

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

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

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

Другие вопросы по тегам