Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
12 / 1 / 3
Регистрация: 26.06.2016
Сообщений: 87

Найти в указанном регионе экрана пиксель нужного цвета

11.05.2017, 22:01. Показов 3061. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Судя по названию темы задача думаю понятна. Я попробовал реализовать решение, используя библиотеку autoit, а именно через pixelsearch. Но столкнулся с проблемой... Дело в том, что данным способом не получается работать с областью экрана где применяется флеш или анимация. Попробовал выполнить эту задачу с помощью автокликер Кликерманн и он успешно с ней справился

Добавлено через 23 минуты
Пожалуй начну с начала. Я решил попробовать написать бот для браузерной онлайн игры, где во многих местах используется флеш. Тыкать по неподвижным объектам труда не составило, а вот чтобы кликнуть по движущемуся животному решил по аналогии с Кликерманном искать пиксель с редко встречающимся цветом, который имеется у нужного мне моба, в заданном регионе экрана. Бродил по сети и наткнулся на библиотеку аутоит. Но к моему великому сожалению с поиском пикселя нужного цвета в указанном регионе она не справляется ((

Добавлено через 5 минут
Подскажите пожалуйста как мне решить эту проблему? Может нужно смотреть в другую сторону? Может есть какой-то способ выкрвырять данные о местоположении нужного животного из флеша? И может как-то можно узнавать текущее количество жизней у моба после того как персонаж ударит его?

Добавлено через 26 минут
А может можно сделать скриншот экрана, затем поместить его в битмап, указав границы региона, где нужно искать пиксель указанного цвета и потом через 2 цикла попиксельно проверять цвет каждого пикселя и сравнивать и с искомым? Только вот возник вопрос, когда сделается скриншот прежде чем поместить его в битмап, нужно ли его сохранять в промежуточный файл или его прямо из оперативной памяти можно в битмап загнать и дальше там с ним работать?

Добавлено через 26 минут
Все так сложно что никто не может помочь?

Добавлено через 3 часа 30 минут
Апп
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.05.2017, 22:01
Ответы с готовыми решениями:

Пиксель экрана
а можно написать код, который смог бы сделать так, чтобы определенный пиксель экрана был, скажем, зеленого цвета? идеи сделать его битым не...

Заменить пиксель одного цвета другим цветом
Есть задумка, есть изображение на белом фоне какая то фигура красного цвета, надо определенное количество пикселей (переменное число)...

Если в определенной точке пиксель такого-то цвета то
На форуме находил темы, по поводу как получить цвет пикселя, но мне нужно чтоб если он находил определенный цвет в определенном пикселе то,...

7
 Аватар для iDReeM
64 / 68 / 18
Регистрация: 21.10.2015
Сообщений: 228
12.05.2017, 00:47
твоя затея - дрочить ногами.

1) делать скриншот всего экрана - нет необходимости, тебе нужно анализировать только окошко игры.
• так идентифицируй его и у твоей программе придется обрабатывать ощутимо меньше данных.

2) не надо сравнивать 1 ПИКСЕЛЬ. никогда. серьезно, не делай так никогда.он может тупо совпадать неограниченное количество раз.

делаешь скрин на котором видно животное, выделяешь кусок скрина с набором пикселей, которые идентифицируют это и только это животное.

• разбиваешь последующие снимки на куски такого же размера, перебираешь и сверяешь if(bitmapScreenGame[i] == bitmap_animal)

так же, стоит понимать, что для быстрого времени выполнения, тебе придется работать в несколько потоков. чтобы многократно ускорить поиск. (поясняю, разбил изображение на моссив изображений кусками, передал разные куски в разные потоки и пусть сканирует себе, когда хоть 1 поток нашел результат ставить остальные в ожидание)

3) слать нажатия - только в конкретное окно. никаких mouse_event, keybd_event, если ты хочешь чтобы бот мог работать в автономном режиме (допустим если игра свернута) придется переходить на SendMessage.
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
12.05.2017, 04:45
Цитата Сообщение от Futtoto Посмотреть сообщение
Судя по названию темы задача думаю понятна
Если честно, то не очень!
Цитата Сообщение от Futtoto Посмотреть сообщение
написать бот для браузерной онлайн игры
Вот тут уже начинает проясняться!

Сложно, конечно, советовать не зная всех нюансов задачи... Но лично я бы начал с анализа трафика. Ведь животные (или кто там в этой игре присутствует) появляются не просто так, а, скорее всего, сервер указывает клиенту где кого расположить... Опять же, при клике на животном, клиент отправляет какие то данные на сервер, чтобы тот знал, что игрок кликнул куда надо. Вполне возможно, что положение моба вообще не имеет значения.

Добавлено через 5 минут
Т.е. я хочу сказать, что решать эту задачу следует совсем с другой стороны! И оперировать объектами в игре, а не пикселями на экране!
0
 Аватар для iDReeM
64 / 68 / 18
Регистрация: 21.10.2015
Сообщений: 228
12.05.2017, 11:28
Цитата Сообщение от Shogun31337 Посмотреть сообщение
Сложно, конечно, советовать не зная всех нюансов задачи... Но лично я бы начал с анализа трафика. Ведь животные (или кто там в этой игре присутствует) появляются не просто так, а, скорее всего, сервер указывает клиенту где кого расположить... Опять же, при клике на животном, клиент отправляет какие то данные на сервер, чтобы тот знал, что игрок кликнул куда надо. Вполне возможно, что положение моба вообще не имеет значения.
шифрованию пакетов учат даже доярок на селе, так что снифами в лужу пердеть, не более. Максимум что тут можно, узнать куда клиент принимает данные и собирать их от туда.

