Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
TryAgain
0 / 0 / 0
Регистрация: 16.07.2015
Сообщений: 5
#1

Как программно выполнить нажатие кнопки в приложении, если у нее нет handle? - C++

21.07.2015, 18:00. Просмотров 374. Ответов 7
Метки нет (Все метки)

Наверно, вопрос, странный, но как вообще работать с интерфейсом стороннего приложения, если оно вообще не имеет дочерних окон ( сами элементы, например кнопки, присутствуют)?
Т.к. я в этом деле полный чайник, прошу ссылки, литературу и т.д.
Заранее благодарен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.07.2015, 18:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как программно выполнить нажатие кнопки в приложении, если у нее нет handle? (C++):

Как отловить нажатие кнопки в приложении? - Visual Basic .NET
Подскажите, как отловить нажатие кнопки в ВБ.нет?

Как программно имитировать нажатие кнопки TBCButton? - Lazarus
Для имитации нажатия обычных кнопок типа TBitBtn используются вот такие процедуры: // Нажатие. procedure TForm1.FormKeyDown(Sender:...

Как выбрать окно, если его handle не совпадает с handle процесса? - PowerShell
Добрый день! Задача на первый взгляд довольно простая: выбрать окно программы, переместить его в определённую часть экрана и нажать на...

Нажатие кнопки в другом приложении - Delphi
Всем привет, прошу помощи.(Если было - не смог найти похожее) Есть окно, когда в этом окне появляется нужное мне уведомление -...

Нажатие кнопки в другом приложении - C#
Привет всем! Объясните пожалуйста, как написать приложение, которое программно нажимает кнопку в другом приожении?

Нажатие кнопки в чужом приложении - C#
Здравствуйте. Задался целью программно нажать на кнопку в чужой программе. using System; using System.Collections.Generic; using...

7
zss
Модератор
Эксперт С++
6631 / 6193 / 2048
Регистрация: 18.12.2011
Сообщений: 16,150
Завершенные тесты: 1
21.07.2015, 18:03 #2
Кнопка - это тоже окно. Оно имеет собственный hwnd. Соответственно все обращения к кнопке можно выполнять посылая сообщения этому окну.
0
TryAgain
0 / 0 / 0
Регистрация: 16.07.2015
Сообщений: 5
21.07.2015, 18:57  [ТС] #3
Почему тогда для главного окна этого приложения (telegram) функция EnumChildWindows не находит ни единого дочернего окна, тогда как этот же код прекрасно справляется с поиском дочерних например у окна проводника windows?
0
Krasiosoft
51 / 51 / 15
Регистрация: 01.06.2015
Сообщений: 189
21.07.2015, 21:28 #4
Не обязательно кнопка должна быть окном. Возможно, приложение получает все сообщения в свое главное окно, а далее уже само обрабатывает их как нужно.
0
TryAgain
0 / 0 / 0
Регистрация: 16.07.2015
Сообщений: 5
21.07.2015, 21:41  [ТС] #5
В этом-то и заключается вопрос - как тогда работать с интерфейсом? шариться в исходниках у меня ума маловато...
0
Krasiosoft
51 / 51 / 15
Регистрация: 01.06.2015
Сообщений: 189
21.07.2015, 21:46 #6
Сначала проверьте с помощь программы Spy++, действительно ли это так, которая идет в комплекте с Visual Studio.
1
TryAgain
0 / 0 / 0
Регистрация: 16.07.2015
Сообщений: 5
21.07.2015, 22:50  [ТС] #7
Спасибо, информация для меня очень ценная, для будущих затей уж точно! Но, к сожалению, дочерних окон не обнаружено... Более того пробовал отследить сообщения к этому окну - абсолютная пустота... Ну и вопрос все тот же - что же мне делать, если я таки очень сильно хочу нажать на кнопку в этом окне?
0
Krasiosoft
51 / 51 / 15
Регистрация: 01.06.2015
Сообщений: 189
22.07.2015, 02:17 #8
Цитата Сообщение от TryAgain Посмотреть сообщение
пробовал отследить сообщения к этому окну - абсолютная пустота...
Такого не должно быть.

Если в этом окне есть поля для ввода, попробуйте стать в одно из полей и послать окну сообщение о нажатии клавиши. Только окно должно быть активным в момент получения сообщения.

Но я тут пока вижу только 2 варианта решения проблемы:
1) Распознавать изображение с окна программы и на основе этого взаимодействовать с ней передавая сообщения в главное окно.
2) Встраивать свой код в программу и перехватывать нужные Вам функции, но это делать не так уже и легко.
1
22.07.2015, 02:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.07.2015, 02:17
Привет! Вот еще темы с ответами:

Перехватить нажатие кнопки в другом приложении - C#
Есть прога, написанная вроде на дельфях (остался только exe-шник), есть ли возможность перехватить нажатие кнопки на этой форме и сделать...

Нажатие кнопки на сайте ,программно - Visual Basic .NET
Доброе утро.. Много раз писал с маленькой прозьбой , но так и не нашёл ответа..Помогите пожалуйста.. Вопрос: Имеем сайт Vktaget.ru и на...

.NET 4.x Нажатие кнопки мыши программно - C#
Всем привет Прошу помощи, как "нажать кнопку мыши", нашел в гугле, но там что-то уж слишком сложно. Возможно вы сможете помочь, на что...

Web Browser, нажатие кнопки программно - Delphi
Добрый день. Уже много дней пытаюсь сделать программное нажатие кнопки. не получается. обращение можно сделать только по классу. А таких...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.