Форум программистов, компьютерный форум CyberForum.ru

C++

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

Дождаться появления окна и программно нажать на кнопку в нем - C++

02.06.2015, 13:41. Просмотров 412. Ответов 12
Метки нет (Все метки)

насколько это реально и что нужно сделать?
В игре DOTA2 перед тем как начать играть,появляется окно в котором нужно выбрать вариант"готов". Ты клацаешь и игра началась. Суть вопроса. я хочу сделать программу которая, сама принимает вариант "готов", то есть программу которая "например" сканирует определённый участок монитора и сравнивает картинку с этого участка с заранее подготовленной картинкой. Если совпадение есть то в игре выбираеться вариант"готов" посредством клика мышки например по определённым кардинатам. Некая программа которая даже если я отойду, сможет принять игру за меня.
Мне очень интересно что на это скажут матерые форумчане. Заранее благодарю!!!
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2015, 13:41     Дождаться появления окна и программно нажать на кнопку в нем
Посмотрите здесь:

Программно нажать кнопку в webBrowser - C++ WinAPI
Доброго дня программисты. Возникла потребность интернет аукционе программно нажать кнопку тем самым купить лот. Я разместил компонент...

Программно нажать кнопку мыши - C++ WinAPI
Как программно нажать правую или левую кнопку мыши, но не в поле программы? Знаю примерно как сделать на Дельфи, но надо на СИ+. А на...

Программно нажать на кнопку другой программы - C++ WinAPI
Нужно нажать на кнопку "Реестр" мишкой в CCleaner. Код: this->WindowState = FormWindowState::Minimized; //свернуть окно Sleep(1000); ...

Программно нажать кнопку в тулбаре, зная его hwnd - C++ WinAPI
Приветствую. Кто-нибудь может подсказать, каким образом я могу программно нажать кнопку в тулбаре, зная его hwnd? Приложение...

Программно нажать кнопку на открытой в стороннем браузере веб-странице (cpp Builder 6) - C++ Builder
Здравствуйте! Помогите разобраться с одной прикладной задачкой! Суть в следующем: допустим на форме приложения есть кнопка типа TButton ,...

