Автокликер Clickermann :: Форум
Основной раздел => Использование => Topic started by: Коля on February 15, 2014, 09:16:25 AM
-
#name "New Script"
// begin your script here
// помещение текущего снимка экрана в буфер программы
getscreen
// --- конструкция поиска пикселя в буфере экрана ---
if_pixel_in(0, 0, $_xmax, $_ymax, 10620298)
// если пиксель заданного цвета найден, его координаты будут помещены в системные переменные
print("Цвет обнаружен в координатах: ", $_return1, ,":", $_return2)
WAIT(2)
// ... а можно сразу кликнуть по нему левой кнопкой мыши
lclick($_return1, $_return2)
MOVE(83,522)
// блок else (вместе с кодом) не обязателен
else
// если ничего не найдено, выводим сообщение
print("ничего не найдено")
WAIT(5)
getscreen
if_pixel_in(0, 0, $_xmax, $_ymax, 6867438)
if_pixel_in(0, 0, $_xmax, $_ymax, 6212343)
if_pixel_in(0, 0, $_xmax, $_ymax, 7790331)
if_pixel_in(0, 0, $_xmax, $_ymax, 5752311)
if_pixel_in(0, 0, $_xmax, $_ymax, 5948917)
if_pixel_in(0, 0, $_xmax, $_ymax, 6672632)
if_pixel_in(0, 0, $_xmax, $_ymax, 5492990)
MOVE(1117,11)
wait(3)
lclick(1117, 11)
WEIT(15)
// конец условия
end_if
Сценарий вообще должен быть такой:
находит пиксель -> клик по нему (если нет прокрутка вниз и снова ищет)->(ссылка пропадает появляется кружок) ищет этот пиксель-> клик по пикселю-> ждёт примерно 30 сек->закрывает вкладку->запуск снова.
Проблема в том что когда находит первый искомую ссылку кликает по ней и снова ищет такую же ссылку (в зоне поиска их несколько) а не ищет и кликает по второй ссылке. Что делать?
-
Ну теперь скрипт хотя бы будет работать. Что бы найти несколько ссылок нужно использовать другую функцию и лучше поиск по фрагменту.
getscreen
if_pixel_in(0,0, $_xmax,$_ymax, 10620298)
lclick($_return1, $_return2)
MOVE(83,522)
else
print("ничего не найдено")
WAIT(5)
getscreen
if_pixel_in(0,0, $_xmax,$_ymax, 6867438,6212343,7790331,5752311,5948917,6672632,5492990)
WAIT(1)
lclick($_return1, $_return2)
WAIT(25)
MOVE(1117,11)
WAIT(3)
lclick(1117,11)
WAIT(15)
end_if
end_if
-
Спасибо. Я наверное не правильно поставил вопрос... Скрипт находит и кликает по "синей" надписи, она пропадает а вместо нее появляется "желтый" кружок, должен кликнуть по нему но не кликает потому что опять ищет "синюю" надпись и кликает по ней. Надписей таких в зоне поиска несколько. Мне нужно что бы нашел "синюю" надпись ->клик по ней-> поиск "желтого" кружка-> клик по нему. Что сделать что бы переставал искать "синю" надпись когда найдёт и начинал искать "желтый" кружок?
-
Можно использовать циклический поиск синей надписи, если найдет кликнет по ней и перейдет к другому циклу поиска желтого. Нужно только правильно указать область поиска и цвета (0,0, $_xmax,$_ymax, 255)
$check = 0
WHILE($check = 0) // цикл поиска синей надписи
GETSCREEN
IF_PIXEL_IN(0,0, $_xmax,$_ymax, 255)
$check = 1
LCLICK($_return1, $_return2)
WAITMS(500)
ELSE
WAITMS(50)
END_IF
END_CYC
$check = 0
WHILE($check = 0) // цикл поиска желтой надписи
GETSCREEN
IF_PIXEL_IN(0,0, $_xmax,$_ymax, 255)
$check = 1
LCLICK($_return1, $_return2)
WAITMS(500)
ELSE
WAITMS(50)
END_IF
END_CYC
-
Вот немного доделал этот вариант. Для идеальной работы не хватает что бы когда прокрутка колёсиком мыши доходила до конца страницы и ссылок больше нет->нажимались кнопки PgUp->F5 и всё начиналось заново. Может есть какой нибудь счетчик прокруток или еще одно условие вставить на поиск полоски для прокрутки в определённом месте экрана?
getscreen
if_pixel_in(0,0, $_xmax,$_ymax, 10620298)
lclick($_return1, $_return2)
MOVE(83,522)
else
WHEELDOWN(2)
print("ничего не найдено")
end_if
WAIT(5)
getscreen
if_pixel_in(0,0, $_xmax,$_ymax, 6867438,6212343,7790331,5752311,5948917,6672632,5492990)
WAIT(1)
lclick($_return1, $_return2)
WAIT(10)
lclick(56, 391)
end_if
-
Уже разобрался с вопросом обновления. Возникла ещё проблема: после нажатия на "желтый" кружок, открывается пустая вкладка (с надписью типа уже просмотрено). Как сделать что бы в таком случае вкладка закрывалась а главная страница обновлялась? Вот что у меня:
getscreen
if_pixel_in(0,0, $_xmax,$_ymax, 10620298)
lclick($_return1, $_return2)
MOVE(83,522)
else
WHEELDOWN(3)
WAIT(1)
getscreen
WAITMS(500)
if_pixel_in(1200, 839, 1279, 932, 14211288) // синя ссылка
KEYPRESS(#PAGEUP)
WAITMS(1000)
KEYPRESS(#F5)
end_if
print("ничего не найдено")
end_if
WAIT(2)
getscreen
if_pixel_in(0,0, $_xmax,$_ymax, 6867438,6212343,7790331,5752311,5948917,6672632,5492990) //желтая кнопка
WAIT(1)
lclick($_return1, $_return2)
WAIT(20)
MOVE(1117,11)
WAIT(2)
lclick(1117,11)
Wait(1)
getscreen
wait(1)
if_pixel_in(469, 178, 616, 194, 0) // просит подтвердить действие
if_pixel_in(1232, 111, 3085291) // просмотренная ссылка
wait(1)
MOVE(1117, 11)
wait(1)
lclick(1117, 11)
wait(1)
KEYPRESS(#F5)
end_if
wait(1)
lclick(541, 184)
end_if
WAIT(10)
lclick(56, 391)
end_if
-
Не верный код! У зоны поиска должно быть 4 числа, далее следуют цвета.
if_pixel_in(1232, 111, 3085291) // просмотренная ссылка
Думую тебе нужно познакомиться с функцией IF_PICTURE_IN
-
Не верный код! У зоны поиска должно быть 4 числа, далее следуют цвета.
if_pixel_in(1232, 111, 3085291) // просмотренная ссылка
Думую тебе нужно познакомиться с функцией IF_PICTURE_IN
После того как поменял координаты поиска, скрипт не так работает. Что в нем не так?
Это должен бы быть анализ вкладки если после нажатия кнопки закрытия вкладки появится диалоговое окно (закрыть или остаться), и если просматривал ссылку. Что-то эта часть у меня не работает.
lclick(1117,11) //закрыть вкладку
Wait(1)
getscreen
wait(1)
if_pixel_in(469, 178, 616, 194, 0) //подтвердить действие
if_pixel_in(1218, 103, 1237, 115, 3085291) //уже просматривал
wait(1)
MOVE(1117, 11)
wait(1)
lclick(1117, 11)
wait(1)
lclick(56, 391)
wait(1)
lclick(75, 42)
end_if
wait(1)
lclick(541, 184)
end_if
-
Не нужно ставить задержку после getscreen. Возможно задержка слишком маленькая после клика "Закрыть вкладку". А возможно неверно заданы цвета. смысл кода вроде правильный, сложно сказать почему не работает, тебе там виднее.
-
Теперь работает но я попробовал вставить команду GOTO, что бы если выполнялось конкретное действие, скрипт начинался сначала. Подскажите что я сделал не так
Begin:
getscreen
if_pixel_in(0,0, $_xmax,$_ymax, 10620298)
lclick($_return1, $_return2)
MOVE(83,522)
else
WHEELDOWN(4)
WAIT(1)
getscreen
if_pixel_in(1269, 900, 1279, 965, 14211288)
KEYPRESS(#HOME)
WAIT(1)
KEYPRESS(#F5)
WAIT(6)
end_if
print("ничего не найдено")
WAIT(3)
if_pixel_in(0,0, $_xmax,$_ymax, 6867438,6212343,7790331,5752311,5948917,6672632,5492990)
WAIT(1)
lclick($_return1, $_return2)
wait(3)
getscreen
if_pixel_in(1218, 103, 1237, 115, 3085291)
wait(1)
MOVE(1117, 11)
wait(1)
lclick(1117, 11)
wait(1)
lclick(70, 505)
wait(1)
KEYPRESS(#F5)
wait(3)
goto(Begin:)
end_if
WAIT(25)
MOVE(1117,11)
WAIT(2)
lclick(1117,11)
wait(2)
getscreen
if_pixel_in(469, 178, 616, 194, 0)
wait(1)
lclick(541, 184)
WAIT(10)
lclick(56, 391)
end_if
-
Двоеточие в конце обозначает метку, у самого ГОТО двоеточие не ставится!
goto(Begin)