Автокликер Clickermann :: Форум

Основной раздел => Использование => Topic started by: Oleg on April 14, 2013, 12:34:48 AM

Title: Поиск и клик по картинке! ПОМОГИТЕ!
Post by: Oleg on April 14, 2013, 12:34:48 AM
Всем здравствуйте! ;)
Помогите, пожалуйста, с написанием скрипта! Принцип работы такой:
Изначально есть четыре разных картинки. Нужно, чтобы скрипт каждые пять секунд анализировал один кусок веб - странички и, если находил одну из четырех картинок, нажимал по такой же только в другом куске странички.
При нажатии на предложную картинку страничка обновляется и, опять таки, через пять секунд появляется другая (одна из тех же четырех) картинка, по которой, такой же самой, нужно нажать в другой области странички. И так по кругу до бесконечности...
Можно ли такое организовать в Clickermann’е с помощью скрипта? Так-как в программированию я слаб, хотелось бы посмотреть на подобный скрипт с построчным объяснением кода. И тогда, к примеру, научиться самому писать ::)
Буду очень благодарен за помощь!

Извиняюсь, если не доходчиво изложил! :) Прикрепляю ещё картинку, может поможет...
(http://s6.hostingkartinok.com/uploads/images/2013/04/373e2c00788250202d2f707382f75777.png) (http://hostingkartinok.com)
Title: Re: Поиск и клик по картинке! ПОМОГИТЕ!
Post by: Oraven on April 14, 2013, 06:35:32 AM
300,300, 400,400 - это зона поиска появляющейся картинки. Верхний правый и нижний левый углы зоны.
600,600, 800,800 - это зона 4х картинок
Тебе нужно создать 4 бмпшки и поместить их в папку со скриптом. Размер их должен быть меньше 50х50 пикс это ускорит поиск.
Скрипт работает следующим образом:
Ищется первая картинка, если найдено то ищется та же картинка но в другой зоне, далее клик и ожидание. Ждать 5 сек нет нужды, вполне достаточно пол секундной задержки. Иначе картинки появятся на экране а кликер будет неизвестно чего ждать 5 сек.
Если картинка картинка 1.bmp вообще не найдена значит идет альтернатива Else, а там те же условия с функциями но для картинки 2. Координаты все теже, и тд. После успешного нахождения картинки и клика скрипт начнется с начала.

Code: (clickermann) [Select]
WAITMS(500) // общая задержка в полсекунды
GETSCREEN // снимок экрана в буфер для анализа
IF_PICTURE_IN (300,300, 400,400, "картинка 1.bmp") // поиск появившейся картинки 1
   IF_PICTURE_IN (600,600, 800,800, "картинка 1.bmp") // если она найдена то ищем такую же в 4х вариантах
      LCLICK($_return1+2, $_return2+2) // кликаем по возвращенным координатам со смещением +2 пикс по XY
      WAIT(1) // после клика ждем 1 сек и продолжаем
   END_IF
Else
   GETSCREEN
   IF_PICTURE_IN (300,300, 400,400, "картинка 2.bmp")
      IF_PICTURE_IN (600,600, 800,800, "картинка 2.bmp")
         LCLICK($_return1+2, $_return2+2)
         WAIT(1)
      END_IF
   Else
      GETSCREEN
      IF_PICTURE_IN (300,300, 400,400, "картинка 3.bmp")
         IF_PICTURE_IN (600,600, 800,800, "картинка 3.bmp")
            LCLICK($_return1+2, $_return2+2)
            WAIT(1)
         END_IF
      Else
         GETSCREEN
         IF_PICTURE_IN (300,300, 400,400, "картинка 4.bmp")
            IF_PICTURE_IN (600,600, 800,800, "картинка 4.bmp")
               LCLICK($_return1+2, $_return2+2)
               WAIT(1)
            END_IF
         END_IF
      END_IF
   END_IF
END_IF
Title: Re: Поиск и клик по картинке! ПОМОГИТЕ!
Post by: Oraven on April 14, 2013, 06:44:23 AM
И еще, когда делаешь картинку для поиска, её нужно проверить. находит ли её кликер на экране. Это делается отдельным скриптом для теста.

Находит картинку и перемещает в это место курсор а также записывает координаты в лог
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "somefile.bmp")
   print("Найден в координатах X=", $_return1, ", Y=", $_return2)
   MOVE($_return1, $_return2)
