![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 25.05.2012
Сообщений: 7
|
![]()
Здравствуйте! Есть чужое окно, его дескриптор я нашел. На этом окне размещены панели, которые в свою очередь выступают кнопками (их дескрипторы я тоже нашел). При нажатии определенной панели выскакивает меню. Мне нужно автоматизировать открытие тех или иных пунктов меню. Посылаю на кнопку (TPanel)
Код:
Задача такая нужно получить дескриптор меню (а он постоянно всегда новый) и нажать любую кнопку в этом меню. Помогите разобраться. |
![]() |
![]() |
![]() |
#2 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
![]()
Плохой ответ
Еще студентами пытались как-то управлять сторонним приложением и въехали в тот же пень. Кнопочки основного окна нажимались на ура. А вот с всплывающими окнами возникли какие-то проблемы. До конца мы программу не доделали (это было больше похоже на эксперементы по программированию (программирование не наш основной профиль (мы строители-проектировщики), поэтому нам давали только азы)), но помню, что проблема решалась имтацией нажатия клавишь. Т.е. мы знали, сколько раз нужно нажать [TAB], чтобы попасть на нужную кнопку или edit в открывшемся окне. И симитировав нажатие этого самого [TAB] нужное количество раз получали фокус в нужном месте. Далее по аналогии. Кстати, этот метод удачен тем, что при обновлении нашей программы (это был, кстати, SCAD) на новую версию, ее внешний интерфейс оставался почти не изменным. А вот дискрипторы могут изменится очень сильно. Например, если написанную на D7 программу собрать на XE, думаю все дискрипторы придется определять заново. А плох этот метод всем остальным. Например кучей эмперических Sleep'ов. Последний раз редактировалось Sibedir; 12.02.2015 в 07:46. |
![]() |
![]() |
![]() |
#3 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Раньше использовал такое:
Код:
I'm learning to live...
|
![]() |
![]() |
![]() |
#4 | |
Регистрация: 25.05.2012
Сообщений: 7
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#5 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#6 |
Регистрация: 25.05.2012
Сообщений: 7
|
![]()
Дескриптор главного окна я знаю, если применить GetMenu(form) значение возвращаемое будет равно 0. Поэтому и предполагаю, что это меню всплывающее не прикреплено к главной форме, а создается динамически, т.к. в Spy++ его под главной формой нету, а висит в корне под рабочим столом с классом #32768 и его дескриптор меняется каждый раз при открытии.
|
![]() |
![]() |
![]() |
#7 |
Регистрация: 25.05.2012
Сообщений: 7
|
![]()
Так есть у кого-нибудь идеи или готовые решения? Может кто-нибудь мне помочь?
|
![]() |
![]() |
![]() |
#8 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
У меня нет. Я все что знаю о меню сказал. Если это какое-то popup меню, то тут я ничего не скажу.
I'm learning to live...
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 05.10.2007
Сообщений: 478
|
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с чужим окном | W0LF | Общие вопросы Delphi | 14 | 13.05.2014 11:18 |
работа с чужим консольным окном C# | Zer0 | Помощь студентам | 0 | 01.09.2011 03:48 |
Работа с чужим окном определенного заголовка | Marsel737 | Общие вопросы Delphi | 12 | 08.12.2009 23:11 |
Работа с чужим приложением | ERASERROR | Win Api | 2 | 28.01.2008 15:22 |
работа с чужим окном | RammFan | Win Api | 1 | 18.01.2007 20:21 |