![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
![]()
Доброго времени!
При энумирации окон, ищу и коллекционирую нужные данные, конкретно чужого окна. В числе прочих, нахожу кнопку с нужным текстом, нужно произвести 2 действия над окном: 1. Нажать найденную кнопку 2. Просто закрыть окно Проблема: Не сработывает с первого раза, ни первое ни второе действия. Выкладываю исходник, помогите пожалуйста=) |
![]() |
![]() |
![]() |
#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 поиск, а у вас он продолжается и всегда на последнюю кнопку вываливает, если их несколько и по ней отрабатывает нажатие
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Вот немного подправил, коряво, но работает
Код:
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
![]() Цитата:
Допустимя я получаю нужную информацию по окнам.. Сработывает вот этот кусок: Код:
С какого-то перепугу на окно не действует WM_CLOSE, можно ли как-то закрыть окно другим способом? С нажатием тоже интересная ситуация, нужно 2 раза найти нужное окно и только со 2-го раза оно ткнёт на нужную кнопку(С первого раза, вообще ничего не происходит)... В качестве мыши для препарирования, наваял консолькую программу с вызовом MessageBox при запуске(MsgBox.dpr) Последний раз редактировалось Человек_Борща; 24.01.2012 в 00:37. |
|
![]() |
![]() |
![]() |
#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 |