Else
   HINTPOPUP("Не найдено")
END_IF
HALT
Title: Re: Поиск и клик по картинке! ПОМОГИТЕ!
Post by: Oleg on April 14, 2013, 03:26:44 PM
Здравствуйте, Oraven! :) Огромное Вам спасибо за ответ!
Решил пока не трогать первый скрипт, а начал с второго. Хотя с первым вроде разобрался, все достаточно просто ;)
Так вот, загвоздка в том, что второй скрипт находит на страничке только маленькие картинки (размером меньше 50х50), а большие почему-то не хочет...
Размеры больших картинок, как Вы и говорили, нужно уменьшить до 50х50, что в свою очередь и ускорит процесс поиска. Я так и сделал! Уменьшил картинку и сохранил её в расширении BMP с параметром 24 бит. Тут сразу и вопрос: что не так?
У меня в голове была мысль, что при уменьшении теряется качество изображения, вот поэтому скрипт и не находит картинку. Так дело в том, что и большие, стандартные изображения тоже не находит...   
Title: Re: Поиск и клик по картинке! ПОМОГИТЕ!
Post by: Vint on April 14, 2013, 03:47:06 PM
Уменьшать, как ты делаешь нельзя. Имелось ввиду - картинка не должна быть большая. Нужно вырезать фрагмент.
Программа при поиске сравнивает попиксельно.
Title: Re: Поиск и клик по картинке! ПОМОГИТЕ!
Post by: Oleg on April 14, 2013, 05:15:47 PM
Все равно не понял :-[
Картинка не должна быть по массе большая, или по размеру?
И как это попиксельно?
Т.е. нужно вырезать фрагмент картинки, отделить его от фона и сохранить? В данном случае от белого фона, или как?
(http://s6.hostingkartinok.com/uploads/images/2013/04/227ef6d01725f356e89d34cf4496b5b2.jpg) (http://hostingkartinok.com)
Тугодум я конечно :o
Title: Re: Поиск и клик по картинке! ПОМОГИТЕ!
Post by: Vint on April 14, 2013, 06:14:39 PM
Вырежи кусочек типа такого...
Только на любом этапе не используй Jpeg и другие форматы с потерями. Начиная от скриншота и заканчивая подготовленной картинкой.
Title: Re: Поиск и клик по картинке! ПОМОГИТЕ!
Post by: Oraven on April 14, 2013, 07:58:37 PM
Уменьшать картинки О_о до такого еще надо додуматься...
Кликер сравнивает пикселы в картинке с пикселами на экране поэтому масштаб картинки должен быть 1:1 менять размер нельзя!
Например если ты сделал картинку 200х300 то в ней будет 60000 пикселов! Кликер ищет верхний левый пиксел картинки на экране и если находит начинает сравнивать всю картинку, все 60000 пикселов это долго. Но если в твоей картинке всего 4х4 то это всего 16 пикс и анализ пойдет куда быстрее. Ну естественно нужно подобрать для картинки узнаваемое место.
Как только картинка найдена возвращаются координаты её верхнего левого угла в переменные $_return1 и $_return2


Title: Re: Поиск и клик по картинке! ПОМОГИТЕ!
Post by: Oleg on April 15, 2013, 05:54:25 PM
Vint, Oraven, огромное Вам спасибо! Проблему с поиском картинки я решил :) Изначально совсем не так делал, а теперь наконец-то научился!
НО... Да, картинку находит. Вот только ту, что находиться в левой области странички, а в области тех четырех - НЕТ! Оказывается, я с самого начала ввел себя и Вас в заблуждение :-[ Моя вина, извините!
Так вот, область с четырьмя картинками - это всего лишь одна картинка, на которой размещено ещё четыре.
(http://s6.hostingkartinok.com/uploads/images/2013/04/100bab729528f673d3f4698ab776584d.jpg) (http://hostingkartinok.com)
За которыми прячутся ссылки и только одна из них правильная. Т.е. из тех четырех правильной картинкой (ссылкой) будет та, что появилась в левой области станице.
Ппц! Наверное, вот поэтому скрипт и не находит картинку в правой области, не так ли?
Можно ли все таки обойти как-то это? Или это глухой вариант?
Title: Re: Поиск и клик по картинке! ПОМОГИТЕ!
Post by: Oraven on April 15, 2013, 06:32:30 PM
Опять началась битва экстрасенсов! Может то а может это... Может картинка в левой области отличается от той что в правой? Тогда надо делать 2е пары этой картинки!
Title: Re: Поиск и клик по картинке! ПОМОГИТЕ!
Post by: Vint on April 15, 2013, 09:12:52 PM
могут и отличаться, но скорее всего ты напутал с областью.
(это Олегу)
Title: Re: Поиск и клик по картинке! ПОМОГИТЕ!
Post by: Oleg on April 16, 2013, 10:03:54 PM
Нет! Картинка в левой, и рисунок в правой области странички - идентичны!
Не думаю, что я напутал с зоной поиска. Делал в этой зоне поиск пикселя заданного цвета, все получилось. Значит и область в порядке.
Title: Re: Поиск и клик по картинке! ПОМОГИТЕ!
Post by: Vint on April 17, 2013, 08:25:35 AM
Нет! Картинка в левой, и рисунок в правой области странички - идентичны!
Не думаю, что я напутал с зоной поиска. Делал в этой зоне поиск пикселя заданного цвета, все получилось. Значит и область в порядке.
Было бы всё правильно, то находило бы.
Выложи скриншот всего экрана в формате PNG или BMP, чего гадать...
Не относящееся к теме можешь замазать.
Title: Re: Поиск и клик по картинке! ПОМОГИТЕ!
Post by: Oleg on April 17, 2013, 01:52:40 PM
Вот скрин в оригрнале:
Title: Re: Поиск и клик по картинке! ПОМОГИТЕ!
Post by: Vint on April 17, 2013, 04:08:13 PM
Картинки отличаются!
В местах отмеченных белым цвета чуть изменены. Глазом ты это не увидишь.
Title: Re: Поиск и клик по картинке! ПОМОГИТЕ!
Post by: Vint on April 17, 2013, 04:13:19 PM
Либо делай для левых и для правых отдельно картинки...
Но это может быть сглаживание и отличаются они всегда по разному.
Лучше введи при поиске процент совпадения.
Например:
Code: (clickermann) [Select]
IF_PICTURE_IN (300,300, 400,400, "картинка 1.bmp",-1,80)
здесь должно совпасть не менее 80% пикселов
Title: Re: Поиск и клик по картинке! ПОМОГИТЕ!
Post by: Oraven on April 17, 2013, 09:05:17 PM
Ну и от сюда же следует цветокоррекция с уменьшением количества цветов.
Вот так вроде бы простая задача выливается в сложные манипуляции с картинками...
Title: Re: Поиск и клик по картинке! ПОМОГИТЕ!
Post by: Makkvun on August 29, 2017, 11:19:51 PM
И еще, когда делаешь картинку для поиска, её нужно проверить. находит ли её кликер на экране. Это делается отдельным скриптом для теста.

Находит картинку и перемещает в это место курсор а также записывает координаты в лог
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "somefile.bmp")
   print("Найден в координатах X=", $_return1, ", Y=", $_return2)
   MOVE($_return1, $_return2)
Else
   HINTPOPUP("Не найдено")
END_IF
HALT

У меня картинку находит, но координаты пишет неверные. Пробовал разные картинки в окне и не в окне, результат тот же.
Как решить?
Title: Re: Поиск и клик по картинке! ПОМОГИТЕ!
Post by: fraaa on August 31, 2017, 11:49:07 AM
Интересно зачем искать картинку, если она в одном месте находится? Или я что то пропустил. Пусть кликает каждые 6 сек в одно место и бог с ним!
Title: Re: Поиск и клик по картинке! ПОМОГИТЕ!
Post by: Mozetronick on December 17, 2017, 07:26:58 PM
Бывает что лишние клики вносят непонятки и хаос. Так даже отладку не запустишью чтобы проверить нажималась ли она или лишний раз в пустую нажимала. А если происходят нажатия, может смениться обстановка, обновится страница уже без картинок или одно окно загородит первое.
Картинки отличаются!
Спасибо за наводку как модно сравнить из с помощью Photoshop