|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.01.2012, 13:35 | #1 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Найти окно, нажать в нём кнопку. Не срабатывает с 1-2-ой попытки.
Доброго времени!
При энумирации окон, ищу и коллекционирую нужные данные, конкретно чужого окна. В числе прочих, нахожу кнопку с нужным текстом, нужно произвести 2 действия над окном: 1. Нажать найденную кнопку 2. Просто закрыть окно Проблема: Не сработывает с первого раза, ни первое ни второе действия. Выкладываю исходник, помогите пожалуйста=) |
23.01.2012, 22:44 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
EnumProc
1. Если задан класс окна и он не совпадает с классом найденного окна - дальше зачем проверять? Сразу Exit 2. Аналогично для заголовка окна EnumChildProc 1. в строке if Pos(LowerCase(p.swText), LowerCase(sText)) > 0 then нужно с p.swButtonText работать 2. Если задан класс кнопки и он не совпадает с классом найденного окна - дальше зачем проверять? Сразу Exit 3. Аналогично для текста 4. Если нашли искомый объект - сразу прервать в EnumProc поиск, а у вас он продолжается и всегда на последнюю кнопку вываливает, если их несколько и по ней отрабатывает нажатие
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
23.01.2012, 23:08 | #3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Вот немного подправил, коряво, но работает
Код:
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
24.01.2012, 00:12 | #4 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Цитата:
Допустимя я получаю нужную информацию по окнам.. Сработывает вот этот кусок: Код:
С какого-то перепугу на окно не действует WM_CLOSE, можно ли как-то закрыть окно другим способом? С нажатием тоже интересная ситуация, нужно 2 раза найти нужное окно и только со 2-го раза оно ткнёт на нужную кнопку(С первого раза, вообще ничего не происходит)... В качестве мыши для препарирования, наваял консолькую программу с вызовом MessageBox при запуске(MsgBox.dpr) Последний раз редактировалось Человек_Борща; 24.01.2012 в 00:37. |
|
24.01.2012, 00:55 | #5 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Найти окно ошибки и нажать OK | Shouldercannon | Общие вопросы Delphi | 8 | 01.05.2011 21:38 |
Нажать на кнопку в WB | kroŧ | Работа с сетью в Delphi | 8 | 18.09.2010 15:05 |
Нужно программно найти окно программы и нажать на нем кнопку | SeRыЙ | Win Api | 23 | 09.03.2010 08:00 |
Нажать кнопку | Dron_kss | Работа с сетью в Delphi | 1 | 28.03.2009 17:33 |
Нажать кнопку | Teen4jump | Работа с сетью в Delphi | 11 | 29.02.2008 08:33 |