![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| User008 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 306 Регистрация: 9.9.2009 Репутация: нет Всего: 1 |
Ожидал, что childframe будет перехватывать сообщения мыши всех представлений и вызывать MouseProc. Но ничего не перехватывается. Что сделано неправильно? |
|||
|
||||
| icecrashldr |
|
|||
![]() Developer ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 5.7.2010 Репутация: нет Всего: нет |
Документация не прочитал, не в том месте вопрос задал, не прогугглился ? Этого мало? http://msdn.microsoft.com/en-us/library/ms...28VS.85%29.aspx |
|||
|
||||
| User008 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 306 Регистрация: 9.9.2009 Репутация: нет Всего: 1 |
Тогда прошу показать, где в мсдн или гугле расположен ответ на мой вопрос, я не нашёл. Это сообщение отредактировал(а) User008 - 28.10.2010, 21:53 |
|||
|
||||
| icecrashldr |
|
|||
![]() Developer ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 5.7.2010 Репутация: нет Всего: нет |
User008,
MSDN
А вы пытаетесь передать туды свой HANDLE exe файла... Ладно опиши(есть не много времени): - При установки hook's вы должны иметь привелигии администратора. Одним из главных вопросов, на который нужно ответить, это в каком контексте будет выполнен callback который передается в SetWindowsHookEx. Он будет работать в контексте процесса, который вызвал событие, которое перелавливает SetWindowsHookEx. Это связано с несколькими проблемами: - Планировка задач(процессов, потоком) , так как передать сообщения в процесс который установил SetWindowsHookEx будет проблемотично .. - Память, окружения - придется делать сериализоватор\десириализатор .. - Привелигии - Если процесс генерирует сообщения с понижиными привелигиями то он будет отправлять сообщения процессу с повышиными привилегиями , что нарушит защиту .. Вам нужно создать динамическую библиотеку (DLL) которая должна содержать это callback. Ссылки на примеры http://stackoverflow.com/questions/454477/...etwindowshookex http://stackoverflow.com/questions/820804/...and-wh-keyboard http://www.codeproject.com/KB/system/hooksys.aspx http://www.codeproject.com/KB/DLL/keyboardhook.aspx |
|||
|
||||
| User008 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 306 Регистрация: 9.9.2009 Репутация: нет Всего: 1 |
Всё оказалось намного проще, третий параметр должен быть 0, а четвёртый GetCurrentThreadID(). DLL и привилегии не нужны. Добавлено @ 15:22 Вообще зря я SetWindowsHookEx взял. Оказывается мне нужен был SetWindowsHook. Это сообщение отредактировал(а) User008 - 29.10.2010, 15:22 |
|||
|
||||
| icecrashldr |
|
|||
![]() Developer ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 5.7.2010 Репутация: нет Всего: нет |
User008, Это на Windows XP привилегии не нужны ..
А Где вы нашли SetWindowHook? http://msdn.microsoft.com/en-us/library/ff...v=VS.85%29.aspx Это все функты от Microsoft Hook Functions * CallMsgFilter * CallNextHookEx * CallWndProc * CallWndRetProc * CBTProc * DebugProc * ForegroundIdleProc * GetMsgProc * JournalPlaybackProc * JournalRecordProc * KeyboardProc * LowLevelKeyboardProc * LowLevelMouseProc * MessageProc * MouseProc * SetWindowsHookEx * ShellProc * SysMsgProc * UnhookWindowsHookEx |
|||
|
||||
| User008 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 306 Регистрация: 9.9.2009 Репутация: нет Всего: 1 |
||||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |