Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Win API


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / WinAPI

Выпуск № 510
от 12.02.2008, 00:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 371, Экспертов: 31
В номере:Вопросов: 1, Ответов: 2

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 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


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.70 от 17.01.2008
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное