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