0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 25
|
|
1 | |
Поиск кнопок в другом приложении12.09.2012, 11:23. Показов 5078. Ответов 11
Метки нет (Все метки)
Помогите)
Пользователь выбирает приложение,в этом приложении нужно найти все кнопки и по очереди их нажать (в разном порядке,ну это пока не важно). Ну как открыть понятно,а вот как найти все кнопки?и потом их нажать!?)
0
|
12.09.2012, 11:23 | |
Ответы с готовыми решениями:
11
Нажатие кнопок в стороннем приложении Нажатие кнопок в стороннем приложении Нажатие кнопок в стороннем приложении (игре) Нажатие клавиши в другом приложении |
0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 25
|
|
12.09.2012, 14:10 [ТС] | 3 |
А подробнее можно?!
Просто там надо заголовок формы и кнопок писать) А у меня то они не известны Добавлено через 44 минуты Как найти handle приложения,которое я открыл?
0
|
210 / 169 / 24
Регистрация: 24.04.2012
Сообщений: 615
|
|
12.09.2012, 14:18 | 4 |
Поставь утилиту Windows Inspector или что-то подобное, она покажет тебе все окна, там можешь узнать handle окна, или его имя и класс, чтоб найти с помощью findwindow.
0
|
Супер-модератор
|
||||||
12.09.2012, 14:22 | 5 | |||||
Как же ты собрался работать с чужим приложением, не зная даже его заголовка? Ну, в крайнем случае запустишь его не через ShellExecute, а через CreateProcess, и потом по PID найдешь хендл главного окна чужого приложения. А для поиска кнопок вообще не надо никаких заголовков знать:
1
|
0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 25
|
|
12.09.2012, 14:44 [ТС] | 6 |
Чето не понял чем мне эта утилита поможет
Мне надо как-то вырвать handle у только что открывшегося приложения Добавлено через 4 минуты Кароче эта прога будет для теста других программ Сначала пользователь через мою программу выбирает, приложение которое надо протестить (поэтому я не знаю заголовка) потом моя программа ищет все кнопки на этом приложении,и начинает на них нажимать в разном порядке,при этом вести журнал событий) таким образом пользователь узнает на каком месте другая программа перестает работать)) Добавлено через 4 минуты Здесь ты ищешь кнопки конкретно у калькулятора h := FindWindow(nil, 'Calculator'); А мне не известно в какой программе я буду искать,вернее в той которую только что открыл)
0
|
210 / 169 / 24
Регистрация: 24.04.2012
Сообщений: 615
|
|
12.09.2012, 14:49 | 7 |
Т.Е. функционал твоей программы заключается в нахождении кнопки "Выход" в других приложениях?
0
|
0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 25
|
|
12.09.2012, 14:50 [ТС] | 8 |
Нет,она будет проверять при какой последовательности нажимания кнопок,программа виснет или выдает ошибку)
0
|
210 / 169 / 24
Регистрация: 24.04.2012
Сообщений: 615
|
|
12.09.2012, 14:51 | 9 |
А как она узнает, что программа повисла, или выдала ошибку? )))
0
|
0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 25
|
|
12.09.2012, 14:53 [ТС] | 10 |
А вот этого я пока не знаю))
Добавлено через 1 минуту Для начала мне хотябы реализовать чтоб она нашла все кнопки и начала на них нажимать,а дальше буду думать)
0
|
Супер-модератор
|
|
12.09.2012, 15:01 | 11 |
Во-первых, если ты только что открыл программу, GetForegroundWindow должен дать хендл ее окна (только надо подождать некоторое время, пока приложение успеет загрузиться). Не устраивает - я тебе уже сказал: запускаешь процесс через CreateProcess, и по его PID находишь хендл главного окна (подсказка: перечисление всех окон верхнего уровня, для каждого из них получаешь с помощью GetWindowThreadProcessId PID создавшего его процесса и сравниваешь с полученным из CreateProcess. Если совпадают - можешь хлопать в ладоши, ты нашел окно). Что делать дальше - я показал...
Перенести в раздел https://www.cyberforum.ru/delphi-winapi/ ?
1
|
0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 25
|
|
12.09.2012, 15:09 [ТС] | 12 |
Спасибо за помощь,буду пробовать
0
|
12.09.2012, 15:09 | |
12.09.2012, 15:09 | |
Помогаю со студенческими работами здесь
12
Нажатие кнопки в другом приложении Нажатие меню в другом приложении Нажатие на клавишу в другом приложении Нажатие клавиш в другом приложении Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |