Автокликер Clickermann :: Форум

Основной раздел => Использование => Topic started by: Коля on February 15, 2014, 09:16:25 AM

Title: Помогите со скриптом для кликов
Post 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 сек->закрывает вкладку->запуск снова.
Проблема в том что когда находит первый искомую ссылку кликает по ней и снова ищет такую же ссылку (в зоне поиска их несколько) а не ищет и кликает по второй ссылке. Что делать?   
Title: Re: Помогите со скриптом для кликов
Post by: Oraven on February 15, 2014, 10:04:55 AM
Ну теперь скрипт хотя бы будет работать. Что бы найти несколько ссылок нужно использовать другую функцию и лучше поиск по фрагменту.

Code: (clickermann) [Select]
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
Title: Re: Помогите со скриптом для кликов
Post by: Коля on February 15, 2014, 11:43:49 AM
Спасибо. Я наверное не правильно поставил вопрос... Скрипт находит и кликает по "синей" надписи, она пропадает а вместо нее появляется "желтый" кружок, должен кликнуть по нему но не кликает потому что опять ищет "синюю" надпись и кликает по ней. Надписей таких в зоне поиска несколько. Мне нужно что бы нашел "синюю" надпись ->клик по ней-> поиск "желтого" кружка-> клик по нему. Что сделать что бы переставал искать "синю" надпись когда найдёт и начинал искать "желтый" кружок?
Title: Re: Помогите со скриптом для кликов
Post by: Oraven on February 15, 2014, 01:21:49 PM
Можно использовать циклический поиск синей надписи, если найдет кликнет по ней и перейдет к другому циклу поиска желтого. Нужно только правильно указать область поиска и цвета (0,0, $_xmax,$_ymax, 255)

Code: (clickermann) [Select]
$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
Title: Re: Помогите со скриптом для кликов
Post by: Коля on February 15, 2014, 03:56:50 PM
Вот немного доделал этот вариант. Для идеальной работы не хватает что бы когда прокрутка колёсиком мыши доходила до конца страницы и ссылок больше нет->нажимались кнопки PgUp->F5 и всё начиналось заново. Может есть какой нибудь счетчик прокруток или еще одно условие вставить на поиск полоски для прокрутки в определённом месте экрана? 
Code: [Select]
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
Title: Re: Помогите со скриптом для кликов
Post by: Коля on February 15, 2014, 05:55:20 PM
Уже разобрался с вопросом обновления. Возникла ещё проблема: после нажатия на "желтый" кружок, открывается пустая вкладка (с надписью типа уже просмотрено). Как сделать что бы в таком случае вкладка закрывалась а главная страница обновлялась? Вот что у меня:
Code: [Select]
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
Title: Re: Помогите со скриптом для кликов
Post by: Oraven on February 15, 2014, 06:36:04 PM
Не верный код! У зоны поиска должно быть 4 числа, далее следуют цвета.
Code: (clickermann) [Select]
      if_pixel_in(1232, 111, 3085291) // просмотренная ссылка
Думую тебе нужно познакомиться с функцией IF_PICTURE_IN
Title: Re: Помогите со скриптом для кликов
Post by: Коля on February 15, 2014, 07:42:20 PM
Не верный код! У зоны поиска должно быть 4 числа, далее следуют цвета.
Code: (clickermann) [Select]
      if_pixel_in(1232, 111, 3085291) // просмотренная ссылка
Думую тебе нужно познакомиться с функцией IF_PICTURE_IN
После того как поменял координаты поиска, скрипт не так работает. Что в нем не так?
Это должен бы быть анализ вкладки если после нажатия кнопки закрытия вкладки появится диалоговое окно (закрыть или остаться), и если просматривал ссылку. Что-то эта часть у меня не работает.
Code: [Select]
   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
Title: Re: Помогите со скриптом для кликов
Post by: Oraven on February 15, 2014, 08:34:52 PM
Не нужно ставить задержку после getscreen. Возможно задержка слишком маленькая после клика "Закрыть вкладку". А возможно неверно заданы цвета. смысл кода вроде правильный, сложно сказать почему не работает, тебе там виднее.
Title: Re: Помогите со скриптом для кликов
Post by: Коля on February 15, 2014, 10:37:06 PM
Теперь работает но я попробовал вставить команду GOTO, что бы если выполнялось конкретное действие, скрипт начинался сначала. Подскажите что я сделал не так
Code: [Select]
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
Title: Re: Помогите со скриптом для кликов
Post by: Oraven on February 15, 2014, 11:44:43 PM
Двоеточие в конце обозначает метку, у самого ГОТО двоеточие не ставится!
Code: (clickermann) [Select]
goto(Begin)