Сейчас на форуме: (+2 невидимых)

 eXeL@B —› Оффтоп —› SendMessage на нажатие кнопки
Посл.ответ Сообщение


Ранг: 156.2 (ветеран), 2thx
Активность: 0.090
Статус: Участник

Создано: 10 февраля 2011 00:30
· Личное сообщение · #1

Возникла такая проблема.
Есть программа, в которой обработка нажатия кнопки сделана нестандартно и
стандартное сообщение из своей программы в ту программу SendMessage(hwnd,BM_CLICK,0,0)
не работает.
В программе это кнопка под названием "Время!". Активируется после нажатия кнопки "Новый вопрос".
С помощью spy++ отлавливаются сообщения, но при попытке их отправить программе, ничего не происходит.
возможно, кто-то сможет помочь?
Программа и исходник ниже.
В исходник НЕ желательно менять, разве что посмотреть, как сделана обработка кнопки.

--> программа<--
--> исходник <--




Ранг: 164.6 (ветеран), 65thx
Активность: 0.120
Статус: Участник
Волшебник

Создано: 10 февраля 2011 01:01
· Личное сообщение · #2

Code:
  1. SendMessage(hMainWnd, CM_TIMESTART /*WM_USER + 1*/, 0, 0);


-----
Следуй за белым кроликом





Ранг: 156.2 (ветеран), 2thx
Активность: 0.090
Статус: Участник

Создано: 10 февраля 2011 01:43
· Личное сообщение · #3

Видимо, надо ее что-то дописать. Окно просто мигает(становится активным и сразу же неактивным, т.е не в фокусе) от такого сообщения. "Время" не срабатывает.




Ранг: 164.6 (ветеран), 65thx
Активность: 0.120
Статус: Участник
Волшебник

Создано: 10 февраля 2011 10:08
· Личное сообщение · #4

Проверял так: загонял сырцы в Delphi, ставил точку на обработчике; извне посылал сообщение и успешно вываливался на точке. Откомпилированный код не смотрел, возможно там изменён номер сообщения...

-----
Следуй за белым кроликом





Ранг: 156.2 (ветеран), 2thx
Активность: 0.090
Статус: Участник

Создано: 10 февраля 2011 12:51
· Личное сообщение · #5

Вот в откомпилированном spy++ ловит много сообщений wm_user+что-то, да еще и с разными lparam/wparam. Но почему-то ни одно не срабатывает.



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 10 февраля 2011 14:21 · Поправил: tihiy_grom
· Личное сообщение · #6

неужели сложно самому посмотреть исходник?
в крайнем случае пробуй послать такие сообщения
Code:
  1. postmessage(хэндл_кнопки, WM_SETFOCUS, 0, 0);
  2. postmessage(хэндл_кнопки, WM_USER + 14, 0, 0);





Ранг: 156.2 (ветеран), 2thx
Активность: 0.090
Статус: Участник

Создано: 10 февраля 2011 15:40 · Поправил: Mavlyudov
· Личное сообщение · #7

исходник я смотрел и не один раз. Там используется WM_LBUTTONDOWN, WM_KEYDOWN, VK_RETURN...но извне они не обрабатываются
EDITED
Тоже самое, но через SendMessage не работало. А вот с использованием PostMessage реакция есть.
Видимо, надо учитывать обрботку сообщения программой.


 eXeL@B —› Оффтоп —› SendMessage на нажатие кнопки

У вас должно быть 20 пунктов ранга, чтобы оставлять сообщения в этом подфоруме, но у вас только 0

   Для печати Для печати