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

C++

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

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

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

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

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

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

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

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

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

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

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

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

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

Нажать кнопку в чужом окне - C++ Builder
Есть программа Steam нужно в ней нажать на кнопку "Создать новый аккаунт" Пробовал разные способы... И еще условие таково что сам Steam...

Как нажать кнопку на сайте? - C++ Builder
Ребята, срочно нужна помощь: как нажать кнопку на сайте? <a href="javascript:BuyMarketListing('listing', '2944526731216622102', 753,...

Программно нажать клавишу (SendInput, keybd_event не предлагать) - C++ Builder
для игры мне надо. SendInput вроде апишная функция но работает только если в чат пишу... а скилы мне не нажимает. ещё ниже есть куда...

Компонент MaskEdit должен стать доступным, если нажать на нем правой кнопкой мыши с зажатой клавишей Ctrl - C++ Builder
На форме разместить компонент MaskEdit, в котором нельзя изменять текст. Если нажать на компоненте правой кнопкой мыши с зажатой клавишей...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.06.2015, 11:21
Ответ Создать тему
Опции темы

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