Добавлено через 3 минуты
Цитата Сообщение от Shogun31337 Посмотреть сообщение
Т.е. я хочу сказать, что решать эту задачу следует совсем с другой стороны! И оперировать объектами в игре, а не пикселями на экране!
это флеш плеер детка, объектами в игре? там что? DirectX? ты можешь текстуры перехватить? нет. там спрайты дорогой друг. самые добрые, древние спрайты. предлагаешь ему дампить модули подгружаемые флешплеером и тянутся за объектами в памяти? бред, он закалупается искать динамику и забьет через пару дней.
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
12.05.2017, 17:21
Цитата Сообщение от iDReeM Посмотреть сообщение
шифрованию пакетов учат даже доярок на селе, так что снифами в лужу пердеть, не более. Максимум что тут можно, узнать куда клиент принимает данные и собирать их от туда.
И откуда уверенность, что там зашифровано? Попробовать то можно! Руки за это никто не оторвет! Тем более, я же не сказал, что это единственно верный и, тем более, самый простой вариант решения задачи. Я сказал, что ЛИЧНО Я бы начал именно с этой стороны. Кроме того, при желании можно и расшифровать.
Цитата Сообщение от iDReeM Посмотреть сообщение
ты можешь текстуры перехватить?
А на кой мне текстуры??? Я имел в виду самих мобов, а не их графическое представление на экране!
Цитата Сообщение от iDReeM Посмотреть сообщение
он закалупается искать динамику и забьет через пару дней.
Это уже личное дело каждого, вопрос личной мотивации и уровня знаний! И если кто то не способен реализовать данный метод, то это вовсе не значит, что он не работоспособен в принципе!
0
 Аватар для iDReeM
64 / 68 / 18
Регистрация: 21.10.2015
Сообщений: 228
13.05.2017, 02:17
Цитата Сообщение от Shogun31337 Посмотреть сообщение
И откуда уверенность, что там зашифровано? Попробовать то можно! Руки за это никто не оторвет! Тем более, я же не сказал, что это единственно верный и, тем более, самый простой вариант решения задачи. Я сказал, что ЛИЧНО Я бы начал именно с этой стороны. Кроме того, при желании можно и расшифровать.
пробовать даже смысла нету, 120% вероятности даю что до него пробовали. шифруют запросы всегда, с солью, так что чтобы разшифровать придется помучатся.
Цитата Сообщение от Shogun31337 Посмотреть сообщение
А на кой мне текстуры??? Я имел в виду самих мобов, а не их графическое представление на экране!
так ему и нужно графическое представление мобов на экране.
Цитата Сообщение от Shogun31337 Посмотреть сообщение
И если кто то не способен реализовать данный метод, то это вовсе не значит, что он не работоспособен в принципе!
я не говорил про работоспособность) я подметил сложность реализации в виде факторов защитных мер, используемых всеми играми без исключения.
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
13.05.2017, 04:38
Цитата Сообщение от iDReeM Посмотреть сообщение
подметил сложность реализации
Ну так а кто говорил, что будет легко?
Цитата Сообщение от iDReeM Посмотреть сообщение
так ему и нужно графическое представление мобов на экране
Да? Возможно, я просто неверно понял смысл задачи. Подумал, что раз бот нужен, то графика то особо и ни к чему. Главное знать знать куда ткнуть и как то это имитировать...
0
 Аватар для iDReeM
64 / 68 / 18
Регистрация: 21.10.2015
Сообщений: 228
13.05.2017, 07:42
Цитата Сообщение от Shogun31337 Посмотреть сообщение
Подумал, что раз бот нужен, то графика то особо и ни к чему
исходя из данных которые есть, ему нужно определять позицию мобов на экране и кликать по ним.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.05.2017, 07:42
Помогаю со студенческими работами здесь

Проверить, попал ли пиксель RGB-цвета в диапазон нужных цветов
Есть программа, которая смотрит в координаты и сверяет цвет пикселя в этих координатах с диапазон цветов указанных в коде и если цвет...

Рандомное движение курсора мыши вне формы при попадании на пиксель определенного цвета
Здравствуйте, можно ли реализовать рандомное движение мыши вне формы и нажатие мыши, при наведении на определенный цвет?

Нарисовать с помощью отдельных точек синусоиду зеленого цвета в центре экрана на всю ширину экрана
Нарисовать с помощью отдельных точек синусоиду зеленого цвета в центре экрана на всю ширину экрана. Использовать оператор условия.

Выведите 200 символов '*' случайного цвета в точки экрана со случайными координатами. Фон экрана-черный
Помогите написать программу. Выведите 200 символов '*' случайного цвета в точки экрана со случайными координатами. Фон экрана-черный.

Как сделать так, что-бы при вводе заглавной буквы цвета, изменялся определенный пиксель?
Я напечатал код который (по идее) ввода заглавной буквы с клавиатуры должен изменять цвет определённой ячейки в строке, но при...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru