Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
explorer.exe и wh_keyboard_ll 21.07.09 20:39 Число просмотров: 3848 [Den, HandleX]
Автор: .7mm Статус: Незарегистрированный пользователь
|
Друзья, доброго всем здравия!
Делаю инжект своего кода в процесс explorer.exe. Создаю новый поток. Проблем нет, код отрабатывает. Пытаюсь установить глобальный хук клавиатуры WH_KEYBOARD_LL. Ошибок не возникает, но хук не ловит события от клавиатуры.
Нашел через поисковики, что возможно проблема с тем, что хук ставиться на другой десктоп. Хорошо, делаю следующее:
1. Сохраняю текущие значения: GetProcessWindowStation, GetThreadDesktop.
2. Меняю текущую станцию процесса на Winsta0: SetProcessWindowStation.
3. Открываю десктоп Default: OpenDesktopA (как вариант OpenInputDesktop).
4. Задаю потоку полученный десктоп (Winsta0\Default): SetThreadDesktop.
5. Ставлю хук: GetModuleHandle / SetWindowsHookEx.
6. Восстанавливаю значение станции процесса: SetProcessWindowStation
Все функции отрабатывают без ошибок. Реакции хука на нажатые кнопки я не наблюдаю :((
Кто сталкивался, подскажите в чём может быть дело?
P.S. Вопрос скорее в programming, но с нулевым рейтингом не могу создать там сообщение...
|
- explorer.exe и wh_keyboard_ll - .7mm 21.07.09 20:39 [3848]
|
|
|