|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
20.07.2010, 21:25 | #1 |
Регистрация: 20.07.2010
Сообщений: 5
|
Действия над старонними приложениями
Здравствуйте,
Вообщем я пытаюсь в чужом приложении выполнять разные действия, копировать и вставлять в Edit и нажамать на кнопку у меня получилось, а вот работа с меню че та не проходит.... Пробую так: HWND H=FindWindow("Класс Приложения", "Caption формы"); HWND HH=FindWindowEx(H, NULL, "TMainMenu", NULL); или так: HWND H=FindWindow("Класс Приложения", "Caption формы"); HWND HH=FindWindowEx(H, NULL, "TMenuItem", NULL); или так: HWND H=FindWindow("Класс Приложения", "Caption формы"); HWND HH=FindWindowEx(H, NULL, "TMenuItem", "Название пункта меню"); Вообщем ничего не получается... Помогите кто чем может.... |
22.07.2010, 02:30 | #2 |
Форумчанин
Регистрация: 09.03.2008
Сообщений: 127
|
Смотри функции GetMenu и GetSubMenu
|
22.07.2010, 14:01 | #3 |
Участник клуба
Регистрация: 29.12.2009
Сообщений: 1,166
|
GetSystemMenu (по хендлу окна), возвращает указатель HMENU, т.е. главное меню приложения, а там уже при помощи апи можно делать с ним что угодно
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть] |
22.07.2010, 23:08 | #4 |
Регистрация: 20.07.2010
Сообщений: 5
|
Пробую вот так:
HMENU hMenu=GetMenu(H); HMENU hGet=GetSubMenu(hMenu, 0); SendMessage(GetMenuItemID(hGet, 1),WM_LBUTTONDOWN,0,0); но в меню ни чего не нажимается, в чем моя ошибка? |
22.07.2010, 23:12 | #5 |
Регистрация: 20.07.2010
Сообщений: 5
|
Да забыл H это:
HWND H=FindWindow("Класс окна", "Caption формы"); |
22.07.2010, 23:51 | #6 |
Форумчанин
Регистрация: 09.03.2008
Сообщений: 127
|
SendMessage не верно.
Смотри сообщение WM_COMMAND |
23.07.2010, 00:12 | #7 |
Регистрация: 20.07.2010
Сообщений: 5
|
Если вы имеете ввиду вместо WM_LBUTTONDOWN
WM_COMMAND поставить, то я пробовал, не подходит...или я что то неправильно понимаю? |
23.07.2010, 14:15 | #8 |
Форумчанин
Регистрация: 24.03.2009
Сообщений: 215
|
Тебе надо узнать айдюху действия, которое генерится в целевом окне при нажатии на пункт меню и выслать этому окну сообщение WM_COMMAND с этой айдюхой то ли в lParam, то ли в wParam (точно не помню ужо).
wyvern@localhost:~$ sudo emerge --unmerge world
|
24.07.2010, 12:07 | #9 |
Участник клуба
Регистрация: 29.12.2009
Сообщений: 1,166
|
Код:
Код:
Код:
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть] Последний раз редактировалось RUSt88; 24.07.2010 в 12:12. |
25.07.2010, 00:36 | #10 |
Форумчанин
Регистрация: 09.03.2008
Сообщений: 127
|
Когда происходит нажатие пункта меню, то функция окна обработки сообщения получает сообщения WM_COMMAND, а в wParam передается ID меню пункта назначеного при его создании:
Код:
Вот так, кажется (тут только не совсем С, но думаю понятно): Код:
Код:
Последний раз редактировалось |{ot; 25.07.2010 в 00:44. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
действия над многочленами | nuevegramodelamor | Помощь студентам | 4 | 21.06.2010 01:31 |
линейные действия над векторами | morgan996 | Помощь студентам | 4 | 09.01.2010 00:13 |
Действия над массивами | hen | Помощь студентам | 2 | 06.06.2009 23:34 |
Действия над матрицами. (Delphi) | ekzobyte | Помощь студентам | 1 | 20.05.2009 20:52 |