4
« on: January 21, 2014, 10:01:02 PM »
Мне нужно найти определённый пиксель на экране и два раза кликнуть на него, но если с ним рядом есть другой пиксель, то его нужно просто пропустить. В этом и заключается проблема, так как поиск всегда идёт с верхнего левого угла. Я попробовал реализовать это так:
GETSCREEN
IF_PIXEL_IN(70,150, 1510,848, 7423) // поиск нужно пикселя
IF_PIXEL_IN($_return1-20, $_return2-20, $_return1, $_return2, 44543) // плохой пиксель
goto(skip) // идём искать ниже $_return1, $_return2
Else
dbLCLICK($_return1, $_return2) // нажимаем, если рядом никого нет
END_IF
END_IF
skip:
GETSCREEN
IF_PIXEL_IN(70,$_return2+20, 1510,848, 7423) // ищем ниже от предыдущего, неподошедшего пикселя
IF_PIXEL_IN($_return1-20, $_return2-20, $_return1, $_return2, 44543) // вдруг плохой снова рядом
WAITms(50)
Else
dblclick($_return1, $_return2)
END_IF
END_IF
Но таких может быть много на экране и получается нужно делать около 10 таких поисков, а как упростить не знаю.
Но это ещё ладно, дело в том, что всё поле, по которому идёт поиск, у меня на экране не умещается и я разбил его на 3 части, после каждого поиска пикселя, бот кликает на следующий участок и начинает поиск заново. И тут возникает проблема, если на первом участке все пиксели заняты, то есть имеют рядом с собой нежелательный пиксель, то он зацикливается и просто проводит повтор по первой части экрана сверху донизу, и так постоянно. В общем, помогите мне упростить поиск.