|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.02.2015, 11:53 | #1 |
Регистрация: 25.05.2012
Сообщений: 7
|
Работа с чужим окном
Здравствуйте! Есть чужое окно, его дескриптор я нашел. На этом окне размещены панели, которые в свою очередь выступают кнопками (их дескрипторы я тоже нашел). При нажатии определенной панели выскакивает меню. Мне нужно автоматизировать открытие тех или иных пунктов меню. Посылаю на кнопку (TPanel)
Код:
Задача такая нужно получить дескриптор меню (а он постоянно всегда новый) и нажать любую кнопку в этом меню. Помогите разобраться. |
12.02.2015, 07:16 | #2 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
Плохой ответ
Еще студентами пытались как-то управлять сторонним приложением и въехали в тот же пень. Кнопочки основного окна нажимались на ура. А вот с всплывающими окнами возникли какие-то проблемы. До конца мы программу не доделали (это было больше похоже на эксперементы по программированию (программирование не наш основной профиль (мы строители-проектировщики), поэтому нам давали только азы)), но помню, что проблема решалась имтацией нажатия клавишь. Т.е. мы знали, сколько раз нужно нажать [TAB], чтобы попасть на нужную кнопку или edit в открывшемся окне. И симитировав нажатие этого самого [TAB] нужное количество раз получали фокус в нужном месте. Далее по аналогии. Кстати, этот метод удачен тем, что при обновлении нашей программы (это был, кстати, SCAD) на новую версию, ее внешний интерфейс оставался почти не изменным. А вот дискрипторы могут изменится очень сильно. Например, если написанную на D7 программу собрать на XE, думаю все дискрипторы придется определять заново. А плох этот метод всем остальным. Например кучей эмперических Sleep'ов. Последний раз редактировалось Sibedir; 12.02.2015 в 07:46. |
12.02.2015, 07:39 | #3 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Раньше использовал такое:
Код:
I'm learning to live...
|
16.02.2015, 10:33 | #4 | |
Регистрация: 25.05.2012
Сообщений: 7
|
Цитата:
|
|
16.02.2015, 11:24 | #5 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
16.02.2015, 12:02 | #6 |
Регистрация: 25.05.2012
Сообщений: 7
|
Дескриптор главного окна я знаю, если применить GetMenu(form) значение возвращаемое будет равно 0. Поэтому и предполагаю, что это меню всплывающее не прикреплено к главной форме, а создается динамически, т.к. в Spy++ его под главной формой нету, а висит в корне под рабочим столом с классом #32768 и его дескриптор меняется каждый раз при открытии.
|
17.02.2015, 17:25 | #7 |
Регистрация: 25.05.2012
Сообщений: 7
|
Так есть у кого-нибудь идеи или готовые решения? Может кто-нибудь мне помочь?
|
17.02.2015, 17:50 | #8 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
У меня нет. Я все что знаю о меню сказал. Если это какое-то popup меню, то тут я ничего не скажу.
I'm learning to live...
|
17.02.2015, 20:34 | #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 |