Author Topic: Работа с ссылками  (Read 7626 times)

0 Members and 1 Guest are viewing this topic.

Viktor77

  • Активный участник
  • ***
  • Posts: 106
    • View Profile
Re: Работа с ссылками
« Reply #30 on: October 23, 2020, 08:51:22 AM »
Code: (clickermann) [Select]
FOR($akk=1, $a <= $akk_total)
    LOGWRITE("Текущий аккаунт: ", $akk)
   
    $str = TFREAD ("LogPass.txt", $akk)
    $log = STRCUT2 ($str, 1, STRPOS ($str, ":")-1)
    $pass = STRCUT2 ($str, STRPOS ($str, ":")+1, STRLEN ($str))
   
    IF($akk < 5)
        LCLICK(505, 345)
    ELSE
        LCLICK(100, 100)
    END_IF
    ...
и подскажите как  добавить чтение файла, перед LCLICK(505, 345) ввод первой строки из файла "portal.txt" , перед LCLICK(100, 100) ввод второй строки из файла "portal.txt", повлияет это на скорость работы? или лучше прям в скрипте добавить ссылки без чтения из файла? что именно убивает команда убить процесс? EXECUTE("taskkill","/IM firefox.exe")
Code: (clickermann) [Select]
FOR($akk=1, $a <= $akk_total)
    LOGWRITE("Текущий аккаунт: ", $akk)
   
    $str = TFREAD ("LogPass.txt", $akk)
    $log = STRCUT2 ($str, 1, STRPOS ($str, ":")-1)
    $pass = STRCUT2 ($str, STRPOS ($str, ":")+1, STRLEN ($str))
   
    IF($akk < 5)
        LCLICK(505, 345)
    ELSE
        LCLICK(100, 100)
    END_IF

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Работа с ссылками
« Reply #31 on: October 23, 2020, 09:10:09 AM »
и подскажите как  добавить чтение файла, перед LCLICK(505, 345) ввод первой строки из файла "portal.txt" , перед LCLICK(100, 100) ввод второй строки из файла "portal.txt"
Code: (clickermann) [Select]
IF($akk < 5)
    $portal = TFREAD("portal.txt", 1)
    // здесь ввод строки, чтобы это не значило
    LCLICK(505, 345)
ELSE
    $portal = TFREAD("portal.txt", 2)
    // здесь ввод строки, чтобы это не значило
    LCLICK(100, 100)
END_IF

повлияет это на скорость работы? или лучше прям в скрипте добавить ссылки без чтения из файла?
О какой скорости речь в данном скрипте? Основное время мы ждём реакции браузера.
Через файл или прямо строкой зависит от задачи. Если ссылки нужно будет менять, то чтоб не править всё время скрипт - вынести в файл.

что именно убивает команда убить процесс? EXECUTE("taskkill","/IM firefox.exe")
убивает процесс firefox.exe. Очевидно же©


Viktor77

  • Активный участник
  • ***
  • Posts: 106
    • View Profile
Re: Работа с ссылками
« Reply #32 on: October 23, 2020, 09:22:12 AM »
и подскажите как  добавить чтение файла, перед LCLICK(505, 345) ввод первой строки из файла "portal.txt" , перед LCLICK(100, 100) ввод второй строки из файла "portal.txt"
Code: (clickermann) [Select]
IF($akk < 5)
    $portal = TFREAD("portal.txt", 1)
    // здесь ввод строки, чтобы это не значило
    LCLICK(505, 345)
ELSE
    $portal = TFREAD("portal.txt", 2)
    // здесь ввод строки, чтобы это не значило
    LCLICK(100, 100)
END_IF

повлияет это на скорость работы? или лучше прям в скрипте добавить ссылки без чтения из файла?
О какой скорости речь в данном скрипте? Основное время мы ждём реакции браузера.
Через файл или прямо строкой зависит от задачи. Если ссылки нужно будет менять, то чтоб не править всё время скрипт - вынести в файл.

