Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2010, 16:46   #1
RFbager
Пользователь
 
Регистрация: 30.10.2010
Сообщений: 14
Вопрос Посылка пользовательских сообщений в чужое приложение

Всем доброго времени суток.

При помощи утилиты Spy++ я отлавливаю все посылаемые в приложение сообщения.При клике мыши в определенном участке окна приложения шлется 2 сообщения:нажатие кнопки мыши и собственно пользовательское.

Если послать сообщение о нажатии левой кнопки мыши по тем же координатам,то приложение получает 2 вышеописанных сообщения.Второе(пользовательское) сообщение генерируется автоматически и выполняет определенные действия.При попытке послать ТОЛЬКО пользовательское сообщение(без клика мыши) никаких действий не происходит,тоесть сообщение попросту игнорируется.Пробовал и SendMessage, и PostMessage.

Еще один вопрос конечно немного не в тему,но все же.Где в памяти приложения хранится обработчик пользовательских сообщений и можно ли его как-то вычислить.Сразу оговорюсь,что приложение защищено от инжекта и при малейшем подозрении просто падает с критической ошибкой.Буду крайне благодарен за ответ.
RFbager вне форума Ответить с цитированием
Старый 21.12.2010, 17:23   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Где в памяти приложения хранится обработчик пользовательских сообщений и можно ли его как-то вычислить.
обработчик вообще один WndProc оконного класса.
Цитата:
При помощи утилиты Spy++ я отлавливаю все посылаемые в приложение сообщения.При клике мыши в определенном участке окна приложения шлется 2 сообщения:нажатие кнопки мыши и собственно пользовательское.
надеюсь тип второго сообщения не R?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.12.2010, 01:49   #3
RFbager
Пользователь
 
Регистрация: 30.10.2010
Сообщений: 14
По умолчанию

Здравствуйте,Пепел Феникса.Тип второго сообщения P.
За обработчик спасибо,поправили и все же как его найти можно в памяти?
RFbager вне форума Ответить с цитированием
Старый 03.01.2011, 23:39   #4
yuran666666
Форумчанин
 
Аватар для yuran666666
 
Регистрация: 23.04.2009
Сообщений: 346
По умолчанию

>>При помощи утилиты Spy++ я отлавливаю все посылаемые в приложение
>>Сразу оговорюсь,что приложение защищено от инжекта и при малейшем подозрении просто падает с критической ошибкой.

эти два предложения-взаимоисключающие параграфы, ибо spy++ инжектит свою длл в исследуемый процесс (а вы как думали? ) так что почитайте маненька про стандартные виндовые хуки и буит вам счастий
Нет, ну правда..
yuran666666 вне форума Ответить с цитированием
Старый 11.01.2011, 09:54   #5
TDR
 
Регистрация: 05.01.2011
Сообщений: 6
По умолчанию

Вопрос по данной теме.

Два приложения обмениваются между собой сообщениями. Одно отправляет SendMessage, а второе обрабатывает TWMCopyData (получает текст из CopyDataStruct).

Вопрос: может ли получатель узнать информацию об окне-отправителе? Конкретно интересует имя класса окна-отправителя.
TDR вне форума Ответить с цитированием
Старый 11.01.2011, 13:04   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а вы wParam заполняете как положено?
если да то его и используйте.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.01.2011, 13:16   #7
TDR
 
Регистрация: 05.01.2011
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
а вы wParam заполняете как положено?
если да то его и используйте.
В том-то и дело, что туда и "кладу"... ))
Просто вдруг подумал, что может есть более стандартизированные способы получить информацию об отправителе, чем пересылать излишние данные о нем. Но если нет, так нет.
TDR вне форума Ответить с цитированием
Старый 11.01.2011, 17:43   #8
yuran666666
Форумчанин
 
Аватар для yuran666666
 
Регистрация: 23.04.2009
Сообщений: 346
По умолчанию

для TDR:
Конечно - в lParam будет само сообщение, а в wParam - должен быть хендл окна, отправившего сообщение иначе у приложения отправителя SendMessage не вернется. Далее просто используйте GetWindowText для того чтобы считать заголовок окна хендл которого у вас уже есть
Нет, ну правда..
yuran666666 вне форума Ответить с цитированием
Старый 11.01.2011, 20:51   #9
TDR
 
Регистрация: 05.01.2011
Сообщений: 6
По умолчанию

Я просто упустил как-то из виду функцию GetClassName - теперь все ок.
Благодарю за советы.
TDR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чужое приложение Assemblerru Win Api 30 18.08.2010 22:23
Чужое приложение [Опера] auffasst Общие вопросы Delphi 3 27.06.2010 17:53
Закрыть чужое приложение Михаил Юрьевич Общие вопросы Delphi 3 28.03.2009 21:26
Посылка сообщений Windows другой программе shurik_7866 Win Api 1 23.10.2008 16:25
чужое приложение Electrod Win Api 12 27.01.2008 17:04