Author Topic: Скрипт с циклами сразу в нескольких вкладках по очереди  (Read 3104 times)

0 Members and 1 Guest are viewing this topic.

d2_bot

  • Освоившийся
  • **
  • Posts: 85
    • View Profile
Помогите пожалуйста, есть скрипт с циклами, нужно чтобы этот скрипт выполнялся одновременно в 15 вкладках браузера.

Code: [Select]
FOR($a=0,$a<17)
    WAIT(8)
    move(543,254)
    waitms(500)
LCLICK(543,254) 

END_CYC
//////////////////////////////////
 
  FOR($b=0,$b<4)
    WAIT(8)
  move(541,320)
   waitms(500)   
LCLICK(541,320) 

END_CYC

//////////////////////////////////
   
  FOR($c=0,$c<27)
     WAIT(8)
    move(543,254)
    waitms(500)
LCLICK(543,254)
END_CYC

//////////////////////////////////
 
  FOR($d=0,$d<1)
    WAIT(8)
    move(553,286)
    waitms(500)
LCLICK(553,286) 

END_CYC
//////////////////////////////////
   
  FOR($e=0,$e<16)
   WAIT(8)
  move(541,320)
   waitms(500)   
LCLICK(541,320)   
END_CYC 



Так вот нужно чтобы каждый клик внутри каждого цикла делался сначала в 1 вкладке, потом во второй, в третьей и т.д. Встал в тупик

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
ctrl+pagedown - переключиться на следующую вкладку.
ctrl+1 - вернуться на первую вкладку.


Может в разных браузерах по другому, незнаю....

