Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 16.12.2022
Сообщений: 13

Клик в приложении с использованием C++

16.12.2022, 15:27. Показов 2436. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Писал программу которая должна нажимать кнопку в файле установщике. Т.е. запускать файл, и продолжать его установку. Для продолжения (нажатия далее в файле установщике) выбрал нажатие мышкой с использованием данного кода (снизу) но не до конца понял как её закончить, нужны аргументы для "Имя класса", "Имя окна" и "BUTTON", "Имя кнопки"

Code
1
2
3
4
5
6
{
HWND hParent = FindWindowEx(NULL, NULL, "Имя класса", "Имя окна");
if (hParent) {
  HWND hButton = FindWindowEx(hParent, NULL, "BUTTON", "Имя кнопки");
  if (hButton) SendMessage(hParent, WM_COMMAND, (WPARAM)((GetWindowLong(hButton, GWL_ID) & 0xFFFF) | (BN_CLICKED >> 16)), (LPARAM)hButton);
}
Поискал в программе Spy++ эти аргументы, что писать в "BUTTON" и "Имя кнопки" не понял..

Code
1
2
3
4
5
6
{
        HWND hParent = FindWindowEx(NULL, NULL, "TSelectLanguageForm", "Выберите язык установки");
        if (hParent) {
            HWND hButton = FindWindowEx(hParent, NULL, "BUTTON", "Имя кнопки");
            if (hButton) SendMessage(hParent, WM_COMMAND, (WPARAM)((GetWindowLong(hButton, GWL_ID) & 0xFFFF) | (BN_CLICKED >> 16)), (LPARAM)hButton);
}
Можете подсказать что я делаю не правильно и где нужно найти эти классы, или может я не туда пошёл вообще.. Не знаю что делать, не могу этот клик сделать и всё..

Заранее огромное спасибо!!!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.12.2022, 15:27
Ответы с готовыми решениями:

Клик в свернутом приложении
добрый день.нужно реализовать клик(эмитацию клика) в веб браузере расположеным на форме по координатам . приложение будет свернуто. ...

Клик мышью в фоновом приложении
Доброго времени суток товарищи друзья. Возник вопрос - как нажать на определенное место в другой программе (послать нажатие мышью).. Как...

Программный клик мыши в чужом, свернутом приложении
Искал в интернете, но ничего подходящего не нашел. Нужно программно кликнуть ЛКМ в сторонней программе по определенным координатам...

22
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
19.12.2022, 15:10
Студворк — интернет-сервис помощи студентам
Alexey96325, вы код структурируете неправильно.

Все, что вы сделали для "исправления", бессмысленно. Не надо методом тыка пытаться доставлять точки с запятой и фигурные скобки.

Функцию NextWindowElement надо разместить в глобальном пространстве.
Код (который "основной код") из поста 13 нужно поместить в какую-то свою функцию.
Недостаточно просто скопировать в произвольное место.
Старайтесь не делать неосмысленных вещей.
0
0 / 0 / 0
Регистрация: 16.12.2022
Сообщений: 13
19.12.2022, 15:34  [ТС]
Я просто не очень понимаю как именно надо делать..

Добавлено через 5 минут
gunslinger, gunslinger, gunslinger, А можете скинуть полный код своей программы скинуть ?Я может больше пойму чем сейчас)
0
place status here
 Аватар для gunslinger
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,028
19.12.2022, 22:05
Alexey96325, я скинул весь необходимый код (который при необходимости нужно подправить под свою среду). Остальное тебе ничем не поможет (еще раз говорю - у меня билдер, у тебя же VS).
И не надо бездумно копировать код.
Ты определись - у тебя название кнопки "ОК" или "OK >"? Также сомневаюсь, что кнопка в твоем случае под номером 13 в порядке однотипных объектов (совпадения возможны, но маловероятны). Конечно, может и так (теоретически) работать, но не факт. Все нужные действия я описал.
Проверь, как указано ранее, есть ли на форме однотипные объекты или они все разные (по классу). И тогда пиши код (с использованием соответствующих нужных функций).
Свой пример я могу "пощупать". Твой - нет. Либо скинь приложение и кто-то, может быть, его посмотрит. Либо делай сам, но внимательно и осмысленно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.12.2022, 22:05

Работа в приложении с использованием клавиш
Здравствуйте! Делаю первые шаги. Написал приложение типа калькулятора, но считающего другие функции, но это не столь важно. Программа...

Навигация в приложении с использованием Гамбургер меню
Здравствуйте! Я сильно начинающий... В приложении навигация предполагается при помощи Гамбургер меню. Как его сделать в XAML...

Авторизационная форма в приложении с использованием sqlite DB
Доброго времени суток! Помогите разобраться, уважаемые форумчане. Необходимо было написать авторизационную форму, в которой при...

Задачу необходимо .с использованием классов . Реализуя в консольном приложении
Задачу необходимо решить с использованием классов StreamReader и StreamWriter. Реализуя в консольном приложении. Во входном файле...

Разработка и создание приложении с использованием пакета java.awt
На фабрике 24-часовой день разделен на три смены следующим образом: 1-я смена с 0000 до 0759 2-я смена с 0800 до 1559 3-я смена с...


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru