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

Программно найти кнопку в flash'e, подкиньте идею) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
30.12.2010, 16:58     Программно найти кнопку в flash'e, подкиньте идею) #1
Пишу бота для одной браузерной игры, написанной на флеше. Собственно основную часть написал, все работает) Но есть одна проблема, в некоторый момент игры появляется окошко с неким сообщением и его нужно закрыть, чтоб игра продолжилась. Так вот я ни как не могу "найти" кнопку - "крестик", чтоб закрыть окошко. В игре есть другие кнопки для самого процесса игры, т.к. они большие и одного цвета, то я легко нашел их по пикселям. Но в этом окне кнопка - крестик не содержит внутри себя идущих подряд пикселей одного цвета, достаточного для оперделения , что это крестик (во флеши же появляющееся окошко не является самостоятельным элементом и ему нельзя послать сообщение, поэтому приходится вот так вот изваращатся)) Вот собственно суть проблемы.
Есть идея в которой я очень сомневаюсь - это сделать скриншот экрана, в граф.редакторе вырезать этот крестик, сохранить как отдельный рисунок в папку с ботом, ну и потом сравнивать попиксельно окно с игрой и этот рисунок на предмет "одинаковости". Но т.к. я ни чего не знаю о форматах хранения изображений и о flash'е, то я сомневаюсь, что так вообще получится.
Подкиньте какую-нибудь идею, я в жизни ботов не писал, вот решил попоробовать)))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2010, 16:58     Программно найти кнопку в flash'e, подкиньте идею)
Посмотрите здесь:

C++ Подкиньте идею игры или программы
C++ подкиньте идею плиз, а то чёто не вьезжаю
C++ Подкиньте практику по С/С++
Подкиньте идею:) C++
Подкиньте рандомно задачки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
30.12.2010, 17:17     Программно найти кнопку в flash'e, подкиньте идею) #2
Поскольку я тоже никогда этим не занимался и даже об этом не задумывался, то, пока не придёт кто-нибудь более в этом вопросе подкованный - будем извращаться. Первая идея - как и ваша - сравнивать с эталоном. Вторая (если окно это появляется постоянно в одном месте) - просто запомнить координаты крестика (абсолютные значения) и жать на эти координаты.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
30.12.2010, 17:33  [ТС]     Программно найти кнопку в flash'e, подкиньте идею) #3
Цитата Сообщение от silent_1991 Посмотреть сообщение
Первая идея - как и ваша - сравнивать с эталоном
Попробую, но совсем не уверен.

Цитата Сообщение от silent_1991 Посмотреть сообщение
Вторая (если окно это появляется постоянно в одном месте)...
В том то и дело, что окно появляется в одном месте (по центру экрана), но в зависимости от объема сообщения, написанного в этом окне, крестик меняет свое расположение (выше, ниже, левее, правее).

Не по теме:

Цитата Сообщение от silent_1991 Посмотреть сообщение
как и ваша
мы же, вроде как, на "ТЫ" )))

silent_1991
30.12.2010, 17:34
  #4

Не по теме:

Цитата Сообщение от Kastaneda Посмотреть сообщение
мы же, вроде как, на "ТЫ" )))
О'кей))) Привычка)))

easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
30.12.2010, 18:12     Программно найти кнопку в flash'e, подкиньте идею) #5
Цитата Сообщение от Kastaneda Посмотреть сообщение
В том то и дело, что окно появляется в одном месте (по центру экрана), но в зависимости от объема сообщения, написанного в этом окне, крестик меняет свое расположение (выше, ниже, левее, правее).
Но крестик, на сколько я понимаю, всегда находится на определённом расстоянии от правого верхнего угла. То есть задача сводится к определению размеров окошка с сообщением...
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
30.12.2010, 18:24     Программно найти кнопку в flash'e, подкиньте идею) #6
easybudda, я тоже уже подумал об определении размеров окна. Скажем, исходя из ширины (как я понял, она постоянная) и количества строк сообщения.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
30.12.2010, 18:33  [ТС]     Программно найти кнопку в flash'e, подкиньте идею) #7
Цитата Сообщение от easybudda Посмотреть сообщение
То есть задача сводится к определению размеров окошка с сообщением
Да, точно, можно попробовать определить координаты всего окошка, ну а там и крестик от угла найти. Внутри окошко серого цвета, так что по пикселям можно его найти.

Цитата Сообщение от silent_1991 Посмотреть сообщение
Скажем, исходя из ширины (как я понял, она постоянная) и количества строк сообщения.
Нет, ширина и высота окошка не постояная, но оно выскакивает всегда примерно в одном месте, так, что радиус поиска где-то 400 на 400 пикселей в определенном месте.

Вобщем попробую окошко распознать)

Не по теме:

что-то тафтологии много...



Добавлено через 2 минуты

Не по теме:

который день это пишу, забыл как по-русски говорить, все Си да Си ))

silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
30.12.2010, 18:39     Программно найти кнопку в flash'e, подкиньте идею) #8
А оно квадратное? Просто если квадратное, можно из центра провести линию под углом 45 градусов к горизонту () и кликать по ней с определённым шагом (скажем, в половину радиуса крестика) в тех же самых 400 пикселях...
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
30.12.2010, 18:45  [ТС]     Программно найти кнопку в flash'e, подкиньте идею) #9
Цитата Сообщение от silent_1991 Посмотреть сообщение
А оно квадратное?
Не, оно вообще всякое бывает, в зависимости от объема сообщения и еще там картинка может быть.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
30.12.2010, 18:48     Программно найти кнопку в flash'e, подкиньте идею) #10
Да чёрт подери, никак не попаду в точку
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
30.12.2010, 19:01     Программно найти кнопку в flash'e, подкиньте идею) #11
Цитата Сообщение от Kastaneda Посмотреть сообщение
Не, оно вообще всякое бывает...
... круглое, треугольное...
На самом деле всё даже немного проще, чем кажется, если только окно точно по центру экрана появляется. Тогда учитывая, что у него наверняка есть заголовок, вниз экрана продолжается серый фон окна сообщения на величину, бОльшую, чем вверх как-раз на высоту заголовка. С шириной тоже проблем никаких - картинка если и есть, то наверняка не на вылет в окне, то есть вокруг неё ещё рамка фона присутствует, значит хотябы пиксель фона под ней должен быть. Если мы знаем нижний пискель окна, расстояние по горизонтали от центра в любую сторону на высоте этого пикселя, до изменения цвета пикселя, умноженное на два и будет шириной окна. А дальше всё совсем просто. Советую сначала на бумаге картинку нарисовать - так нагляднее...
Black Fregat
 Аватар для Black Fregat
1353 / 983 / 215
Регистрация: 31.05.2009
Сообщений: 4,093
31.12.2010, 12:00     Программно найти кнопку в flash'e, подкиньте идею) #12
А на клавиши это окошко не реагирует? Часто флешка позволяет все кликабельные поля обойти клавишей табуляции
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
31.12.2010, 14:50  [ТС]     Программно найти кнопку в flash'e, подкиньте идею) #13
Black Fregat, это первое, что я попробовал. Не любое окно можно клавишей закрыть, так что нужен универсальный подход.

Не по теме:

Вчера вечером нашел небольшой баг в том, что написал, но на исправление ушло много времени, до сих пор алгоритм "долизываю", так что этим окошком еще не занимался, скорее всего завтра буду пробовать.



Добавлено через 1 минуту

Не по теме:

совсем забыл, ВСЕХ С НАСТУАЮЩИМ

Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
31.12.2010, 15:32  [ТС]     Программно найти кнопку в flash'e, подкиньте идею) #14
I 160, это что?

Добавлено через 12 минут
Цитата Сообщение от Black Fregat Посмотреть сообщение
клавишей табуляции
Я с первого раза как-то это не заметил))) Да, действительно, обходидит вообще все, но дело в том, что при разном типе окошек (с картинками, без картинок, с кнопками внутри, без и т.д.) чтоб добраться до крестика, нужно разное кол-во нажатий на tab. Поэтому похоже тоже не вариант.

Добавлено через 15 минут
Я придумал как это использовать. На крестик tab попадает всегда после определенной кнопки управления, а координаты этой кнопки всегда постоянные, так, что можно жать на tab и смотреть на границы этой кнопки (при наведение на нее tab'ом она будет выделена желтым цветом), после того, как эта кнопка выделелась, остается нажать 1 раз.
)))
Black Fregat, спасибо!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2011, 11:23     Программно найти кнопку в flash'e, подкиньте идею)
Еще ссылки по теме:

C++ Подкиньте идею
Подкиньте задачку C++
Пожалуйста, подкиньте идею для проекта C++

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

Или воспользуйтесь поиском по форуму:
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
07.01.2011, 11:23  [ТС]     Программно найти кнопку в flash'e, подкиньте идею) #15
Кому интересно, что получилось, загляните в тему )))
Yandex
Объявления
07.01.2011, 11:23     Программно найти кнопку в flash'e, подкиньте идею)
Ответ Создать тему
Опции темы

Текущее время: 23:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru