SystemEvents и выход из сна
Представьте, что я создавал приложение, которое измеряло, как долго определенный пользователь вошел в систему на компьютере (само приложение, которое я пишу, отличается, но это не имеет значения).
Мне нужно отслеживать, когда пользователь входит в систему, выходит из системы, когда он приостанавливает работу компьютера ("режим ожидания" в меню "Выключение") и когда компьютер выходит из спящего режима.
я использую SystemEvents
(В частности, PowerModeChanged
а также SessionSwitch
события) для этого, и это в основном работает, за одним исключением:
Когда компьютер приостановлен, PowerModeChanged
событие корректно генерируется с помощью режима Suspend
,
Когда компьютер возобновляет работу, PowerModeChanged
поднимается с режимом Resume
, Все идет нормально.
Сразу после этого SessionSwitch
событие вызвано причиной SessionLock
, Но когда я в конечном итоге войти в систему после резюме, нет SessionUnlock
,
Такое поведение происходит в Windows XP, и мне нужно, чтобы это работало корректно в XP, Vista и 7.
Есть ли способ, как получить эту разблокировку?
1 ответ
Оказывается, в одном из моих обработчиков было неисследованное исключение. По-видимому, это остановило последующие события от стрельбы.