Сохрани этот скрипт в папку. Создай в этой папке папку Image. В неё помести скриншоты для поиска твоих картинок. Размер должен быть не более 50х50. Формат BMP 24bit
В функции IF_PICTURE_IN укажи область поиска твоих картинок.
Скрипт автоматически получает имена всех картинок из папки Image и в цикле проверяет их на совпадение с тем что на экране.
GETFILELIST($a_im, "Image\*.bmp") // Получаем имена картинок из паки Image
WHILE(1) // бесконечный цикл
GETSCREEN
FOR($i=0,$i<ARRSIZE($a_im))
IF_PICTURE_IN (0,0, 500,500, $a_im[$i], -1, 100) // поиск в области 0,0, 500,500
LCLICK(100,100) // три клика
WAITMS(500)
LCLICK(100,100)
WAITMS(500)
LCLICK(100,100)
WAIT(180) // Пауза на 3 мин
$i=9999 // завершаем цикл
ELSe
WAITMS(50)
END_IF
END_CYC
IF($i!9999) // Одна минута паузы если не было совпадений
WAIT(60)
END_IF
END_CYC
Oraven ,добрый день ,большое спасибо за ответ .
У меня задача немного усложнилась ,добавились еще проверки ,так как я вообще слабо разбираюсь ,я написал простой но громоздкий код.
Как я и говорил ,задача заключается в следующем (опишу так подробно как смогу):
В определенной области экрана есть столбец маленьких картинок,всего в столбце пять картинок , в верхней позиции появляется новая картинка каждые 3 минуты и она сдвигает остальные картинки по позиции вниз , то бишь , та которая была пятой пропадает ,на ее место становится та , которая была на четвертой позиции и так далее .Всего отдельных картинок около 50 есть и они появляются рандомно,меня устраивает 6 из 50 .то бишь , чтобы любая из этих 6 была на первом месте .
Приведу пример визуально
Картинка 1
Картинка 2
Картинка 3
Картинка 4
Картинка 5
ПРОХОДИТ 3 МИНУТЫ
Картинка 6
Картинка 1
Картинка 2
Картинка 3
картинка 4
Проходит 3 минуты
Моя картинка
Картинка 6
Картинка 1
Картинка 2
Картинка 3
И так далее .все продолжает сдвигаться дальше .
Раньше ,надо было просто после появления моей картинки нажать мышкой в 3-х места поочередно .В место А ,место Б и место С .
Сейчас немного усложнилось ,когда я вник в суть.
Сейчас надо проверить ,чтобы моей картинки не было на позиции номер 2 .то бишь , у меня может появится 2 картинки подряд , в таком случае мне не надо нажимать в эти места .
То бишь надо сканировать первое место появление картинки на наличие моей , а второе место появление на отсутствие моей
Правильное условие такого
1 картинка - на этой позиции есть моя картинка ,любая из 6.
2 картинка - а тут находится любая картинка кроме любой моей из 6 .
3картинка
4картинка
5картинка
Такой сценарий не ведет к нажатию
Моя картинка 2
Моя картинка 1
1 картинка
2 картинка
3 картинка
Плюс ,добавилась проблема , даже если все условия выше соблюдены , и я нажимаю на кнопку , то на кнопку можно нажать повторно уже через 3 секунды ,а этого мне не надо . На появление одной моей картинки .надо всего одно нажатие. Можно поставить паузу подсчитанную по времени после нажатия , но проблема в том,что там может идти зависание на +- 10 секунд и со временем эта пауза пропустит круг и собьется.
В голову мне пришел вариант проверки ,то бишь , если все условия выше соблюдены , проходит наш цикл и новый не начинается , пока моя картинку, которая на позиции один не станет на позицию два .
Моя картинка1- (программа нашла мою картинку)
Картинка 1-(программа проверила что нету на второй позиции моей картинки и нажимает на кнопки)
Картинка 2
картинка 3
Картинка 4
После этого , она начинает проверять 2 позицию на наличие "моей картинки1" бесконечное число раз по кругу , пока картинка не переместится.
Картинка7
Моя картинка 1 ( программа увидела ,что картинка переместилась и она запускает весь комплекс сначала )
Картинка 1
Картинка 2
Картинка 3
При этом хочу заметить , если бы произошло смещение вот так ,то нажатия бы не должно было произойти
Моя картинка 2
Моя картина 1( программа увидела ,что моя картинка стала с первого на второе место и запустило все заного )(Но после анализа увидела , что две мои картинки идут подряд и нажатие не произошло)
Картинка 1
Картинка 2
Картинка 3
ниже приведу мой код , который построен с более легких пример этого форума и очень громоздкий. Все более менее работает ,но происходят сбои , и проблема с перемещением картинки с первой позиции на вторую после нажатия я не решил , а поставил ожидание в 170 секунд. Как написать все проще и чтобы работало как часы ) Справочник к программе почитал ,нашел "or" но не знаю , подходит ли он к картинкам.
PS Пожалуйста,когда будете писать код или исправлять , закоментите в коде места , которые помогут мне поглубже вникнуть в суть .
В коде при проверке картинок добавил случайные клики по экрану , чтобы видеть какие части кода исполняются и понимать , что все работает .
WAITMS(500)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,353, 653,402, "1.bmp" )
IF_PICTURE_IN (557,393, 653,433, "1.bmp" )
LCLICK(557,393)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "2.bmp" )
LCLICK(557,353)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "3.bmp" )
LCLICK(390,493)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "4.bmp" )
LCLICK(836, 800)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "5.bmp" )
LCLICK(836, 800)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "6.bmp" )
LCLICK(836, 800)
WAITMS(300)
ELSE
WAIT(1000)
LCLICK(836, 800)
WAITMS(1000)
LCLICK(836, 800)
WAITMS(1000)
LCLICK(1214, 796)
WAITMS(1000)
LCLICK(1214, 796)
WAITMS(1000)
LCLICK(1329, 980)
WAITMS(170000)
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
Else
LCLICK(557,393) /////////
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,353, 653,402, "2.bmp")
IF_PICTURE_IN (557,393, 653,433, "1.bmp" )
LCLICK(557,393)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "2.bmp" )
LCLICK(557,353)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "3.bmp" )
LCLICK(390,493)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "4.bmp" )
LCLICK(836, 800)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "5.bmp" )
LCLICK(836, 800)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "6.bmp" )
LCLICK(836, 800)
WAITMS(300)
ELSE
WAIT(1000)
LCLICK(836, 800)
WAITMS(1000)
LCLICK(836, 800)
WAITMS(1000)
LCLICK(1214, 796)
WAITMS(1000)
LCLICK(1214, 796)
WAITMS(1000)
LCLICK(1329, 980)
WAITMS(170000)
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
Else
LCLICK(836, 800) /////
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,353, 653,402, "3.bmp")
IF_PICTURE_IN (557,393, 653,433, "1.bmp" )
LCLICK(557,393)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "2.bmp" )
LCLICK(557,353)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "3.bmp" )
LCLICK(390,493)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "4.bmp" )
LCLICK(836, 800)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "5.bmp" )
LCLICK(836, 800)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "6.bmp" )
LCLICK(836, 800)
WAITMS(300)
ELSE
WAIT(1000)
LCLICK(836, 800)
WAITMS(1000)
LCLICK(836, 800)
WAITMS(1000)
LCLICK(1214, 796)
WAITMS(1000)
LCLICK(1214, 796)
WAITMS(1000)
LCLICK(1329, 980)
WAITMS(170000)
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
Else
LCLICK(557,393) ////////
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,353, 653,402, "4.bmp")
IF_PICTURE_IN (557,393, 653,433, "1.bmp" )
LCLICK(557,393)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "2.bmp" )
LCLICK(557,353)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "3.bmp" )
LCLICK(390,493)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "4.bmp" )
LCLICK(836, 800)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "5.bmp" )
LCLICK(836, 800)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "6.bmp" )
LCLICK(836, 800)
WAITMS(300)
ELSE
WAIT(1000)
LCLICK(836, 800)
WAITMS(1000)
LCLICK(836, 800)
WAITMS(1000)
LCLICK(1214, 796)
WAITMS(1000)
LCLICK(1214, 796)
WAITMS(1000)
LCLICK(1329, 980)
WAITMS(170000)
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
Else
LCLICK(836, 800) //////////
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,353, 653,402, "5.bmp")
IF_PICTURE_IN (557,393, 653,433, "1.bmp" )
LCLICK(557,393)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "2.bmp" )
LCLICK(557,353)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "3.bmp" )
LCLICK(390,493)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "4.bmp" )
LCLICK(836, 800)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "5.bmp" )
LCLICK(836, 800)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "6.bmp" )
LCLICK(836, 800)
WAITMS(300)
ELSE
WAIT(1000)
LCLICK(836, 800)
WAITMS(1000)
LCLICK(836, 800)
WAITMS(1000)
LCLICK(1214, 796)
WAITMS(1000)
LCLICK(1214, 796)
WAITMS(1000)
LCLICK(1329, 980)
WAITMS(170000)
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
Else
LCLICK(557,393) ///////////
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,353, 653,402, "6.bmp")
IF_PICTURE_IN (557,393, 653,433, "1.bmp" )
LCLICK(557,393)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "2.bmp" )
LCLICK(557,353)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "3.bmp" )
LCLICK(390,493)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "4.bmp" )
LCLICK(836, 800)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "5.bmp" )
LCLICK(836, 800)
WAITMS(300)
ELSE
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (557,393, 653,433, "6.bmp" )
LCLICK(836, 800)
WAITMS(300)
ELSE
WAIT(1000)
LCLICK(836, 800)
WAITMS(1000)
LCLICK(836, 800)
WAITMS(1000)
LCLICK(1214, 796)
WAITMS(1000)
LCLICK(1214, 796)
WAITMS(1000)
LCLICK(1329, 980)
WAITMS(170000)
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
Else
LCLICK(645, 753)
WAITMS(10000) //////
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
Всем заранее спасибо за помощь !)