SystemEvents и выход из сна - PullRequest
       63

SystemEvents и выход из сна

2 голосов
/ 10 августа 2011

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

Мне нужно отслеживать, когда пользователь входит в систему, выходит из системы, когда он приостанавливает работу компьютера (выбор «stand by» в меню выключения) и когда компьютер выходит из спящего режима.

Я использую SystemEvents (в частности, PowerModeChanged и SessionSwitch события) для этого, и это в основном работает, за одним исключением:

Когда компьютер приостановлен, событие PowerModeChanged корректно вызывается в режиме Suspend.

Когда компьютер возобновляет работу, PowerModeChanged поднимается в режиме Resume. Пока все хорошо.

Сразу после этого происходит событие SessionSwitch с причиной SessionLock. Но когда я в итоге захожу после резюме, SessionUnlock.

нет

Такое поведение наблюдается в Windows XP, и мне нужно, чтобы оно работало корректно в XP, Vista и 7.

Есть ли способ, как получить эту разблокировку?

1 Ответ

3 голосов
/ 10 августа 2011

Оказывается, в одном из моих обработчиков было неперехваченное исключение По-видимому, это остановило последующие события от запуска.

...