Есть простая капча в которой меняются картинки (их 5 шт). Раньше нужно было посчитать каких картинок меньше на ту и кликнуть.
Делал очень примитивно, но работало...
WAIT(5)
// поиск изображения Img.bmp в области 700,400 - 1200,700
GETSCREEN
COLORMODE(6)
scanpicture($var, 700,400, 1200,700, "Img.bmp")
WAIT(1)
// вывод массива, содержащего результаты поиска
while (arrsize($var) > 0)
$y = arrpop($var)
$x = arrpop($var)
end_cyc
LOGWRITE ("найдены координаты ",$x,":", $y)
GETSCREEN // Clickermann помещает в свой графический буфер скриншот экрана
COLORMODE(6) // Применяет к этому скриншоту режим COLORMODE
SCREENSHOTFIX($x,$y+50, $x+40, $y+90, "1.bmp") // Сохроняет скриншот 1 картинки
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN ($x+50,$y+50,$x+240,$y+100, "1.bmp", -1, 93) //поиск картинки
WAITMS(500)
GETSCREEN // Clickermann помещает в свой графический буфер скриншот экрана
COLORMODE(6) // Применяет к этому скриншоту режим COLORMODE
SCREENSHOTFIX($x+45,$y+45, $x+90, $y+90, "2.bmp")
WAITMS(500)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN ($x+90,$y+45, $x+240,$y+100, "2.bmp", -1, 93) //поиск картинки
WAITMS(500)
GETSCREEN // Clickermann помещает в свой графический буфер скриншот экрана
COLORMODE(6) // Применяет к этому скриншоту режим COLORMODE
SCREENSHOTFIX($x+95,$y+45, $x+140,$y+90, "3.bmp")
WAITMS(500)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN ($x+140,$y+40,$x+240,$y+100, "3.bmp", -1, 93) //поиск картинки
WAITMS(500)
GETSCREEN // Clickermann помещает в свой графический буфер скриншот экрана
COLORMODE(6) // Применяет к этому скриншоту режим COLORMODE
SCREENSHOTFIX($x+140,$y+40,$x+190,$y+90, "4.bmp")
WAITMS(500)
GETSCREEN
COLORMODE(6)
WAITMS(500)
IF_PICTURE_IN ($x,$y+40, $x+140,$y+90, "4.bmp", -1, 93) //поиск картинки
GETSCREEN // Clickermann помещает в свой графический буфер скриншот экрана
COLORMODE(6) // Применяет к этому скриншоту режим COLORMODE
SCREENSHOTFIX($x+190,$y+40,$x+240,$y+90, "5.bmp")
WAITMS(500)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN ($x,$y+40, $x+140,$y+90, "5.bmp", -1, 93) //поиск картинки
WAITMS(500)
LCLICK($x+110,$y+60)
LOGWRITE ("найдено 5")
END_IF
ELSE // "ИНАЧЕ"
LCLICK($x+160,$y+60)
LOGWRITE ("найдено 4")
END_IF
ELSE // "ИНАЧЕ"
LCLICK($x+115,$y+65)
LOGWRITE ("найдено 3")
END_IF
ELSE // "ИНАЧЕ"
LCLICK($x+65,$y+65)
LOGWRITE ("найдено 2")
END_IF
ELSE // "ИНАЧЕ"
LCLICK($x+20,$y+70)
LOGWRITE ("найдено 1")
END_IF
Сейчас усложнили задачу:
1. теперь некоторые картинки повёрнуты на 90, 180, 270 градусов и вот никак не найду какой командой мне их перевернуть.
2. иногда картинки зеркально отображены и тоже могут быть повёрнуты на 90, 180, 270 градусов, тоже не найду какой командой сделать зеркальное отображение картинки перед поиском.