Суть этого сценария заключается в том, что он на страницах типа этой
https://vk.com/wall-36231266?offset=20 ищет ссылки на группы ВК и открывает их на новой вкладке, а дальше вступает в группу и т.д. Это только часть сценария (только открываем новую вкладку, в группу не вступает и дальнейшие действия не делает), именно в этой части проблема. Тот момент, о котором я спрашивал нужен для того, чтобы не открывались одни и те же группы по нескольку раз, так как там публикуют свою рекламу по много раз. То есть смотрим на миниатюру, считаем сумму пикселов, если такое уже открывали (такая сумма пикселов уже встречалась), пропускаем. Если смотреть на лог во время работы программы, видно, что цикл бывает крутится либо несколько раз, либо бывает бесконечно (именно в этот момент кажется, что программа остановилась)
$numb_click=WNDFIND ("Clickermann") // определяем номер окна кликера
waitms(10)
SETKBLAYOUT ($numb_click, 1049) // устанавливаем русский для кликера
waitms(100)
$numb_okn=WNDFIND ("google chrome") // определяем номер окна Хрома
waitms(50)
WNDSIZE ($numb_okn, 1380, 742) //устанавливаем размер окна Хрома
waitms(100)
HSET ($numb_okn, 1) // привязываемся к Хрому
waitms(50)
start:
//прокручиваем страницу вниз
LCLICK(1156,329) // кликаем в пустое место страницы
keypress(#down)
waitms(10)
keypress(#down)
waitms(100)
GETSCREEN
IF_PICTURE_IN (415,85, 480,260, "line.bmp",-1,90) //ищем отделяющую линию
//записывем координаты
$x1=$_return1
waitms(10)
$y1=$_return2
WAITMS(100)
else
goto(start) //если не нашли, возвращаемся
END_IF
waitms(50)
GETSCREEN
IF_PICTURE_IN ($x1+10,$y1+10, 1130,730, "like.bmp", -1, 90) //ищем лайк
//записывем координаты
$x2=$_return1
waitms(10)
$y2=$_return2
WAITMS(100)
END_IF
waitms(100)
GETSCREEN
$count1 = PXLCRC ($x1,$y1+12, $x1+10, $y1+20) // считаем сумму пикселов в миниатюре под отделяющей линией
waitms(10)
TFREADARR ("file_mass.txt", $arr) // считываем из текстового файла все предыдущие суммы пикселов и помещаем их в массив
waitms(100)
$v_massive= ARRSIZE($arr) // $v_massive = число элементов в массиве
FOR($a=0,$a<$v_massive) // цикл извлечение элементов массива
waitms(10)
$sravni=INT(ARRPOP($arr))
print($sravni) // извлекается и преобразуется в число последний элемент массива ( массив уменьшается на 1 элемент)
waitms(20)
IF($count1 = $sravni) // сравниваем
goto(start) // если видим совпадение, идем в начало
END_IF
END_CYC
waitms(10)
UNDEFINE($arr) // очищаем массив
waitms(100)
GETSCREEN
IF_picture_IN($x1,$y1, $x2,$y2, "vk.bmp") //ищем ссылку вконтакта
waitms(100)
mclick($_return1+1,$_return2+1) // если нашли ее, открываем на фоновой вкладке
WAITMS(500)
LCLICK(300,30) // кликаем на открытую вкладку
waitms(10)
TFWRITE("file_mass.txt", $control) //записываем в массив сумму пикселов миниатюрки аватара человека, разместившего ссылку
else
goto(start) // идем в начало, если не нашли ссылку
end_if