![]() |
|
![]() ![]() ![]() |
|
qweasd |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 28.10.2006 Репутация: нет Всего: нет |
Пытаюсь отловить сообщение таким способом:
Hook.dll:
проинициализировал так:
почему приложение получает сообщение только когда оно активно и не получает когда не активна хотя хукер срабатывает?? Это сообщение отредактировал(а) qweasd - 7.4.2009, 08:15 |
||||||
|
|||||||
qweasd |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 28.10.2006 Репутация: нет Всего: нет |
Если чего невнятно описал - спрашивайте!
Это сообщение отредактировал(а) qweasd - 7.4.2009, 09:35 |
|||
|
||||
ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
"Хукер срабатывает" это имеется в виду, что управление попадает на строчку
или то, что оно просто попадает в HookProc? А-то ведь если управление попадает в HookProc, это не значит что 100% выполнится строка с SendMessage... какое-то из условий может и не выполниться -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
qweasd |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 28.10.2006 Репутация: нет Всего: нет |
Я поставил перед этой строчкой MessageBox.... - и оно отображалось тогда когда надо.
Да и меседж отлавливался программой но только тогда когда диалог в фокусе! |
|||
|
||||
qweasd |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 28.10.2006 Репутация: нет Всего: нет |
Заметил еще такую особеность: добавил в хукдллку код вызова мессадж бокса при нажатии комбинации - так вот это окно отображается с использованием ресурсов того приложения которое в данный момент в фокусе - тоесть если я в фокус ставлю винамп у месаджбокса в заголовке окна стиот значек винампа и так со всеми окнами (((
Да и забыл указать дллку подключаю через либ файл! Это сообщение отредактировал(а) qweasd - 7.4.2009, 20:49 |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: нет Всего: 158 |
qweasd, твои глобальные переменные будут проинициализированны только в той "копии" dll, которая подгружается к процессу, вызывающему h_Init.
при подгрузке dll в другие процессы эти данные остаются 0. соответственно, либо располагай эти данные в shared-сегменте, либо делай для них именованный MMF, либо какой-нибудь FindWindow, итд итп. |
|||
|
||||
qweasd |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 28.10.2006 Репутация: нет Всего: нет |
Огромное спасибо dumb!
Когда чуть раньше написал такуюже дллку и загружал её в проект C# то все работалj и без shared-сегмента(интерестно почему?) Сделал так, и все заработало:
Это сообщение отредактировал(а) qweasd - 9.4.2009, 11:46 |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |