Вопрос № 122019: Уважаемые эксперты, можно ли отследить блокировку/разблокировку компьютера(hotkey: windows+L). Может существует подходящее windows message или что-то еще, что помогло бы в этом?
заранее, спасибо!...
Вопрос № 122.019
Уважаемые эксперты, можно ли отследить блокировку/разблокировку компьютера(hotkey: windows+L). Может существует подходящее windows message или что-то еще, что помогло бы в этом?
заранее, спасибо!
Отправлен: 06.02.2008, 23:41
Вопрос задал: Mauve (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Aristos
Здравствуйте, Mauve!
Существует сообщение WM_WTSSESSION_CHANGE, которое может получать окно, при изменении состояния сессии. Если значение параметра сообщения wParam равно WTS_SESSION_LOCK (WTS_SESSION_UNLOCK), то произошла блокировка (разблокировка) сессии. Идентификатор сессии передается через параметр сообщения lParam. C помощью функции WTSRegisterSessionNotification() можно установить какие о состоянии каких сессий будут приходить уведомления.
ps: блокировать экран рабочей станции можно с помощью функции LockWorkStation(). Для проверки, заблокирована ли станция можно попытаться проверить окно на видимость.
--------- нет ничего невозможного
Ответ отправил: Aristos (статус: 9-ый класс)
Ответ отправлен: 07.02.2008, 00:14 Оценка за ответ: 5 Комментарий оценки: Большое спасибо, очень помогли!
Отвечает: Сандров Алекс
Здравствуйте, Mauve!
Я бы сделал это с помощью SetWindowHookEx с хуком типа WH_KEYBOARD_LL
Потом делал бы так: если нажата Win-кнопка, я бы взодил флаг об этом, не пропуская само сообщение дальше(как будто она не была нажата, return TRUE из функции хука).
Потом при нажатии кнопки на клавиатуре, если флаг взведён, отслеживал, не нажата ли кнопка L.
Если нет, посылал бы нажатие кнопки Win в систему (как будто она была нажата), потому что вначале мы её задержали. А так же при отпускании Win-а, сбрасывал флаг и пропускал нажатие кнопки дальше.
Так же надо будет аккуратно следить за отжатиями кнопок. Если не пропускаете нажатия, так же надо не пропускать отжатия.
В приложении хук, для примера, который не пропускает простое нажатие кнопки Win, но пропускает хот-кеи с её участием, если немного переделать, получится то, что нужно
Приложение:
Ответ отправил: Сандров Алекс (статус: 3-ий класс)
Ответ отправлен: 07.02.2008, 06:12 Оценка за ответ: 4