| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Не могу поймать мышь |
| Автор: TeeT 27.12.2005, 11:12 | ||
Ловлю мышь:
выдает Can't install hook В чем проблема? |
| Автор: Earnest 27.12.2005, 11:36 | ||||||
Т.е. ты пытаешься установить глобальный хук. А тогда:
Т.е. процедура глобального хука должна быть в DLL (чтобы все процессы могли к ней подключиться) и третий параметр должен на эту DLL указывать. Может, в этом дело? Добавлено @ 11:40 Сомневаюсь, что тебе нужен именно глобальный хук. Если нет - поставь 3-й параметр в 0:
|
| Автор: TeeT 27.12.2005, 12:18 | ||
Earnest
Наскролько я понимаю программы экспортируют только функцию перехвата, так что не обязательно в DLL просто надо чтоб функция была экспортируемой Да и с NULL-ом не работает |
| Автор: Earnest 27.12.2005, 12:37 | ||
В общем, да. Но вопрос - может ли exe подключиться к чужому процессу как DLL - не представляю как это сделать. В приведенной цитате прямо написано - в библиотеке должна быть. Еще попробуй все-таки ThreadID передать, а не 0. Или тебе нужно именно глобальный хук? А еще я лично не сталкивалась с хуками в консольных приложениях. Вроде нигде не написано, что нельзя, но может в этом дело. |
| Автор: TeeT 28.12.2005, 12:40 | ||
Earnest
пробовал - НЕТ Да мне нужен глобальный хук, я пишу диплом на тему "Идентификация пользователя по клавиатурному почерку и оссобеностям работы с манипулятором "мышь"", в принципе мне и клавиатуру надо будет ловить |
| Автор: Fixin 28.12.2005, 22:54 |
| Хуки всегда должны быть б динамической библиотеке. Ты пробовал переместить процедуру хука в дллку? |
| Автор: KAdot 28.12.2005, 23:19 | ||
не обязательно. в NT можно сделать глобальный хук из экзе. для мыши, допустим, это будет WH_MOUSE_LL |