| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Клик мышью |
| Автор: Самурай 28.10.2005, 10:47 |
| Нужно произвести клик мышкой (левая клавиша) программно в чужом окне в определенном месте. Т. е. пример: есть окно с MainMenu, я программно подвожу к пункту меню курсор мыши и совершаю клик по этому элементу меню, т. е. раскрывается пункт меню... Как осуществить? |
| Автор: Girder 28.10.2005, 10:51 |
| SendMessage(XXX,BM_CLICK,0,0) |
| Автор: Самурай 28.10.2005, 11:24 | ||
Я взял пока собственную форму:
Эффект нулевой, т. е. меню не раскрывается... |
| Автор: Girder 28.10.2005, 11:33 | ||
|
| Автор: Самурай 28.10.2005, 12:09 |
| С кнопкой-то понятно, т. к. все просто. Но что с MainMenu делать? |
| Автор: Alexeis 28.10.2005, 12:23 | ||
PostMessage(....Handle, WM_KeyDown, VK_DOWN, 0); |
| Автор: Самурай 28.10.2005, 12:25 | ||
alexeis1, не работает.
Добавлено @ 12:27 Все поиски ищут у нас объекты типа HWND, а меню у нас типа HMENU. Может есть похожий способ отыскания меню и работы с ним? |
| Автор: Alexeis 28.10.2005, 12:32 |
| Вероятно PostMessage(MainMenu1.Handle, WM_KeyDown, VK_DOWN, 0); |
| Автор: Самурай 28.10.2005, 12:34 | ||
А как узнать Handle этого меню в абсолютно чужом окне? |
| Автор: Alexeis 28.10.2005, 12:43 |
| С помощью программы WinSight - поставка Delphi Ставишь галочку Spy -> Folow focus -> жмешь на меню нужной программы |
| Автор: Самурай 28.10.2005, 13:37 |
| Сторонняя программа отпадает сразу. Все нужно делать в программе, т. е. на месте. |
| Автор: Romikgy 28.10.2005, 15:11 |
| Можно поинтересоватся , что за прога в которой нужно нажать на меню, мож в меню есть связанные клавиши с пунктами меню??? |
| Автор: Самурай 28.10.2005, 15:53 | ||
Очень может быть... Но это уже в другой теме. Как я начинаю понимать, реализовать задуманное невозможно. |
| Автор: Самурай 28.10.2005, 20:52 |
| Как я вижу решение проблемы отсутсвует... |
| Автор: Girder 28.10.2005, 23:08 | ||||
К примеру тебе надо вызвать обработчик меню которое находиться во втором меню в 2 позиции(и при ентом первое меню содержит 3 подменю, и они без вложенных меню Где XXX - енти дескриптор окна которому принадлежит меню(MainMenu) Удачи. Добавлено @ 23:10 Забыл добавить... что было проше в вычислениях номера используй GetMenuItemID |
| Автор: Самурай 28.10.2005, 23:15 |
| Хороший поток информации в половине первого ночи... Спасибо за подробности. |
| Автор: Самурай 29.10.2005, 09:59 |
| Спасибо, очень хорошо работает! |
| Автор: Гость_RaIDeR 31.10.2005, 01:10 | ||||
GetMenu и GetSubMenu. |