![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как программно кликнуть по пункту Popup меню другого приложения ? [D7, WinXP]
ANB © (2005-06-08 09:23:00)Определил ID пункта всплывающего меню. Нашел само окно всплывшего меню (хэндл). И никак не могу кликнуть по нужной строчке. Пробовал WM_LBUTTONDOWN + UP, WM_COMMAND - ничего не происходит. Чужое приложение написано на Delphi. Когда кликаю руками, хук грит, что сообщения приходят от окна класса 'TPUtilWindow'. Но я не могу найти это окно в системе.
ANB (2005-06-08 13:06:00) [1]УРРРААА !!! Нашел. Ищу все окна класса TPUtilWindow нужного мне процесса (EnumWindow), каждому посылаю WM_COMMAND и все пахает !!!
Всем спасибо.
ANB (2005-06-08 12:32:00) [2]Полез изнутри - если посылать сообщение окну класса TPUtilWindow (WM_COMMAND), то все пахает, даже если правой кнопкой не щелкать. Гы. Теперь проблема - как найти это окно снаружи, так как у процесса их может быть много. А можа всем и послать, которые найду у процесса ? Ща проекспериментирую . . .
ANB (2005-06-08 11:34:00) [3]Нашел описание. Не поможет, так как я хэндл попап меню не знаю, как найти. И какому окну слать - тоже не знаю.
ANB (2005-06-08 11:34:00) [4]
> VMcL © (08.06.05 11:33) [3]
- ща попробую . . .
VMcL (2005-06-08 11:33:00) [5]>> ANB © (08.06.05 09:23)
AFAIR, Delphi'йские PopupMenu используют служебное окно (см. TPopupList.Window). Ему и нужно отправлять WM_COMMAND.
ANB (2005-06-08 11:22:00) [6]
> alpet © (08.06.05 11:11) [1]
- WM_MENUCOMMAND у меня нет в WinSDK, описание бы нарыть. В rdsn - тоже нету. Там только одно упоминание без параметров. Ща еще в MSDN слазию. . . Соответственно, я не пробовал.
alpet (2005-06-08 11:11:00) [7]WM_MENUCOMMAND не помогает?