Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Pleich on November 15, 2015, 06:48:48 PM
-
В общем написал небольшой скрипт. Открывается окно, и там далее вводятся данные. Написал кусочек скрипта, что если окно не загрузилось, то ничего не делается, как только окно загрузилось, действия продолжаются.
Реализовал это через функцию $clr = PXL(x,y) и циклы. Нашел точку в этом окне , посмотрел ее цвет. Пока окно не откроется, цвет пикселя не совпадет. Сделано для компа который тупит, и что б скрипт раньше времени не начал работу, сначала надо что бы окно загрузилось.
Вот кусок кода
for ($l=1,$l<10000)
$clr = PXL(516,109)
if ($clr=10188629) //если окно открылось, то цвет совпадет и цикл for закончится за cчет $l=10000
$l=10000
else // если окно не открылось , делаем ожидание 50 мс, и пробуем еще раз сравнивать цвета
WAITMS(50)
inc($l, 1)
end_if
end_cyc
В результате хоть цвет и совпадает, все равно выполняется else. Подскажите пожалуйста где в синктасисе ошибся ??
-
отсутствует GETSCREEN.
в цикле фор, твоя переменная $l наращивается сама по себе, inc($l, 1) лишний.
правильно:
for ($l=1,$l<10000)
GETSCREEN
if (PXL(516,109)=10188629) //если окно открылось, то цвет совпадет и цикл for закончится за cчет $l=10000
$l=10000
else // если окно не открылось , делаем ожидание 50 мс, и пробуем еще раз сравнивать цвета
WAITMS(50)
end_if
end_cyc
но правильнее будет взять скрипт из шаблона: циклы, условия - ожидание цвета.
// Ждем появления цвета 255 по координате 100,100
GETSCREEN
WHILE(PXL (100, 100) ! 255) // цикл задерживает скрипт пока не появится заданный цвет
WAITMS (100)
GETSCREEN
END_CYC
немного подправил
-
Где тут спасибо сказать ? :) :)