нахожу окна с помошю FindWindow(); и FindWindowEx(); (ето тачнее кнопка программы) как можно его программно нажать? - C++ Builder
Вот опять я, Здравстуйте люди добрые ;) У меня вопрос: вот нахожу окна с помошю FindWindow(); и FindWindowEx(); (ето тачнее кнопка...

Дождаться открытия окна - C++ WinAPI
Привет всем! Хочу открыть MS Paint и дождаться открытия окна программы. Пытаюсь сделать так: HINSTANCE h = ShellExecute(0, 0,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Почтальон
Модератор
356 / 278 / 50
Регистрация: 22.03.2015
Сообщений: 2,169
Завершенные тесты: 1
02.06.2015, 14:25     Дождаться появления окна и программно нажать на кнопку в нем #2
Цитата Сообщение от vasea_morozov Посмотреть сообщение
В игре DOTA2 перед тем как начать играть,появляется окно в котором нужно выбрать вариант"готов". Ты клацаешь и игра началась. Суть вопроса. я хочу сделать программу которая, сама принимает вариант "готов", то есть программу которая "например" сканирует определённый участок монитора и сравнивает картинку с этого участка с заранее подготовленной картинкой. Если совпадение есть то в игре выбираеться вариант"готов" посредством клика мышки например по определённым кардинатам. Некая программа которая даже если я отойду, сможет принять игру за меня.
Это делается по-другому. Нужно определить хендл окна(возможно даже по процессу), использовать перехватчик для нажатия.
Но сразу вас предупреждаю, такие вещи обычно несут не законный характер и если что - готовьтесь к последствиям.
vasea_morozov
0 / 0 / 0
Регистрация: 18.06.2014
Сообщений: 16
02.06.2015, 16:55  [ТС]     Дождаться появления окна и программно нажать на кнопку в нем #3
ага, а если сделать так как я описал? Если я правильно понимаю, то так как вы написали можно отследить удалённо в плане закона?
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,363
02.06.2015, 17:42     Дождаться появления окна и программно нажать на кнопку в нем #4
Цитата Сообщение от Почтальен Посмотреть сообщение
Это делается по-другому. Нужно определить хендл окна(возможно даже по процессу), использовать перехватчик для нажатия. Но сразу вас предупреждаю, такие вещи обычно несут не законный характер и если что - готовьтесь к последствиям.
С какой стати это незаконно?
Почтальон
Модератор
356 / 278 / 50
Регистрация: 22.03.2015
Сообщений: 2,169
Завершенные тесты: 1
02.06.2015, 17:46     Дождаться появления окна и программно нажать на кнопку в нем #5
Цитата Сообщение от CheshireCat Посмотреть сообщение
С какой стати это незаконно?
Потому что ТС хочет модифицировать данные.
Цитата Сообщение от vasea_morozov Посмотреть сообщение
ага, а если сделать так как я описал?
Можно сделать как вы хотите, но это будет бооооольшой гемор
SatanaXIII
Супер-модератор
Эксперт С++
5602 / 2636 / 242
Регистрация: 01.11.2011
Сообщений: 6,495
Завершенные тесты: 1
03.06.2015, 13:55     Дождаться появления окна и программно нажать на кнопку в нем #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Почтальен Посмотреть сообщение
Потому что ТС хочет модифицировать данные.
Никакие данные он не хочет модифицировать. Он хочет автоматизировать нажатие кнопки. В нажатии кнопки нет ничего противозаконного.

vasea_morozov, берете Spy++ один раз, узнаете название класса кнопки, и потом хотите анализируете изменение части экрана, хотите ловите по человечески сообщения появления окна подтверждения готовности, и потом уж посылаете ему сообщение о нажатии кнопки готовности.

Первые попавшиеся ссылки:
Клик мышью по координатам
Достать текст(косим под Spy++)
Spy++ MSVS2005
Захват кнопкой курсора как в Spy++
yarko
64 / 64 / 16
Регистрация: 31.03.2015
Сообщений: 253
03.06.2015, 14:51     Дождаться появления окна и программно нажать на кнопку в нем #7
Может и не сработать если игра скажем общается с железом не через обычные сообщенния, а сразу на апаратном уровне.
vasea_morozov
0 / 0 / 0
Регистрация: 18.06.2014
Сообщений: 16
03.06.2015, 15:32  [ТС]     Дождаться появления окна и программно нажать на кнопку в нем #8
Господа,знали бы вы как приятно общаться с умными людьми!
SatanaXIII
Супер-модератор
Эксперт С++
5602 / 2636 / 242
Регистрация: 01.11.2011
Сообщений: 6,495
Завершенные тесты: 1
03.06.2015, 15:39     Дождаться появления окна и программно нажать на кнопку в нем #9
Цитата Сообщение от yarko Посмотреть сообщение
Может и не сработать если игра скажем общается с железом не через обычные сообщенния, а сразу на апаратном уровне.
Поясните пожалуйста свою мысль. Каким образом графический интерфейс может общаться с железом на аппаратном уровне?
yarko
64 / 64 / 16
Регистрация: 31.03.2015
Сообщений: 253
03.06.2015, 16:45     Дождаться появления окна и программно нажать на кнопку в нем #10
DirectInput
SatanaXIII
Супер-модератор
Эксперт С++
5602 / 2636 / 242
Регистрация: 01.11.2011
Сообщений: 6,495
Завершенные тесты: 1
04.06.2015, 09:51     Дождаться появления окна и программно нажать на кнопку в нем #11
Цитата Сообщение от yarko Посмотреть сообщение
DirectInput
Да. Это очень жестокая технология. Приползшая из DirectX в OpenGL, лишающая последний кроссплатформенности.
DirectInput позволяет нам не слушать виндовые сообщения и ждать в них от мыши, а непосредственно самим опрашивать ее.
Соглашусь, перехватить какую бы то ни было информацию из самой игры будет сложнее. Но что произойдет при попытке отправить ей сообщение, затрудняюсь сказать.
yarko
64 / 64 / 16
Регистрация: 31.03.2015
Сообщений: 253
04.06.2015, 11:03     Дождаться появления окна и программно нажать на кнопку в нем #12
А ничего не будет. Такая игра просто игнорит сообщения винды.
Я тоже пробовал для линейки такое делать. Полный ноль
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2015, 11:21     Дождаться появления окна и программно нажать на кнопку в нем
Еще ссылки по теме:

Программно нажать F10 - C++ Builder
Как программно нажать F10 ?

Как программно нажать клавишу [=] и [-]? - C++ Builder
Почти все поисковики перерыл, а ответа так и не нашел =( Мне нужно программно нажать клавиши и , те которые следуют за (1,2,3,4 ......

Нажать кнопку на вебстранице - C++ Builder
Здравствуйте. Использую компонент CppWebBrowser для перехода по заранее заготовленным ссылкам браузерной игры (в начале пользователь должен...

Нажать кнопку на сайте - C++
Предположим я нахожу окно где находится кнопка таким образом: hwnd = FindWindow("Chrome_WidgetWin_1","Новый текстовый документ.html -...

Нажать на неактивную кнопку - C++ Builder
Задача проста сделать кнопку не активной Enabled=false; Но тогда нажать нельзя как сделать чтоб можно было нажать, но кнопка была серая.


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

Или воспользуйтесь поиском по форуму:
SatanaXIII
Супер-модератор
Эксперт С++
5602 / 2636 / 242
Регистрация: 01.11.2011
Сообщений: 6,495
Завершенные тесты: 1
04.06.2015, 11:21     Дождаться появления окна и программно нажать на кнопку в нем #13
yarko, а если, предположим совершенно гипотетически, совпадет по времени момент нажатия кнопки и опрос устройства из программы?
Yandex
Объявления
04.06.2015, 11:21     Дождаться появления окна и программно нажать на кнопку в нем
Ответ Создать тему
Опции темы

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