что именно убивает команда убить процесс? EXECUTE("taskkill","/IM firefox.exe")
убивает процесс firefox.exe. Очевидно же©
спасибо большое что помогаете. да, тут понятно убивает процесс лисы, но что именно, насколько опасная команда?
как можно тут сделать чтобы за 10 дней хранились скрины, а остальные удалялись?
Code: (clickermann) [Select]
IF(FExists(STRCONCAT("C:\files\twin1\",$_date_d,"-",$_date_m,"-",$_date_y)) = 0)//если папки с датой нету
            FCreate(STRCONCAT("C:\files\twin1\",$_date_d,"-",$_date_m,"-",$_date_y))//то создаем ее  - C:\files\twin1\6-11-2019  на сегодняшний день
         END_IF
         SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT ("C:\files\twin1\",$_date_d,"-",$_date_m,"-",$_date_y,"\file", $n,".bmp"))
         inc($n)
      END_IF

Viktor77

  • Активный участник
  • ***
  • Posts: 106
    • View Profile
Re: Работа с ссылками
« Reply #33 on: October 23, 2020, 05:20:56 PM »
и подскажите как  добавить чтение файла, перед LCLICK(505, 345) ввод первой строки из файла "portal.txt" , перед LCLICK(100, 100) ввод второй строки из файла "portal.txt"
Code: (clickermann) [Select]
IF($akk < 5)
    $portal = TFREAD("portal.txt", 1)
    // здесь ввод строки, чтобы это не значило
    LCLICK(505, 345)
ELSE
    $portal = TFREAD("portal.txt", 2)
    // здесь ввод строки, чтобы это не значило
    LCLICK(100, 100)
END_IF

повлияет это на скорость работы? или лучше прям в скрипте добавить ссылки без чтения из файла?
О какой скорости речь в данном скрипте? Основное время мы ждём реакции браузера.
Через файл или прямо строкой зависит от задачи. Если ссылки нужно будет менять, то чтоб не править всё время скрипт - вынести в файл.

что именно убивает команда убить процесс? EXECUTE("taskkill","/IM firefox.exe")
убивает процесс firefox.exe. Очевидно же©
все работает нормально но стопанулся я на выходе, разные координаты на выходе.
Code: (clickermann) [Select]
     
   END_CYC
   
   //выход
   LCLICK(1175,101)  // выход
   WAIT(10)
//LCLICK(1000,100)  // выход2
END_CYC

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Работа с ссылками
« Reply #34 on: October 23, 2020, 06:44:48 PM »
тут понятно убивает процесс лисы, но что именно, насколько опасная команда?
Лучше закрывать штатно. Через клавиатуру или вкладку Ctrl+F4  или программу Alt+F4

как можно тут сделать чтобы за 10 дней хранились скрины, а остальные удалялись?
Code: (clickermann) [Select]
$older = 10  // старее N дней

IF($sgfvkvjgka = 0)
    STRSEPARATE("31,28,31,30,31,30,31,31,30,31,30,31", ",", $md)
    $sgfvkvjgka = 1
END_IF

SUB(day_of_year, $dy_d, $dy_m, $dy_y)
    $fdm = 0
    FOR($dyi=0, $dyi < ($dy_m-1))
        $fdm = $fdm + $md[$dyi]
    END_CYC
    $full_day = $dy_y*365 + $fdm + $dy_d
END_SUB


day_of_year($_date_d, $_date_m, $_date_y)
$cur_day = $full_day

GETDIRLIST($twins, "files\twin*")
FOR($tw=0, $tw < ARRSIZE($twins))
    $twin = $twins[$tw]
    LOGWRITE($twin)
   
    $mask = STRCONCAT("files\", $twin, "\*")
    GETDIRLIST($dirs, $mask)
    FOR($i=0, $i < ARRSIZE($dirs))
        $dir = $dirs[$i]
        STRSEPARATE($dir, "-", $dat)
        day_of_year(INT($dat[0]), INT($dat[1]), INT($dat[2]))
        $folder_day = $full_day
       
        IF(($cur_day - $folder_day) > $older-1)
            $fullname = STRCONCAT("files\", $twin, "\", $dir)
            FDELETE($fullname)
            LOGWRITE("   ├─", $dir, "   Old  ", $fullname)     
        ELSE
            LOGWRITE("   ├─", $dir)
            //LOGWRITE("   ├─", $dir, "   Ok")
        END_IF
    END_CYC
    //LOGWRITE()
END_CYC
Пути под свои подправишь

Code: [Select]
18:38:51 twin1
18:38:51    ├─12-10-2020   Old  files\twin1\12-10-2020
18:38:51    ├─13-10-2020   Old  files\twin1\13-10-2020
18:38:51    ├─14-10-2020
18:38:51    ├─20-10-2020
18:38:52    ├─6-11-2019   Old  files\twin1\6-11-2019
18:38:52 twin2
18:38:52    ├─12-10-2020   Old  files\twin2\12-10-2020
18:38:52    ├─13-10-2020   Old  files\twin2\13-10-2020
18:38:52    ├─14-10-2020
18:38:52    ├─20-10-2020
18:38:52    ├─6-11-2019   Old  files\twin2\6-11-2019

И лучше сохраняй год-месяц-число  (YY-MM-DD)  тогда выстраиваться всегда будет в правильном порядке, легче ориентироваться и искать


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Работа с ссылками
« Reply #35 on: October 23, 2020, 06:47:46 PM »
стопанулся я на выходе, разные координаты на выходе.

По аналогии.


P.S. Не цитируй больше одного вложения, это очень мешает и забивает ветку.


Viktor77

  • Активный участник
  • ***
  • Posts: 106
    • View Profile
Re: Работа с ссылками
« Reply #36 on: October 23, 2020, 08:55:09 PM »

По аналогии.


P.S. Не цитируй больше одного вложения, это очень мешает и забивает ветку.
[/quote]
можно конечно сделать немного иначе, логпасс, сервера_ к вк, а логпасс1 сервера1_ к ок.  таким образом не забивать ветку?
Code: (clickermann) [Select]
LOGCLEAR
WAITMS(50)
LOGWRITE("Старт")
WAITMS(50)

клик(1271,1002,2000)
DBLCLICK(635,30) //запуск браузера
WAIT(10)

$akk_total = TFCOUNT("LogPass.txt")
LOGWRITE("Всего аккаунтов: ", $akk_total)

FOR($akk=1, $akk <= $akk_total)
   LOGWRITE("Текущий аккаунт: ", $akk)
   
   $str = TFREAD ("LogPass.txt", $akk)
   $log = STRCUT2 ($str, 1, STRPOS ($str, ":")-1)
   $pass = STRCUT2 ($str, STRPOS ($str, ":")+1, STRLEN ($str))
   
   LCLICK(505,345) // клик по полю логина
   WAITMS (1000)
   TOCLIP($log) // скопировать логин в буфер
   WAITMS (100)
   paste()
   
   KEYPRESS(#TAB) // переход на поле пароля
   WAITMS (1000)
   
   //LCLICK(505,395) // клик по полю пароля
   WAITMS (1000)
   TOCLIP($pass) // скопировать в пароль в буфер
   WAITMS (100)
   paste()
   
   KEYPRESS(#ENTER) // Enter
   WAITMS (100)
   //LCLICK(640,470) // клик по "Вход"
   WAIT(5)
   // тут команды после входа
   $servera = STRCONCAT("servera_", $akk,".txt")
   $serv_len = TFCOUNT($servera)
   FOR($serv=1, $serv <= $serv_len)
      LCLICK(370,55) //клик по панель поиска
      WAIT(2)
      TOCLIP(TFREAD($servera,$serv))
      WAITMS(100)
      print("файл ", $servera)
      print("ссылка ", TFREAD($servera, $serv))
      paste()
      WAITMS(50)
     
     
      KEYPRESS(#ENTER)
      WAIT (5)
      // тут команды после
   END_CYC
   
   //выход
   LCLICK(1175,101)  // 2467327
   WAIT(10)
END_CYC
//закрыть браузер


клик(1271,1002,2000)
DBLCLICK(635,30) //запуск браузера
WAIT(10)

$akk_total = TFCOUNT("LogPass1.txt")
LOGWRITE("Всего аккаунтов: ", $akk_total)

FOR($akk=1, $akk <= $akk_total)
   LOGWRITE("Текущий аккаунт: ", $akk)
   
   $str = TFREAD ("LogPass1.txt", $akk)
   $log = STRCUT2 ($str, 1, STRPOS ($str, ":")-1)
   $pass = STRCUT2 ($str, STRPOS ($str, ":")+1, STRLEN ($str))
   
   LCLICK(100,100) // клик по полю логина
   WAITMS (1000)
   TOCLIP($log) // скопировать логин в буфер
   WAITMS (100)
   paste()
   
   KEYPRESS(#TAB) // переход на поле пароля
   WAITMS (1000)
   
   //LCLICK(505,395) // клик по полю пароля
   WAITMS (1000)
   TOCLIP($pass) // скопировать в пароль в буфер
   WAITMS (100)
   paste()
   
   KEYPRESS(#ENTER) // Enter
   WAITMS (100)
   //LCLICK(640,470) // клик по "Вход"
   WAIT(5)
   // тут команды после входа
   $servera1 = STRCONCAT("servera1_", $akk,".txt")
   $serv_len = TFCOUNT($servera1)
   FOR($serv=1, $serv <= $serv_len)
      LCLICK(370,55) //клик по панель поиска
      WAIT(2)
      TOCLIP(TFREAD($servera1,$serv))
      WAITMS(100)
      print("файл ", $servera1)
      print("ссылка ", TFREAD($servera1, $serv))
      paste()
      WAITMS(50)
     
     
      KEYPRESS(#ENTER)
      WAIT (5)
      // тут команды после
   END_CYC
   
   //выход
   LCLICK(585,333)  // 2467327
   WAIT(10)
END_CYC
« Last Edit: October 24, 2020, 02:09:45 AM by Viktor77 »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Работа с ссылками
« Reply #37 on: October 23, 2020, 10:53:53 PM »
Оверквотинг - излишнее цитирование. Не цитируй с двумя и более уровнями вложенности. Не цитируй лишнее. Простыни на весь экран где ты сам себя цитируешь на втором уровне.


Viktor77

  • Активный участник
  • ***
  • Posts: 106
    • View Profile
Re: Работа с ссылками
« Reply #38 on: October 24, 2020, 02:15:35 AM »
Оверквотинг - излишнее цитирование. Не цитируй с двумя и более уровнями вложенности. Не цитируй лишнее. Простыни на весь экран где ты сам себя цитируешь на втором уровне.
можно что придумать с выходом 1 и 2? или нужно отдельно цикл для вк, ок с разными файлами логпасс и сервера?
Code: (clickermann) [Select]
END_CYC
 
   //выход
   LCLICK(1175,101)  // выход1
   WAIT(10)
//LCLICK(1000,100)  // выход2
END_CYC
 

Code: (clickermann) [Select]
LOGCLEAR
WAITMS(50)
LOGWRITE("Старт")
WAITMS(50)
 
клик(1271,1002,2000)
DBLCLICK(635,30) //запуск браузера
WAIT(10)
 
$akk_total = TFCOUNT("LogPass.txt") //для вк
LOGWRITE("Всего аккаунтов: ", $akk_total)
 
FOR($akk=1, $akk <= $akk_total)
   LOGWRITE("Текущий аккаунт: ", $akk)
 
   $str = TFREAD ("LogPass.txt", $akk)
   $log = STRCUT2 ($str, 1, STRPOS ($str, ":")-1)
   $pass = STRCUT2 ($str, STRPOS ($str, ":")+1, STRLEN ($str))
 
   LCLICK(505,345) // клик по полю логина
   WAITMS (1000)
   TOCLIP($log) // скопировать логин в буфер
   WAITMS (100)
   paste()
 
   KEYPRESS(#TAB) // переход на поле пароля
   WAITMS (1000)
 
   //LCLICK(505,395) // клик по полю пароля
   WAITMS (1000)
   TOCLIP($pass) // скопировать в пароль в буфер
   WAITMS (100)
   paste()
 
   KEYPRESS(#ENTER) // Enter
   WAITMS (100)
   //LCLICK(640,470) // клик по "Вход"
   WAIT(5)
   // тут команды после входа
   $servera = STRCONCAT("servera_", $akk,".txt")
   $serv_len = TFCOUNT($servera)
   FOR($serv=1, $serv <= $serv_len)
      LCLICK(370,55) //клик по панель поиска
      WAIT(2)
      TOCLIP(TFREAD($servera,$serv))
      WAITMS(100)
      print("файл ", $servera)
      print("ссылка ", TFREAD($servera, $serv))
      paste()
      WAITMS(50)
 
 
      KEYPRESS(#ENTER)
      WAIT (5)
      // тут команды после
   END_CYC
 
   //выход
   LCLICK(1175,101)  // 2467327
   WAIT(10)
END_CYC
//закрыть браузер
 
 
клик(1271,1002,2000)
DBLCLICK(635,30) //запуск браузера
WAIT(10)
 
$akk_total = TFCOUNT("LogPass1.txt") //для ок
LOGWRITE("Всего аккаунтов: ", $akk_total)
 
FOR($akk=1, $akk <= $akk_total)
   LOGWRITE("Текущий аккаунт: ", $akk)
 
   $str = TFREAD ("LogPass1.txt", $akk)
   $log = STRCUT2 ($str, 1, STRPOS ($str, ":")-1)
   $pass = STRCUT2 ($str, STRPOS ($str, ":")+1, STRLEN ($str))
 
   LCLICK(100,100) // клик по полю логина
   WAITMS (1000)
   TOCLIP($log) // скопировать логин в буфер
   WAITMS (100)
   paste()
 
   KEYPRESS(#TAB) // переход на поле пароля
   WAITMS (1000)
 
   //LCLICK(505,395) // клик по полю пароля
   WAITMS (1000)
   TOCLIP($pass) // скопировать в пароль в буфер
   WAITMS (100)
   paste()
 
   KEYPRESS(#ENTER) // Enter
   WAITMS (100)
   //LCLICK(640,470) // клик по "Вход"
   WAIT(5)
   // тут команды после входа
   $servera1 = STRCONCAT("servera1_", $akk,".txt")
   $serv_len = TFCOUNT($servera1)
   FOR($serv=1, $serv <= $serv_len)
      LCLICK(370,55) //клик по панель поиска
      WAIT(2)
      TOCLIP(TFREAD($servera1,$serv))
      WAITMS(100)
      print("файл ", $servera1)
      print("ссылка ", TFREAD($servera1, $serv))
      paste()
      WAITMS(50)
 
 
      KEYPRESS(#ENTER)
      WAIT (5)
      // тут команды после
   END_CYC
 
   //выход
   LCLICK(585,333)  // 2467327
   WAIT(10)
END_CYC

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Работа с ссылками
« Reply #39 on: October 26, 2020, 10:12:45 AM »
можно что придумать с выходом 1 и 2? или нужно отдельно цикл для вк, ок с разными файлами логпасс и сервера?
Code: (clickermann) [Select]
END_CYC
 
   //выход
   LCLICK(1175,101)  // выход1
   WAIT(10)
//LCLICK(1000,100)  // выход2
END_CYC
 


Говорю же, по аналогии с вот этим:
Code: (clickermann) [Select]
    IF($akk < 5)
        $portal = TFREAD("portal.txt", 1)
        // здесь ввод строки, чтобы это не значило
        LCLICK(505, 345)
    ELSE
        $portal = TFREAD("portal.txt", 2)
        // здесь ввод строки, чтобы это не значило
        LCLICK(100, 100)
    END_IF

Ты не можешь условие вставить?


Viktor77

  • Активный участник
  • ***
  • Posts: 106
    • View Profile
Re: Работа с ссылками
« Reply #40 on: October 30, 2020, 03:55:09 PM »
Ты не можешь условие вставить?
как можно этот код поставить на поток, чтобы при ошибке или слетел флеш ставился первый поток на паузу, и после обновления страницы продолжал с этого же акк и сервера на котором встал скрипт?
Code: (clickermann) [Select]
//=============================================
SUB(paste) //========== Вставить ==============================
   KEYDOWN(#CTRL) // Ctrl+V
   WAITMS(50)
   KEYPRESS(#V)
   WAITMS(50)
   KEYUP(#CTRL)
   WAITMS(2000)
END_SUB
//=============================================
SUB(лог,$note) //=============== Запись в лог файл =============
   IF($note = "пробел")
      LOGWRITE (" ")
      TFWRITE("Log.txt", " ")
   ELSE
      $th = $_time_h
      $tm = $_time_m
      $ts = $_time_s
      $dd = $_date_d
      $dm = $_date_m
      $dy = $_date_y
     
      IF(STRLEN($th)<2)
         $th = STRCONCAT ("0", $th)
      END_IF
      IF(STRLEN($tm)<2)
         $tm = STRCONCAT ("0", $tm)
      END_IF
      IF(STRLEN($ts)<2)
         $ts = STRCONCAT ("0", $ts)
      END_IF
      IF(STRLEN($dd)<2)
         $dd = STRCONCAT ("0", $dd)
      END_IF
      IF(STRLEN($dm)<2)
         $dm = STRCONCAT ("0", $dm)
      END_IF
      IF(STRLEN($dy)<2)
         $dy = STRCONCAT ("0", $dy)
      END_IF
      LOGWRITE ($dd,".",$dm,".",$dy," ",$th,":",$tm,":",$ts, " ", $note) // запись в лог
      TFWRITE("Log.txt", STRCONCAT($dd,".",$dm,".",$dy," ",$th,":",$tm,":",$ts, " ", $note))
   END_IF
END_SUB
//=============================================
SUB(recognize, $x1,$y1, $x2,$y2) //== Распознавание символов ==
   GETFILELIST($Letters_arr, "Letters\*.bmp")
   FOR($Let_num=0,$Let_num<ARRSIZE($Letters_arr))
      STRSEPARATE($Letters_arr[$Let_num], "_", $a_l)
      SCANPICTURE($ARR_SCAN, $x1,$y1, $x2,$y2, STRCONCAT("Letters\", $Letters_arr[$Let_num]), -1, STRREPLACE($a_l[ARRSIZE($a_l)-1],".bmp",""))
      UNDEFINE($a_l)
      FOR($arr_num=0,$arr_num<ARRSIZE($ARR_SCAN),2)
         ARRPUSH($ARR_OUT, $ARR_SCAN[$arr_num])
         ARRPUSH($ARR_OUT, STRCUT($Letters_arr[$Let_num], 1, 1))
      END_CYC
      UNDEFINE($ARR_SCAN)
   END_CYC
   $siz = ARRSIZE($ARR_OUT)
   $srtcheck = 0
   $srt = 0
   FOR($a=$siz-2,($a>0)&($srt=0),-2)
      FOR($b=0,$b<$a,2)
         IF($ARR_OUT[$b] > $ARR_OUT[$b+2])
            $srtcheck = 1
            $tmp = $ARR_OUT[$b]
            $tmp2 = $ARR_OUT[$b+1]
            $ARR_OUT[$b] = $ARR_OUT[$b+2]
            $ARR_OUT[$b+1] = $ARR_OUT[$b+3]
            $ARR_OUT[$b+2] = $tmp
            $ARR_OUT[$b+3] = $tmp2
         END_IF
      END_CYC
      IF($srtcheck = 0)
         $srt = 1
      END_IF
   END_CYC
   $str = ""
   FOR($a=0,$a<ARRSIZE($ARR_OUT),2)
      IF(STRLEN($str) > 0)
         IF($ARR_OUT[$a]-$ARR_OUT[$a-2] > 50) // определение пробела (сколько пикселов между символами считать за пробел)
            $str = STRCONCAT($str, " ")
         END_IF
         $str = STRCONCAT($str, $ARR_OUT[$a+1])
      ELSE
         $str = $ARR_OUT[$a+1]
      END_IF
   END_CYC
   UNDEFINE($ARR_OUT)
   UNDEFINE($ARR_SCAN)
END_SUB
//=============================================

SUB(day_of_year, $dy_d, $dy_m, $dy_y)
    $fdm = 0
    FOR($dyi=0, $dyi < ($dy_m-1))
        $fdm = $fdm + $md[$dyi]
    END_CYC
    $full_day = $dy_y*365 + $fdm + $dy_d
END_SUB
//=============================================

LOGCLEAR
TFCLEAR("Log.txt", 0)
WAITMS(50)
LOGWRITE("Старт")
WAITMS(50)
лог(STRCONCAT("Запуск ")) // комбинированная запись
клик(1271,1002,2000)
DBLCLICK(635,30) //запуск браузера
WAIT(10)
THREAD(t1)
$akk_total = TFCOUNT("LogPass.txt")
LOGWRITE("Всего аккаунтов: ", $akk_total)
лог(STRCONCAT("Всего аккаунтов: ", $akk_total))
FOR($akk=1, $akk <= $akk_total)
   LOGWRITE("Текущий аккаунт: ", $akk)
   лог(STRCONCAT("Текущий аккаунт: ", $akk))
   $str = TFREAD ("LogPass.txt", $akk)
   $log = STRCUT2 ($str, 1, STRPOS ($str, ":")-1)
   $pass = STRCUT2 ($str, STRPOS ($str, ":")+1, STRLEN ($str))
   IF($akk < 5)
      LCLICK(390,55) //клик по панель поиска
      WAITMS (500)
      $portal = TFREAD("portal.txt", 1)
      // здесь ввод строки, чтобы это не значило
      TOCLIP($portal) //скопировать
      WAITMS (1000)
      paste()
      KEYPRESS(#ENTER) // Enter
      WAITMS (100)
      WAITMS (5000)
      GETSCREEN(0,0,$_xmax,$_ymax)
      IF_PICTURE_IN (0,0,$_xmax,$_ymax, "55.bmp", - 1, 100)
         MOVE($_return1,$_return2)
         WAIT(1)
      ELSE
         WAIT(1)
         картинка(0,0,$_xmax,$_ymax,"38.bmp",1,1,1000)
      END_IF
      LCLICK(505,345) // клик по полю логина
      WAITMS (1000)
      TOCLIP($log) // скопировать логин в буфер
      лог(STRCONCAT(" :",$log))
      WAITMS (100)
      paste()
     
      KEYPRESS(#TAB) // переход на поле пароля
      WAITMS (1000)
     
      //LCLICK(505,395) // клик по полю пароля
      WAITMS (1000)
      TOCLIP($pass) // скопировать пароль в буфер
      WAITMS (100)
      paste()
     
      KEYPRESS(#ENTER) // Enter
      WAITMS (100)
      //LCLICK(640,470) // клик по "Вход"
      WAIT(10)
      // тут команды после входа
      $servera = STRCONCAT("servera_", $akk,".txt")
      $serv_len = TFCOUNT($servera)
      FOR($serv=1, $serv <= $serv_len)
         LCLICK(390,55) //клик по панель поиска
         WAIT(2)
         TOCLIP(TFREAD($servera,$serv))
         WAITMS(100)
         print("файл ", $servera)
         print("ссылка ", TFREAD($servera, $serv))
         лог(STRCONCAT("файл ", $servera))
         лог(STRCONCAT("ссылка ", TFREAD($servera, $serv)))
         paste()
         WAITMS(50)
         
         
         KEYPRESS(#ENTER)
         WAIT (5)
         // тут команды после
         картинка(0,0,$_xmax,$_ymax,"1.bmp",2,2,2000)
         GETSCREEN(0,0,$_xmax,$_ymax)
         IF_PIXEL_IN(0,0,$_xmax,$_ymax, 16777215)
            клик($_return1, $_return2,2000)
         END_IF
         WAIT(10)
         GETSCREEN(0,0,$_xmax,$_ymax)
         IF_PICTURE_IN (0,0,$_xmax,$_ymax, "2.bmp", - 1, 100)
            клик($_return1+15,$_return2+15,2000)
         ELSE
            $check = 0
            WHILE($check = 0)
               KEYPRESS(#F5)  // обновить страницу
               WAIT(15)
               картинка(0,0,$_xmax,$_ymax,"2.bmp",15,15,2000)
            END_CYC
         END_IF
         WAIT(3)
         картинка(0,0,$_xmax,$_ymax,"3.bmp",2,2,2000)
         GETSCREEN(0,0,$_xmax,$_ymax)
         IF_PIXEL_IN(0,0,$_xmax,$_ymax, 16777215)
            клик($_return1, $_return2,2000)
         END_IF
         картинка(0,0,$_xmax,$_ymax,"6.bmp",2,2,2000)//
         картинка(0,0,$_xmax,$_ymax,"6.bmp",2,2,2000)//
         картинка(0,0,$_xmax,$_ymax,"6.bmp",2,2,2000)//
         картинка(0,0,$_xmax,$_ymax,"7.bmp",2,2,2000)//
         картинка(0,0,$_xmax,$_ymax,"8.bmp",2,2,2000)//
         картинка(0,0,$_xmax,$_ymax,"4.bmp",2,2,2000)
         картинка(0,0,$_xmax,$_ymax,"32.bmp",7,7,2000)
         картинка(0,0,$_xmax,$_ymax,"5.bmp",2,2,2000)
         картинка(0,0,$_xmax,$_ymax,"33.bmp",2,2,2000)
         картинка(0,0,$_xmax,$_ymax,"6.bmp",2,2,2000)
         картинка(0,0,$_xmax,$_ymax,"15.bmp",2,2,5000)//
         картинка(0,0,$_xmax,$_ymax,"16.bmp",2,2,3000)//
         картинка(0,0,$_xmax,$_ymax,"17.bmp",2,2,2000)//
         клик(527,190,2000) //
         клик(518,370,2000)//
         клик(564,585,2000)//
         клик(654,188,2000) //
         клик(571,310,2000) //
         картинка(0,0,$_xmax,$_ymax,"20.bmp",2,2,2000) //
         картинка(0,0,$_xmax,$_ymax,"21.bmp",2,2,2000) //
         картинка(0,0,$_xmax,$_ymax,"6.bmp",2,2,2000)//
         картинка(0,0,$_xmax,$_ymax, "22.bmp",15,15,2000)
         GETSCREEN(0,0,$_xmax,$_ymax)
         IF_PICTURE_IN (0,0,$_xmax,$_ymax, "23.bmp", - 1, 100)//
            клик($_return1+2, $_return2+2,2000)
            клик(567,493,2000)  //
         END_IF
         GETSCREEN(0,0,$_xmax,$_ymax)
         IF_PICTURE_IN (0,0,$_xmax,$_ymax, "24.bmp", - 1, 100)//
            клик($_return1+5, $_return2+5,2000)
            GETSCREEN(0,0,$_xmax,$_ymax)
            IF_PICTURE_IN (0,0,$_xmax,$_ymax, "25.bmp", - 1, 100)//
               клик($_return1+5, $_return2+5,2000)
               картинка(0,0,$_xmax,$_ymax, "26.bmp",5,5,2000)//
            END_IF
         END_IF
         WAIT(1)
         KEYPRESS(#B)
         WAIT(3)
         
         GETSCREEN(0,0,$_xmax,$_ymax)
         IF_PICTURE_IN (0,0,$_xmax,$_ymax, "27.bmp", - 1, 100)
            DBLCLICK($_return1+15, $_return2+15)
            WAIT(1)
            картинка(0,0,$_xmax,$_ymax, "34.bmp",5,5,2000)
         END_IF
         GETSCREEN(0,0,$_xmax,$_ymax)
         IF_PICTURE_IN (0,0,$_xmax,$_ymax, "28.bmp", - 1, 100)
            MOVE($_return1+15, $_return2+15)
            WAIT(1)
            IF(FExists(STRCONCAT("C:\files\twin1\",$_date_y,"-",$_date_m,"-",$_date_d)) = 0)//если папки с датой нету
               FCreate(STRCONCAT("C:\files\twin1\",$_date_y,"-",$_date_m,"-",$_date_d))//то создаем ее  - E:\files\twin1\6-11-2019  на сегодняшний день
            END_IF
            SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT ("C:\files\twin1\",$_date_y,"-",$_date_m,"-",$_date_d,"\file", $n,".bmp"))
            inc($n)
         END_IF
         WAIT(1)
         KEYPRESS(#B)
         WAIT(1)
$older = 10  // старее N дней
 
IF($sgfvkvjgka = 0)
    STRSEPARATE("31,28,31,30,31,30,31,31,30,31,30,31", ",", $md)
    $sgfvkvjgka = 1
END_IF
 
day_of_year($_date_d, $_date_m, $_date_y)
$cur_day = $full_day
 
GETDIRLIST($twins, "C:\files\twin*")
FOR($tw=0, $tw < ARRSIZE($twins))
    $twin = $twins[$tw]
    LOGWRITE($twin)
 
    $mask = STRCONCAT("C:\files\", $twin, "\*")
    GETDIRLIST($dirs, $mask)
    FOR($i=0, $i < ARRSIZE($dirs))
        $dir = $dirs[$i]
        STRSEPARATE($dir, "-", $dat)
        day_of_year(INT($dat[0]), INT($dat[1]), INT($dat[2]))
        $folder_day = $full_day
 
        IF(($cur_day - $folder_day) > $older-1)
            $fullname = STRCONCAT("C:\files\", $twin, "\", $dir)
            FDELETE($fullname)
            LOGWRITE("   ├─", $dir, "   Old  ", $fullname)     
        ELSE
            LOGWRITE("   ├─", $dir)
            //LOGWRITE("   ├─", $dir, "   Ok")
        END_IF
    END_CYC
    //LOGWRITE()
END_CYC

         // вызов подпрограммы распознавания
         GETSCREEN
         COLORMODE(8)
         recognize(131,118, 175,140) // область распознавания
         LOGWRITE($str) // переменная с результатом (смотрим лог)
         лог(STRCONCAT(": ", $str)) // комбинированная запись
         WAITMS (50)
         
         картинка(0,0,$_xmax,$_ymax,"29.bmp",2,2,2000)//
         картинка(0,0,$_xmax,$_ymax,"30.bmp",2,2,2000)//
         картинка(0,0,$_xmax,$_ymax,"31.bmp",2,2,3000)//
         картинка(0,0,$_xmax,$_ymax,"31.bmp",2,2,3000)//
         картинка(0,0,$_xmax,$_ymax,"6.bmp",2,2,2000)//

      END_CYC
      лог(STRCONCAT("1")) // комбинированная запись
     
      WAIT(5)
   else
      LCLICK(390,55) //клик по панель поиска
      WAITMS (500)
      $portal = TFREAD("portal.txt", 2)
      // здесь ввод строки, чтобы это не значило
      TOCLIP($portal) //скопировать
      WAITMS (1000)
      paste()
      KEYPRESS(#ENTER) // Enter
      WAITMS (100)
      WAITMS (5000)
      //LCLICK(217, 624) //
      WAITMS (500)
      картинка(0,0,$_xmax,$_ymax,"42.bmp",2,2,2000)
      //LCLICK(360,170) // клик по вход
      WAITMS (500)
      картинка(0,0,$_xmax,$_ymax,"39.bmp",2,2,2000)
      WAITMS (5000)
      LCLICK(355,236) // клик по полю логина
      WAITMS (1000)
      TOCLIP($log) // скопировать логин в буфер
      лог(STRCONCAT(" :",$log))
      WAITMS (100)
      paste()
     
      KEYPRESS(#TAB) // переход на поле пароля
      WAITMS (1000)
     
      //LCLICK(505,395) // клик по полю пароля
      WAITMS (1000)
      TOCLIP($pass) // скопировать в пароль в буфер
      WAITMS (100)
      paste()
     
      KEYPRESS(#ENTER) // Enter
      WAITMS (100)
      //LCLICK(640,470) // клик по "Вход"
      WAIT(10)
      // тут команды после входа
      $servera = STRCONCAT("servera_", $akk,".txt")
      $serv_len = TFCOUNT($servera)
      FOR($serv=1, $serv <= $serv_len)
         LCLICK(390,55) //клик по панель поиска
         WAIT(2)
         TOCLIP(TFREAD($servera,$serv))
         WAITMS(100)
         print("файл ", $servera)
         print("ссылка ", TFREAD($servera, $serv))
         лог(STRCONCAT("файл ", $servera))
         лог(STRCONCAT("ссылка ", TFREAD($servera, $serv)))
         paste()
         WAITMS(50)
         
         
         KEYPRESS(#ENTER)
         WAIT (10)
         // тут команды после
         картинка(0,0,$_xmax,$_ymax,"1.bmp",2,2,2000)
      GETSCREEN(0,0,$_xmax,$_ymax)
      IF_PIXEL_IN(0,0,$_xmax,$_ymax, 16777215)
         клик($_return1, $_return2,2000)
      END_IF
      WAIT(30)
      GETSCREEN(0,0,$_xmax,$_ymax)
      IF_PICTURE_IN (0,0,$_xmax,$_ymax, "2.bmp", - 1, 100)
         клик($_return1+15,$_return2+15,2000)
      ELSE
         $check = 0
         WHILE($check = 0)
            KEYPRESS(#F5)  // обновить страницу
            WAIT(30)
            картинка(0,0,$_xmax,$_ymax,"2.bmp",15,15,2000)
         END_CYC
      END_IF
      WAIT(3)
      картинка(0,0,$_xmax,$_ymax,"3.bmp",2,2,2000)
      GETSCREEN(0,0,$_xmax,$_ymax)
      IF_PIXEL_IN(0,0,$_xmax,$_ymax, 16777215)
         клик($_return1, $_return2,2000)
      END_IF
      картинка(0,0,$_xmax,$_ymax,"6.bmp",2,2,2000)//
      картинка(0,0,$_xmax,$_ymax,"6.bmp",2,2,2000)//
      картинка(0,0,$_xmax,$_ymax,"6.bmp",2,2,2000)//
      картинка(0,0,$_xmax,$_ymax,"4.bmp",2,2,2000)
      картинка(0,0,$_xmax,$_ymax,"32.bmp",10,8,2000)
      картинка(0,0,$_xmax,$_ymax,"5.bmp",2,2,2000)
      картинка(0,0,$_xmax,$_ymax,"6.bmp",2,2,2000)
      картинка(0,0,$_xmax,$_ymax,"15.bmp",2,2,5000)//
      картинка(0,0,$_xmax,$_ymax,"16.bmp",2,2,3000)//
      картинка(0,0,$_xmax,$_ymax,"17.bmp",2,2,2000)//
      клик(406,295,2000) //
      картинка(0,0,$_xmax,$_ymax,"18.bmp",2,2,2000)//
      картинка(0,0,$_xmax,$_ymax,"19.bmp",2,2,5000)//
      клик(527,190,2000) //
      клик(518,370,2000)//
      клик(564,585,2000)//
      клик(654,188,2000) //
      клик(571,310,2000) //
      картинка(0,0,$_xmax,$_ymax,"20.bmp",2,2,2000) //
      картинка(0,0,$_xmax,$_ymax,"21.bmp",2,2,2000) //
      картинка(0,0,$_xmax,$_ymax,"6.bmp",2,2,2000)
      картинка(0,0,$_xmax,$_ymax,"7.bmp",2,2,2000)//
      картинка(0,0,$_xmax,$_ymax,"8.bmp",2,2,2000)//
      картинка(0,0,$_xmax,$_ymax, "9.bmp",15,15, 2000)
      картинка(0,0,$_xmax,$_ymax, "10.bmp",0,0, 5000)
      ожидание_картинки(0,0,$_xmax,$_ymax,"11.bmp",90,0,0,2000)
      картинка(0,0,$_xmax,$_ymax, "12.bmp",0,0, 2000)
      клик(643,340,2000)  //
      KEYPRESS(#9)
      WAITMS(2000)
      картинка(0,0,$_xmax,$_ymax, "13.bmp",0,0, 2000)
      GETSCREEN(0,0,$_xmax,$_ymax)
      IF_PICTURE_IN (0,0,$_xmax,$_ymax, "14.bmp", - 1, 100)
         клик($_return1, $_return2,2000)  //
      END_IF
      картинка(0,0,$_xmax,$_ymax,"6.bmp",2,2,2000)//
      картинка(0,0,$_xmax,$_ymax, "22.bmp",15,15,2000)
      GETSCREEN(0,0,$_xmax,$_ymax)
      IF_PICTURE_IN (0,0,$_xmax,$_ymax, "23.bmp", - 1, 100)//
         клик($_return1+2, $_return2+2,2000)
         клик(567,493,2000)  //
      END_IF
      GETSCREEN(0,0,$_xmax,$_ymax)
      IF_PICTURE_IN (0,0,$_xmax,$_ymax, "24.bmp", - 1, 100)//
         клик($_return1+5, $_return2+5,2000)
         GETSCREEN(0,0,$_xmax,$_ymax)
         IF_PICTURE_IN (0,0,$_xmax,$_ymax, "25.bmp", - 1, 100)//
            клик($_return1+5, $_return2+5,2000)
            картинка(0,0,$_xmax,$_ymax, "26.bmp",5,5,2000)//
         END_IF
      END_IF
      WAIT(1)
      KEYPRESS(#B)
      WAIT(3)
     
      GETSCREEN(0,0,$_xmax,$_ymax)
      IF_PICTURE_IN (0,0,$_xmax,$_ymax, "27.bmp", - 1, 100)
         DBLCLICK($_return1+15, $_return2+15)
         WAIT(1)
         картинка(0,0,$_xmax,$_ymax, "34.bmp",5,5,2000)
      END_IF
      GETSCREEN(0,0,$_xmax,$_ymax)
      IF_PICTURE_IN (0,0,$_xmax,$_ymax, "28.bmp", - 1, 100)
         MOVE($_return1+15, $_return2+15)
         WAIT(1)
         IF(FExists(STRCONCAT("C:\files\twin1\",$_date_y,"-",$_date_m,"-",$_date_d)) = 0)//если папки с датой нету
            FCreate(STRCONCAT("C:\files\twin1\",$_date_y,"-",$_date_m,"-",$_date_d))//то создаем ее  - E:\files\twin1\6-11-2019  на сегодняшний день
         END_IF
         SCREENSHOTFIX(0,0,$_xmax,$_ymax,STRCONCAT ("C:\files\twin1\",$_date_y,"-",$_date_m,"-",$_date_d,"\file", $n,".bmp"))
         inc($n)
      END_IF
      WAIT(1)
      KEYPRESS(#B)
      WAIT(1)

$older = 10  // старее N дней
 
IF($sgfvkvjgka = 0)
    STRSEPARATE("31,28,31,30,31,30,31,31,30,31,30,31", ",", $md)
    $sgfvkvjgka = 1
END_IF
 
 
day_of_year($_date_d, $_date_m, $_date_y)
$cur_day = $full_day
 
GETDIRLIST($twins, "C:\files\twin*")
FOR($tw=0, $tw < ARRSIZE($twins))
    $twin = $twins[$tw]
    LOGWRITE($twin)
 
    $mask = STRCONCAT("C:\files\", $twin, "\*")
    GETDIRLIST($dirs, $mask)
    FOR($i=0, $i < ARRSIZE($dirs))
        $dir = $dirs[$i]
        STRSEPARATE($dir, "-", $dat)
        day_of_year(INT($dat[0]), INT($dat[1]), INT($dat[2]))
        $folder_day = $full_day
 
        IF(($cur_day - $folder_day) > $older-1)
            $fullname = STRCONCAT("C:\files\", $twin, "\", $dir)
            FDELETE($fullname)
            LOGWRITE("   ├─", $dir, "   Old  ", $fullname)     
        ELSE
            LOGWRITE("   ├─", $dir)
            //LOGWRITE("   ├─", $dir, "   Ok")
        END_IF
    END_CYC
    //LOGWRITE()
END_CYC


      // вызов подпрограммы распознавания
      GETSCREEN
      COLORMODE(8)
      recognize(131,118, 175,140) // область распознавания
      LOGWRITE($str) // переменная с результатом (смотрим лог)
      лог(STRCONCAT(": ", $str)) // комбинированная запись
      WAITMS (50)
     
      картинка(0,0,$_xmax,$_ymax,"29.bmp",2,2,2000)//
      картинка(0,0,$_xmax,$_ymax,"30.bmp",2,2,2000)//
      картинка(0,0,$_xmax,$_ymax,"31.bmp",2,2,3000)//
      картинка(0,0,$_xmax,$_ymax,"31.bmp",2,2,3000)//
      картинка(0,0,$_xmax,$_ymax,"6.bmp",2,2,2000)//
         
      END_CYC
     
   END_IF
   IF($akk < 5)
      //выход
      картинка(0,0,$_xmax,$_ymax,"36.bmp",2,2,2000)
      картинка(0,0,$_xmax,$_ymax,"37.bmp",2,2,2000)
      //LCLICK(1175,101)  // 2467327
      WAIT(5)
   ELSE
      //выход
      LCLICK(390,55) //клик по панель поиска
      WAITMS (500)
      $portal = TFREAD("portal.txt", 2)
      TOCLIP($portal) //скопировать
      WAITMS (1000)
      paste()
      KEYPRESS(#ENTER)
      WAIT (3)
      KEYPRESS(#PAGEDOWN)
      WAITMS (2000)
     
      картинка(0,0,$_xmax,$_ymax,"41.bmp",2,2,2000)
     
      //LCLICK(1175,101)  // 2467327
      WAIT(10)
   END_IF
   лог(STRCONCAT("2")) // комбинированная запись
END_CYC
END_THREAD
THREAD(t2) //поток проверки Adobe Flash Player'а на краш
IF(WNDFIND("Adobe Flash")>0) //если найдено окно с заголовком Adobe Flash
SETTHREAD(t1,0) //ставим поток t1 на паузу
//здесь действия по перезапуску игры
SETTHREAD(t1,1) //снимаем поток t1 с паузы
END_IF
WAIT(60) //периодичность проверки на краш Adobe Flash Player'а
END_THREAD
halt

Viktor77

  • Активный участник
  • ***
  • Posts: 106
    • View Profile
Re: Работа с ссылками
« Reply #41 on: November 07, 2020, 08:38:19 PM »
Ты не можешь условие вставить?
помогите пожалуйста найти в чем проблема, не пойму что не верно в потоке, не работает(
Code: (clickermann) [Select]
//=============================================
SUB(клик,$par1,$par2,$par3) //========== клик =================
   LCLICK($par1,$par2)
   WAITMS($par3)
END_SUB
//========= поиск картинки ====================================
SUB(картинка,$par4,$par5,$par6,$par7,$par8,$par9,$par10,$par11)
   GETSCREEN($par4,$par5,$par6,$par7)
   IF_PICTURE_IN ($par4,$par5,$par6,$par7,$par8, -1, 100)
      $check = 1
      клик($_return1+$par9,$_return2+$par10,$par11)
   END_IF
END_SUB
//============ ожидание картинки ==============================
SUB(ожидание_картинки,$par21,$par22,$par23,$par24,$par25,$par26,$par27,$par28,$par29)
   $check = 0
   WHILE($check = 0)
      GETSCREEN($par21,$par22,$par23,$par24)
      IF_PICTURE_IN ($par21,$par22,$par23,$par24,$par25, -1,$par26)
         $check = 1
         клик($_return1+$par27,$_return2+$par28,$par29)
      ELSE    // если не найдена  11.bmp
         клик(309,610,2000) // сменить главу
      END_IF
   END_CYC
END_SUB
//=============================================
SUB(paste) //========== Вставить ==============================
   KEYDOWN(#CTRL) // Ctrl+V
   WAITMS(50)
   KEYPRESS(#V)
   WAITMS(50)
   KEYUP(#CTRL)
   WAITMS(2000)
END_SUB
//=============================================
//=============================================
SUB(лог,$note) //=============== Запись в лог файл =============
   IF($note = "пробел")
      LOGWRITE (" ")
      TFWRITE("Log.txt", " ")
   ELSE
      $th = $_time_h
      $tm = $_time_m
      $ts = $_time_s
      $dd = $_date_d
      $dm = $_date_m
      $dy = $_date_y
     
      IF(STRLEN($th)<2)
         $th = STRCONCAT ("0", $th)
      END_IF
      IF(STRLEN($tm)<2)
         $tm = STRCONCAT ("0", $tm)
      END_IF
      IF(STRLEN($ts)<2)
         $ts = STRCONCAT ("0", $ts)
      END_IF
      IF(STRLEN($dd)<2)
         $dd = STRCONCAT ("0", $dd)
      END_IF
      IF(STRLEN($dm)<2)
         $dm = STRCONCAT ("0", $dm)
      END_IF
      IF(STRLEN($dy)<2)
         $dy = STRCONCAT ("0", $dy)
      END_IF
      LOGWRITE ($dd,".",$dm,".",$dy," ",$th,":",$tm,":",$ts, " ", $note) // запись в лог
      TFWRITE("Log.txt", STRCONCAT($dd,".",$dm,".",$dy," ",$th,":",$tm,":",$ts, " ", $note))
   END_IF
END_SUB
//=============================================
SUB(recognize, $x1,$y1, $x2,$y2) //== Распознавание символов ==
   GETFILELIST($Letters_arr, "Letters\*.bmp")
   FOR($Let_num=0,$Let_num<ARRSIZE($Letters_arr))
      STRSEPARATE($Letters_arr[$Let_num], "_", $a_l)
      SCANPICTURE($ARR_SCAN, $x1,$y1, $x2,$y2, STRCONCAT("Letters\", $Letters_arr[$Let_num]), -1, STRREPLACE($a_l[ARRSIZE($a_l)-1],".bmp",""))
      UNDEFINE($a_l)
      FOR($arr_num=0,$arr_num<ARRSIZE($ARR_SCAN),2)
         ARRPUSH($ARR_OUT, $ARR_SCAN[$arr_num])
         ARRPUSH($ARR_OUT, STRCUT($Letters_arr[$Let_num], 1, 1))
      END_CYC
      UNDEFINE($ARR_SCAN)
   END_CYC
   $siz = ARRSIZE($ARR_OUT)
   $srtcheck = 0
   $srt = 0
   FOR($a=$siz-2,($a>0)&($srt=0),-2)
      FOR($b=0,$b<$a,2)
         IF($ARR_OUT[$b] > $ARR_OUT[$b+2])
            $srtcheck = 1
            $tmp = $ARR_OUT[$b]
            $tmp2 = $ARR_OUT[$b+1]
            $ARR_OUT[$b] = $ARR_OUT[$b+2]
            $ARR_OUT[$b+1] = $ARR_OUT[$b+3]
            $ARR_OUT[$b+2] = $tmp
            $ARR_OUT[$b+3] = $tmp2
         END_IF
      END_CYC
      IF($srtcheck = 0)
         $srt = 1
      END_IF
   END_CYC
   $str = ""
   FOR($a=0,$a<ARRSIZE($ARR_OUT),2)
      IF(STRLEN($str) > 0)
         IF($ARR_OUT[$a]-$ARR_OUT[$a-2] > 50) // определение пробела (сколько пикселов между символами считать за пробел)
            $str = STRCONCAT($str, " ")
         END_IF
         $str = STRCONCAT($str, $ARR_OUT[$a+1])
      ELSE
         $str = $ARR_OUT[$a+1]
      END_IF
   END_CYC
   UNDEFINE($ARR_OUT)
   UNDEFINE($ARR_SCAN)
END_SUB
//=============================================

LOGCLEAR
TFCLEAR("Log.txt", 0)
WAITMS(50)
LOGWRITE("")
WAITMS(50)
лог(STRCONCAT("")) // комбинированная запись
THREAD(t1)
   $akk_total = TFCOUNT("LogPass.txt")
   LOGWRITE("Всего аккаунтов: ", $akk_total)
   лог(STRCONCAT("Всего аккаунтов: ", $akk_total))
   FOR($akk=1, $akk <= $akk_total)
      LOGWRITE("Текущий аккаунт: ", $akk)
      лог(STRCONCAT("Текущий аккаунт: ", $akk))
      $str = TFREAD ("LogPass.txt", $akk)
      $log = STRCUT2 ($str, 1, STRPOS ($str, ":")-1)
      $pass = STRCUT2 ($str, STRPOS ($str, ":")+1, STRLEN ($str))
      клик(1271,1002,2000)
      DBLCLICK(785,30) //запуск браузера
      WAIT(20)
      IF($akk < 15)
         LCLICK(390,55) //клик по панель поиска
         WAITMS (500)
         $portal = TFREAD("portal.txt", 1)
         // здесь ввод строки, чтобы это не значило
         TOCLIP($portal) //скопировать
         WAITMS (1000)
         paste()
         KEYPRESS(#ENTER) // Enter
         WAITMS (100)
         WAITMS (5000)
         GETSCREEN(0,0,$_xmax,$_ymax)
         IF_PICTURE_IN (400,320,880,695, "55.bmp", - 1, 100)
            MOVE($_return1,$_return2)
            WAIT(2)
         ELSE
            WAIT(2)
            картинка(1040,90,1092,130,"38.bmp",1,1,5000)
         END_IF
         LCLICK(505,534) // клик по полю логина
         WAITMS (1000)
         TOCLIP($log) // скопировать логин в буфер
         лог(STRCONCAT(" :",$log))
         WAITMS (500)
         paste()
         
         KEYPRESS(#TAB) // переход на поле пароля
         WAITMS (1000)
         
         WAITMS (1000)
         TOCLIP($pass) // скопировать пароль в буфер
         WAITMS (500)
         paste()
         
         KEYPRESS(#ENTER) // Enter
         WAITMS (100)
         WAIT(10)
         // тут команды после входа
         $servera = STRCONCAT("servera_", $akk,".txt")
         $serv_len = TFCOUNT($servera)
         FOR($serv=1, $serv <= $serv_len)
            LCLICK(390,55) //клик по панель поиска
            WAIT(2)
            TOCLIP(TFREAD($servera,$serv))
            WAITMS(100)
            print("файл ", $servera)
            print("ссылка ", TFREAD($servera, $serv))
            лог(STRCONCAT("файл ", $servera))
            лог(STRCONCAT("ссылка ", TFREAD($servera, $serv)))
            paste()
            WAITMS(50)
           
           
            KEYPRESS(#ENTER)
            WAIT (5)
            // тут команды после
           
         END_CYC
         лог(STRCONCAT("")) // комбинированная запись
         
         WAIT(10)
      else
         LCLICK(390,55) //клик по панель поиска
         WAITMS (500)
         $portal = TFREAD("portal.txt", 2)
         // здесь ввод строки, чтобы это не значило
         TOCLIP($portal) //скопировать
         WAITMS (1000)
         paste()
         KEYPRESS(#ENTER) // Enter
         WAITMS (100)
         WAITMS (5000)
         //LCLICK(217, 624) //
         WAITMS (500)
         картинка(0,0,$_xmax,$_ymax,"42.bmp",2,2,2000)
         //LCLICK(360,170) // клик по вход
         WAITMS (500)
         картинка(0,0,$_xmax,$_ymax,"39.bmp",2,2,2000)
         WAITMS (5000)
         LCLICK(355,236) // клик по полю логина
         WAITMS (1000)
         TOCLIP($log) // скопировать логин в буфер
         лог(STRCONCAT(" :",$log))
         WAITMS (100)
         paste()
         
         KEYPRESS(#TAB) // переход на поле пароля
         WAITMS (1000)
         
         //LCLICK(505,395) // клик по полю пароля
         WAITMS (1000)
         TOCLIP($pass) // скопировать в пароль в буфер
         WAITMS (100)
         paste()
         
         KEYPRESS(#ENTER) // Enter
         WAITMS (100)
         //LCLICK(640,470) // клик по "Вход"
         WAIT(10)
         // тут команды после входа
         $servera = STRCONCAT("servera_", $akk,".txt")
         $serv_len = TFCOUNT($servera)
         FOR($serv=1, $serv <= $serv_len)
            LCLICK(390,55) //клик по панель поиска
            WAIT(2)
            TOCLIP(TFREAD($servera,$serv))
            WAITMS(100)
            print("файл ", $servera)
            print("ссылка ", TFREAD($servera, $serv))
            лог(STRCONCAT("файл ", $servera))
            лог(STRCONCAT("ссылка ", TFREAD($servera, $serv)))
            paste()
            WAITMS(50)
           
           
            KEYPRESS(#ENTER)
            WAIT (10)
            // тут команды после
           
           
         END_CYC
         
      END_IF
      IF($akk < 15)
         //выход
         картинка(0,0,$_xmax,$_ymax,"36.bmp",2,2,2000)
         WAIT(5)
         картинка(0,0,$_xmax,$_ymax,"37.bmp",2,2,2000)
         //print("37.bmp")
         //LCLICK(1170,120)  // 2467327
         WAIT(5)
         клик(1257,15,2000)  // закрыть браузер
         WAIT(3)
      ELSE
         //выход
         LCLICK(390,55) //клик по панель поиска
         WAITMS (500)
         $portal = TFREAD("portal.txt", 2)
         TOCLIP($portal) //скопировать
         WAITMS (1000)
         paste()
         KEYPRESS(#ENTER)
         WAIT (3)
         WAITMS (2000)
         
         картинка(0,0,$_xmax,$_ymax,"41.bmp",2,2,2000)
         
         //LCLICK(1175,101)  // 2467327
         WAIT(5)
         клик(1257,15,2000)  // закрыть браузер
         WAIT(3)
      END_IF
      лог(STRCONCAT("")) // комбинированная запись
   END_CYC
END_THREAD
THREAD(t2) //поток проверки Error
   SETTHREAD(t1,0) //ставим поток t1 на паузу, чтобы GETSCREEN второго потока не пересекался с GETSCREEN первого
   COLORMODE(7)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "ErrorCode.bmp", -1, 100)
      SETTHREAD(t1,2) //ставим поток t1 на паузу, при последующем снятии с паузы поток начинает выполняться с начала, независимо от того, на какой инструкции тела он был остановлен
      //здесь действия по перезапуску игры
      KEYPRESS(#F5)  // обновить страницу
      WAIT(20)
      картинка(0,0,$_xmax,$_ymax,"2.bmp",15,15,2000)
      SETTHREAD(t1,1) //снимаем поток t1 с паузы
   END_IF
   WAIT(60) //периодичность проверки на error
END_THREAD
halt

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Работа с ссылками
« Reply #42 on: November 07, 2020, 11:44:00 PM »
В каждом потоке нужно прописывать вызываемые подпрограммы. Если подпрограмма находится вне потока, то в потоке ее не вызвать.

Пример:
Code: (clickermann) [Select]
SUB(test, $par1)
   print($par1)
END_SUB

test("test вне потока")  //работатет

THREAD(name, 1)
   test("test в потоке")  //не работает
   
   SUB(test_thread, $par2)
      print($par2)
   END_SUB
   
   test_thread("test_thread в потоке")  //работает
   
   wait(1)
END_THREAD

halt

Viktor77

  • Активный участник
  • ***
  • Posts: 106
    • View Profile
Re: Работа с ссылками
« Reply #43 on: November 08, 2020, 05:59:59 PM »
В каждом потоке нужно прописывать вызываемые подпрограммы. Если подпрограмма находится вне потока, то в потоке ее не вызвать.

Пример:
Code: (clickermann) [Select]
SUB(test, $par1)
   print($par1)
END_SUB

test("test вне потока")  //работатет

THREAD(name, 1)
   test("test в потоке")  //не работает
   
   SUB(test_thread, $par2)
      print($par2)
   END_SUB
   
   test_thread("test_thread в потоке")  //работает
   
   wait(1)
END_THREAD

halt
так тоже не работает
Code: (clickermann) [Select]
THREAD(t1)
   //здесь весь основной скрипт
   
   //=============================================
   SUB(клик,$par1,$par2,$par3) //========== клик =================
      LCLICK($par1,$par2)
      WAITMS($par3)
   END_SUB
   //=============================================
   SUB(шаг,$par30,$par31,$par32) //========== шаг =================
      MOVE($par30,$par31)
      WAITMS($par32)
   END_SUB
   //========= поиск картинки ====================================
   SUB(картинка,$par4,$par5,$par6,$par7,$par8,$par9,$par10,$par11)
      GETSCREEN($par4,$par5,$par6,$par7)
      IF_PICTURE_IN ($par4,$par5,$par6,$par7,$par8, -1, 100)
         $check = 1
         клик($_return1+$par9,$_return2+$par10,$par11)
      END_IF
   END_SUB
   //============ ожидание картинки ==============================
   SUB(ожидание_картинки,$par21,$par22,$par23,$par24,$par25,$par26,$par27,$par28,$par29)
      $check = 0
      WHILE($check = 0)
         GETSCREEN($par21,$par22,$par23,$par24)
         IF_PICTURE_IN ($par21,$par22,$par23,$par24,$par25, -1,$par26)
            $check = 1
            клик($_return1+$par27,$_return2+$par28,$par29)
         ELSE    // если не найдена  11.bmp
            клик(309,610,2000) // сменить главу
         END_IF
      END_CYC
   END_SUB
   //=============================================
   SUB(paste) //========== Вставить ==============================
      KEYDOWN(#CTRL) // Ctrl+V
      WAITMS(50)
      KEYPRESS(#V)
      WAITMS(50)
      KEYUP(#CTRL)
      WAITMS(2000)
   END_SUB
   //=============================================
   //=============================================
   SUB(лог,$note) //=============== Запись в лог файл =============
      IF($note = "пробел")
         LOGWRITE (" ")
         TFWRITE("Log.txt", " ")
      ELSE
         $th = $_time_h
         $tm = $_time_m
         $ts = $_time_s
         $dd = $_date_d
         $dm = $_date_m
         $dy = $_date_y
         
         IF(STRLEN($th)<2)
            $th = STRCONCAT ("0", $th)
         END_IF
         IF(STRLEN($tm)<2)
            $tm = STRCONCAT ("0", $tm)
         END_IF
         IF(STRLEN($ts)<2)
            $ts = STRCONCAT ("0", $ts)
         END_IF
         IF(STRLEN($dd)<2)
            $dd = STRCONCAT ("0", $dd)
         END_IF
         IF(STRLEN($dm)<2)
            $dm = STRCONCAT ("0", $dm)
         END_IF
         IF(STRLEN($dy)<2)
            $dy = STRCONCAT ("0", $dy)
         END_IF
         LOGWRITE ($dd,".",$dm,".",$dy," ",$th,":",$tm,":",$ts, " ", $note) // запись в лог
         TFWRITE("Log.txt", STRCONCAT($dd,".",$dm,".",$dy," ",$th,":",$tm,":",$ts, " ", $note))
      END_IF
   END_SUB
   //=============================================
   SUB(recognize, $x1,$y1, $x2,$y2) //== Распознавание символов ==
      GETFILELIST($Letters_arr, "Letters\*.bmp")
      FOR($Let_num=0,$Let_num<ARRSIZE($Letters_arr))
         STRSEPARATE($Letters_arr[$Let_num], "_", $a_l)
         SCANPICTURE($ARR_SCAN, $x1,$y1, $x2,$y2, STRCONCAT("Letters\", $Letters_arr[$Let_num]), -1, STRREPLACE($a_l[ARRSIZE($a_l)-1],".bmp",""))
         UNDEFINE($a_l)
         FOR($arr_num=0,$arr_num<ARRSIZE($ARR_SCAN),2)
            ARRPUSH($ARR_OUT, $ARR_SCAN[$arr_num])
            ARRPUSH($ARR_OUT, STRCUT($Letters_arr[$Let_num], 1, 1))
         END_CYC
         UNDEFINE($ARR_SCAN)
      END_CYC
      $siz = ARRSIZE($ARR_OUT)
      $srtcheck = 0
      $srt = 0
      FOR($a=$siz-2,($a>0)&($srt=0),-2)
         FOR($b=0,$b<$a,2)
            IF($ARR_OUT[$b] > $ARR_OUT[$b+2])
               $srtcheck = 1
               $tmp = $ARR_OUT[$b]
               $tmp2 = $ARR_OUT[$b+1]
               $ARR_OUT[$b] = $ARR_OUT[$b+2]
               $ARR_OUT[$b+1] = $ARR_OUT[$b+3]
               $ARR_OUT[$b+2] = $tmp
               $ARR_OUT[$b+3] = $tmp2
            END_IF
         END_CYC
         IF($srtcheck = 0)
            $srt = 1
         END_IF
      END_CYC
      $str = ""
      FOR($a=0,$a<ARRSIZE($ARR_OUT),2)
         IF(STRLEN($str) > 0)
            IF($ARR_OUT[$a]-$ARR_OUT[$a-2] > 50) // определение пробела (сколько пикселов между символами считать за пробел)
               $str = STRCONCAT($str, " ")
            END_IF
            $str = STRCONCAT($str, $ARR_OUT[$a+1])
         ELSE
            $str = $ARR_OUT[$a+1]
         END_IF
      END_CYC
      UNDEFINE($ARR_OUT)
      UNDEFINE($ARR_SCAN)
   END_SUB
   //=============================================
   LOGCLEAR
   TFCLEAR("Log.txt", 0)
   WAITMS(50)
   LOGWRITE("")
   WAITMS(50)
   лог(STRCONCAT("")) // комбинированная запись
   
   $akk_total = TFCOUNT("LogPass.txt")
   LOGWRITE("Всего аккаунтов: ", $akk_total)
   лог(STRCONCAT("Всего аккаунтов: ", $akk_total))
   FOR($akk=1, $akk <= $akk_total)
      LOGWRITE("Текущий аккаунт: ", $akk)
      лог(STRCONCAT("Текущий аккаунт: ", $akk))
      $str = TFREAD ("LogPass.txt", $akk)
      $log = STRCUT2 ($str, 1, STRPOS ($str, ":")-1)
      $pass = STRCUT2 ($str, STRPOS ($str, ":")+1, STRLEN ($str))
      клик(1271,1002,2000)
      DBLCLICK(785,30) //запуск браузера
      WAIT(20)
      IF($akk < 15)
         LCLICK(390,55) //клик по панель поиска
         WAITMS (500)
         $portal = TFREAD("portal.txt", 1)
         // здесь ввод строки, чтобы это не значило
         TOCLIP($portal) //скопировать
         WAITMS (1000)
         paste()
         KEYPRESS(#ENTER) // Enter
         WAITMS (100)
         WAITMS (5000)
         GETSCREEN(0,0,$_xmax,$_ymax)
         IF_PICTURE_IN (400,320,880,695, "55.bmp", - 1, 100)
            MOVE($_return1,$_return2)
            WAIT(2)
         ELSE
            WAIT(2)
            картинка(1040,90,1092,130,"38.bmp",1,1,5000)
         END_IF
         LCLICK(505,534) // клик по полю логина
         WAITMS (1000)
         TOCLIP($log) // скопировать логин в буфер
         лог(STRCONCAT(" :",$log))
         WAITMS (500)
         paste()
         
         KEYPRESS(#TAB) // переход на поле пароля
         WAITMS (1000)
         
         WAITMS (1000)
         TOCLIP($pass) // скопировать пароль в буфер
         WAITMS (500)
         paste()
         
         KEYPRESS(#ENTER) // Enter
         WAITMS (100)
         WAIT(10)
         // тут команды после входа
         $servera = STRCONCAT("servera_", $akk,".txt")
         $serv_len = TFCOUNT($servera)
         FOR($serv=1, $serv <= $serv_len)
            LCLICK(390,55) //клик по панель поиска
            WAIT(2)
            TOCLIP(TFREAD($servera,$serv))
            WAITMS(100)
            print("файл ", $servera)
            print("ссылка ", TFREAD($servera, $serv))
            лог(STRCONCAT("файл ", $servera))
            лог(STRCONCAT("ссылка ", TFREAD($servera, $serv)))
            paste()
            WAITMS(50)
           
           
            KEYPRESS(#ENTER)
            WAIT (5)
            // тут команды после
           
         END_CYC
         лог(STRCONCAT("")) // комбинированная запись
         
         WAIT(10)
      else
         LCLICK(390,55) //клик по панель поиска
         WAITMS (500)
         $portal = TFREAD("portal.txt", 2)
         // здесь ввод строки, чтобы это не значило
         TOCLIP($portal) //скопировать
         WAITMS (1000)
         paste()
         KEYPRESS(#ENTER) // Enter
         WAITMS (100)
         WAITMS (5000)
         //LCLICK(217, 624) //
         WAITMS (500)
         картинка(0,0,$_xmax,$_ymax,"42.bmp",2,2,2000)
         //LCLICK(360,170) // клик по вход
         WAITMS (500)
         картинка(0,0,$_xmax,$_ymax,"39.bmp",2,2,2000)
         WAITMS (5000)
         LCLICK(355,236) // клик по полю логина
         WAITMS (1000)
         TOCLIP($log) // скопировать логин в буфер
         лог(STRCONCAT(" :",$log))
         WAITMS (100)
         paste()
         
         KEYPRESS(#TAB) // переход на поле пароля
         WAITMS (1000)
         
         //LCLICK(505,395) // клик по полю пароля
         WAITMS (1000)
         TOCLIP($pass) // скопировать в пароль в буфер
         WAITMS (100)
         paste()
         
         KEYPRESS(#ENTER) // Enter
         WAITMS (100)
         //LCLICK(640,470) // клик по "Вход"
         WAIT(10)
         // тут команды после входа
         $servera = STRCONCAT("servera_", $akk,".txt")
         $serv_len = TFCOUNT($servera)
         FOR($serv=1, $serv <= $serv_len)
            LCLICK(390,55) //клик по панель поиска
            WAIT(2)
            TOCLIP(TFREAD($servera,$serv))
            WAITMS(100)
            print("файл ", $servera)
            print("ссылка ", TFREAD($servera, $serv))
            лог(STRCONCAT("файл ", $servera))
            лог(STRCONCAT("ссылка ", TFREAD($servera, $serv)))
            paste()
            WAITMS(50)
           
           
            KEYPRESS(#ENTER)
            WAIT (30)
            // тут команды после
           
           
         END_CYC
         
      END_IF
      IF($akk < 15)
         //выход
         картинка(0,0,$_xmax,$_ymax,"36.bmp",2,2,2000)
         WAIT(5)
         картинка(0,0,$_xmax,$_ymax,"37.bmp",2,2,2000)
         //print("37.bmp")
         //LCLICK(1170,120)  // 2467327
         WAIT(5)
         клик(1257,15,2000)  // закрыть браузер
         WAIT(3)
      ELSE
         //выход
         LCLICK(390,55) //клик по панель поиска
         WAITMS (500)
         $portal = TFREAD("portal.txt", 2)
         TOCLIP($portal) //скопировать
         WAITMS (1000)
         paste()
         KEYPRESS(#ENTER)
         WAIT (3)
         WAITMS (2000)
         
         картинка(0,0,$_xmax,$_ymax,"41.bmp",2,2,2000)
         
         //LCLICK(1175,101)  // 2467327
         WAIT(5)
         клик(1257,15,2000)  // закрыть браузер
         WAIT(3)
      END_IF
      лог(STRCONCAT("")) // комбинированная запись
   END_CYC
   WAIT(3)
END_THREAD
THREAD(t2) //поток проверки Error
   //=============================================
   SUB(шаг,$par30,$par31,$par32) //========== шаг =================
      MOVE($par30,$par31)
      WAITMS($par32)
   END_SUB
   SETTHREAD(t1,0) //ставим поток t1 на паузу, чтобы GETSCREEN второго потока не пересекался с GETSCREEN первого
   
   GETSCREEN
   COLORMODE(7)
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "ErrorCode.bmp", -1, 100)
      шаг($_return1, $_return2,2000)
      SETTHREAD(t1,2) //ставим поток t1 на паузу, при последующем снятии с паузы поток начинает выполняться с начала, независимо от того, на какой инструкции тела он был остановлен
      //здесь действия по перезапуску игры
      KEYPRESS(#F5)  // обновить страницу
      WAIT(20)
      GETSCREEN
      IF_PICTURE_IN(0,0,$_xmax,$_ymax,"2.bmp")
         шаг($_return1, $_return2,2000)
      END_IF
      WAITMS(500)
      SETTHREAD(t1,1) //снимаем поток t1 с паузы
   ELSE
      IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Adobe Flash Player color7.bmp", -1, 100)
         шаг($_return1, $_return2,2000)
         SETTHREAD(t1,2) //ставим поток t1 на паузу, при последующем снятии с паузы поток начинает выполняться с начала, независимо от того, на какой инструкции тела он был остановлен
         //здесь действия по перезапуску игры
         KEYPRESS(#F5)  // обновить страницу
         WAIT(20)
         GETSCREEN
         IF_PICTURE_IN(0,0,$_xmax,$_ymax,"2.bmp")
            шаг($_return1, $_return2,3000)
         END_IF
      END_IF
   END_IF
   SETTHREAD(t1,1) //снимаем поток t1 с паузы
   WAIT(60) //периодичность проверки на error
END_THREAD
halt

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Работа с ссылками
« Reply #44 on: November 09, 2020, 02:50:23 PM »
Не работает - растянутое понятие.

Где у тебя основной поток видишь? Там одна Команда HALT она останавливает весь скрипт.
Убери поток t2 пусть он будет основным (не надо его явно задавать THREAD(t2)...). Он у тебя не управляется, значит и запихивать код в поток нет смысла.