Code: (clickermann) [Select]
FOR($a=0,$a<17)
   
   WAIT(1)
   KEYDOWN (#CTRL)  //переключение вкладок по порядку
   WAITMS (50)
   KEYPRESS (#PAGEDOWN)
   KEYUP (#CTRL)
   
END_CYC

WAIT(1)
KEYDOWN (#CTRL)  //вернуться на первую вкладку
WAITMS (50)
KEYPRESS (#1)
KEYUP (#CTRL)

halt




d2_bot

  • Освоившийся
  • **
  • Posts: 85
    • View Profile
Благодарю за отклик, переход по вкладкам мышкой или клавишей в принципе не важно.
Но только как это сделать в рамках цикла, к примеру в самом первом цикле 17 кликов с паузой. Нужно чтобы в одной вкладке сделался 1 клик, потом в другой, потом в третьей и это было 1 проходом кликов, в общем чтобы когда пройдет по всем вкладкам был засчитан 1 клик из 17) . И  так со всеми действиями в скрипте. Получается что нужно добавить по доп циклу к каждой группе действий или действию? В начальном примере только действия в одной вкладке, без переходов по другим, извиняюсь затупил...сейчас смотрю выходит что белеберду написал я сам)
« Last Edit: November 29, 2020, 08:50:01 PM by d2_bot »

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Ну так я же пример выше показал. У тебя первый цикл будет выглядеть так:

Code: (clickermann) [Select]
FOR($a=0,$a<17)
   
   //это твой клик
   WAIT(8) 
   move(543,254)
   waitms(500)
   LCLICK(543,254)
   
   WAIT(1)
   KEYDOWN (#CTRL)  //переключение вкладок по порядку до семнадцатой.
   WAITMS (50)
   KEYPRESS (#PAGEDOWN)
   KEYUP (#CTRL)
   
END_CYC

WAIT(1)
KEYDOWN (#CTRL)  //вернуться на первую вкладку если надо.
WAITMS (50)
KEYPRESS (#1)
KEYUP (#CTRL)

halt

d2_bot

  • Освоившийся
  • **
  • Posts: 85
    • View Profile
Спасибо теперь понял))

d2_bot

  • Освоившийся
  • **
  • Posts: 85
    • View Profile
Ну так я же пример выше показал. У тебя первый цикл будет выглядеть так:

Code: (clickermann) [Select]
FOR($a=0,$a<17)
   
   //это твой клик
   WAIT(8) 
   move(543,254)
   waitms(500)
   LCLICK(543,254)
   
   WAIT(1)
   KEYDOWN (#CTRL)  //переключение вкладок по порядку до семнадцатой.
   WAITMS (50)
   KEYPRESS (#PAGEDOWN)
   KEYUP (#CTRL)
   
END_CYC

WAIT(1)
KEYDOWN (#CTRL)  //вернуться на первую вкладку если надо.
WAITMS (50)
KEYPRESS (#1)
KEYUP (#CTRL)

halt



Все таки казалось что можно будет уменьшить код.. вот так получается

Code: [Select]

 
 
 
 FOR($a=0,$a<30)
    WAIT(1)
    move(510,336)
    waitms(500)
LCLICK(510,336) 

WAIT(1)
   KEYDOWN (#CTRL)  //переключение вкладок по порядку 1
   WAITMS (50)
KEYPRESS (#TAB)
waitms(50)
   KEYUP (#CTRL)
   
       WAIT(1)
    move(510,336)
    waitms(500)
LCLICK(510,336) 
          WAIT(1)
   KEYDOWN (#CTRL)  //переключение вкладок по порядку 2
   WAITMS (50)
KEYPRESS (#TAB)
waitms(50)
   KEYUP (#CTRL)
   
      WAIT(1)
    move(510,336)
    waitms(500)
LCLICK(510,336)
          WAIT(1)
   KEYDOWN (#CTRL)  //переключение вкладок по порядку 3
   WAITMS (50)
KEYPRESS (#TAB)
waitms(50)
   KEYUP (#CTRL)
   
      WAIT(1)
    move(510,336)
    waitms(500)
LCLICK(510,336) 
          WAIT(1)
   KEYDOWN (#CTRL)  //переключение вкладок по порядку 4
   WAITMS (50)
KEYPRESS (#TAB)
waitms(50)
   KEYUP (#CTRL)


END_CYC
//////////////////////////////////
 

    WAIT(8)   
  move(541,320)
   waitms(500)   
LCLICK(477,322)


          WAIT(1)
   KEYDOWN (#CTRL)  //переключение вкладок по порядку 1
   WAITMS (50)
KEYPRESS (#TAB)
waitms(50)
   KEYUP (#CTRL)
   
 
    WAIT(8)   
  move(541,320)
   waitms(500)   
LCLICK(477,322)


          WAIT(1)
 KEYDOWN (#CTRL)  //переключение вкладок по порядку 2
 WAITMS (50)
KEYPRESS (#TAB)
waitms(50)
   KEYUP (#CTRL)


 
  WAIT(8)   
 move(541,320)
 waitms(500)   
LCLICK(477,322)


 WAIT(1)
 KEYDOWN (#CTRL)  //переключение вкладок по порядку 3
 WAITMS (50)
 KEYPRESS (#TAB)
waitms(50)
   KEYUP (#CTRL)

         halt
         



Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
.. вот так получается

Интересно получается. Код не имеет с первоначальным ничего общего.
Если сделать первоначальный как ты хотел, то так:
Code: (clickermann) [Select]
$tabs = 15

SUB(next_tab)  // переключение вкладки
    WAIT(1)
    KEYDOWN(#CTRL)
    WAITMS(50)
    KEYPRESS(#PAGEDOWN)
    KEYUP(#CTRL)
END_SUB


FOR($a=0, $a < 17)  // 17 кликов в $tabs вкладках
    FOR($tab=0, $tab < $tabs)
        WAIT(8)
        MOVE(543,254)
        WAITMS(500)
        LCLICK(543,254)
       
        next_tab()
    END_CYC
END_CYC


//////////////////////////////////

FOR($b=0, $b < 4)
    FOR($tab=0, $tab < $tabs)
        WAIT(8)
        move(541,320)
        waitms(500)
        LCLICK(541,320)
       
        next_tab()
    END_CYC
END_CYC

//////////////////////////////////

FOR($c=0,$c < 27)
    FOR($tab=0, $tab < $tabs)
        WAIT(8)
        move(543,254)
        waitms(500)
        LCLICK(543,254)
       
        next_tab()
    END_CYC
END_CYC

//////////////////////////////////

FOR($d=0, $d < 1)  // нафига цикл на 1 раз? Допустим, что количество может измениться
    FOR($tab=0, $tab < $tabs)
        WAIT(8)
        move(553,286)
        waitms(500)
        LCLICK(553,286)
       
        next_tab()
    END_CYC
END_CYC

//////////////////////////////////

FOR($e=0, $e < 16)
    FOR($tab=0, $tab < $tabs)
        WAIT(8)
        move(541,320)
        waitms(500)
        LCLICK(541,320)
       
        next_tab()
    END_CYC
END_CYC

Или то же самое, но ещё короче, но всё ещё структурно
Code: (clickermann) [Select]
$tabs = 15

SUB(next_tab)  // переключение вкладки
    WAIT(1)
    KEYDOWN(#CTRL)
    WAITMS(50)
    KEYPRESS(#PAGEDOWN)
    KEYUP(#CTRL)
END_SUB

SUB(click_all_tabs, $cat_num, $catx, $caty)
    FOR($at=0, $at < $cat_num)
        FOR($tab=0, $tab < $tabs)
            WAIT(8)
            MOVE($catx, $caty)
            WAITMS(500)
            LCLICK($catx, $caty)           
            next_tab()
        END_CYC
    END_CYC
END_SUB

click_all_tabs(17, 543, 254)
click_all_tabs( 4, 541, 320)
click_all_tabs(27, 543, 254)
click_all_tabs( 1, 553, 286)
click_all_tabs(16, 541, 320)


d2_bot

  • Освоившийся
  • **
  • Posts: 85
    • View Profile
Очень мощно, код огонь, заигрался так что аж забыл зайти на форум сказать спасибо dramster и vint

FOR($d=0, $d < 1)  // нафига цикл на 1 раз? Допустим, что количество может измениться
Усвоил, там достаточно цикла подпрограммы..))


....Офигеть, даже не верится что уже немного начал понимать код, с каждым годом лучше и лучше, все благодаря завсегдатым форума, которые постоянно оказывают квалифицированную поддержку для начинающих, любителей и профессионалов на высшем уровне! Все эти знания публичны и доступны любому желающему - это великие дела!

Самый нижний код не попробовал еще пока сложноват для освоения, вернусь к нему через время)