Author Topic: Прошу помочь со скриптом.  (Read 1654 times)

0 Members and 2 Guests are viewing this topic.

satman

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Прошу помочь со скриптом.
« on: May 30, 2017, 05:39:19 PM »
Здравствуйте.прошу помочь со скриптом.
Первый круг скрипт проходит а на втором останавливается на поиске зеленого квадрата в agclient 1.5
делаю стоп потом старт в Clickermann опять застреет на втром круге на  поиске зеленого квадрата.
скрипт
GETSCREEN  //  снимок зкрана в буфер
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "1.bmp", 65280, 100)  // поиск снимка "1.bmp"
   goto(autorun)  // если да то запуск autorun скрипта если нет то по кругу поиск "1.bmp"
   #autorun
   lDown(265,159)   
   waitms(141 + $S_CORR)
   lUp(265,159)       
   waitms(1500 + $S_CORR)
   move(353,661)
   waitms(612 + $S_CORR)
   lDown(353,661)       
   waitms(376 + $S_CORR)
   lUp(353,661)
           
   $x1 = 261
   $y1 = 115
   $x2 = 236
   $y2 = 374    // Область снимка капчи
   
   WAIT(1)
   $hwnd = wndFind("AGClient v1.5") // находим окно
   LOGWRITE ("AGClient hwnd: ", $hwnd)
   HINTPOPUP(STRCONCAT("hwnd: ", $hwnd), "AGClient")
   
   TFCLEAR("out.txt")
   WAITMS(50)
   TFWRITE("out.txt", "0")
   waitms(200)
   
   // последовательное задание координат
   PostMessage($hwnd, 0x555, 1, $x1)
   PostMessage($hwnd, 0x555, 2, $y1)
   PostMessage($hwnd, 0x555, 3, $x2)
   PostMessage($hwnd, 0x555, 4, $y2)
   PostMessage($hwnd, 0x555, 5, 0) // распознать
   waitms(200)
   while($indicator=0)    //ЦИКЛ ВРОДЕ))
    waitms(400)
      getscreen
      IF_PICTURE_IN (0,0, $_xmax,$_ymax, "3.bmp", -1, 100)  // ИЩЕМ ЗЕЛЕНЫЙ КВАДРАТИК
waitms(200)
$indicator=1
         waitms(200)
         LCLICK(679,440)
         WAITMS(100)
         KEYDOWN (#CTRL) // ----------------
         WAITMS (30)  //------------------------------
         KEYDOWN (#V) //-----------------------------------
         WAITMS (50) //---------------------------------------------
         KEYUP (#V)  //----------------------------------------------------  CTRL+V
         WAITMS (30) //---------------------------------------------
         KEYUP (#CTRL) //-------------------------------------
         WAITMS (100)  //----------------------------

         waitms(963 + $S_CORR)
         lDown(362,421)       
         waitms(337 + $S_CORR)
         lUp(362,421)         
         waitms(158 + $S_CORR)
         move(391,338)
         waitms(754 + $S_CORR)
         lDown(391,338)         
         waitms(267 + $S_CORR)
         lUp(391,338)           
         waitms(293 + $S_CORR)
         move(772,404)
         waitms(688 + $S_CORR)

      END_IF
   END_CYC
END_IF   // остановка скрипта далее на поиск  1.bmp
Спасибо.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Прошу помочь со скриптом.
« Reply #1 on: May 30, 2017, 06:20:00 PM »
Вот ты нашёл в первый раз присвоил
Code: (clickermann) [Select]
$indicator=1
и вышел из цикла. Всё. Больше переменную не меняешь нигде и в цикл
Code: (clickermann) [Select]
while($indicator=0)не войдёшь.

В начале нужно сбросить
Code: (clickermann) [Select]
$indicator = 0

И что это за приколы?
Code: (clickermann) [Select]
    goto(autorun)
    #autorun

#autorun нет смысла вкладывать в условия. Он если есть в скрипте то он УЖЕ действует.
goto(autorun) вообще путь в чёрную дыру. Хорошо что адрес чёрной дыры недействительный и инструкция не работает ;D


dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Прошу помочь со скриптом.
« Reply #2 on: May 30, 2017, 06:28:44 PM »
рабочий шаблон для версий начиная с 1.4 http://crapware.aidf.org/forum/index.php?topic=73.msg9014#msg9014

квадрат искать не обязательно, при этом у тебя лишние действия по созданию файла отчета "out.txt".

координаты капчи перепроверь, перепутаны координаты по Х .

твой скрипт без поиска квадрата на экране будет выглядеть примерно так. не забудь настроить файл конфига, а именно
Code: [Select]
; создание отчета
file_result_enable = 1

; имя файла с отчетом
file_result = out.txt


Code: (clickermann) [Select]
GETSCREEN  //  снимок зкрана в буфер
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "1.bmp", 65280, 100)  // поиск снимка "1.bmp"
   lDown(265,159)
   waitms(141 + $S_CORR)
   lUp(265,159)
   waitms(1500 + $S_CORR)
   move(353,661)
   waitms(612 + $S_CORR)
   lDown(353,661)
   waitms(376 + $S_CORR)
   lUp(353,661)
   
   $x1 = 261     //скорее всего  $x1 и   $x2 перепутаны местами, перепроверь координаты
   $y1 = 115
   $x2 = 236
   $y2 = 374   
   
   WAIT(1)
   $hwnd = wndFind("AGClient v1.5") // находим окно
   LOGWRITE ("AGClient hwnd: ", $hwnd)
   HINTPOPUP(STRCONCAT("hwnd: ", $hwnd), "AGClient")
   
   TFCLEAR("out.txt")
   WAITMS(50)
   TFWRITE("out.txt", "0")
   waitms(200)
   
   // последовательное задание координат
   PostMessage($hwnd, 0x555, 1, $x1)
   PostMessage($hwnd, 0x555, 2, $y1)
   PostMessage($hwnd, 0x555, 3, $x2)
   PostMessage($hwnd, 0x555, 4, $y2)
   PostMessage($hwnd, 0x555, 5, 0) // распознать
   waitms(200)
   
   $response = 0
   
   WHILE($response = 0)        //ожидание ответа
      $response = TFREAD("out.txt", 1)
      LOGWRITE ("Ответ: ", $response)
      WAITMS(500)
   END_CYC
   
   IF ($response = 1)
      LOGWRITE ("Распознано. Ответ: ", TFREAD("out.txt", 2))
      WAITMS(300)
     
      //   действия после распознания
      TOCLIP (TFREAD("out.txt", 2))  //строку в буфер
      waitms(200)
      LCLICK(679,440)                 //и далее действия
      WAITMS(100)
      KEYDOWN (#CTRL) // ----------------
      WAITMS (30)  //------------------------------
      KEYDOWN (#V) //-----------------------------------
      WAITMS (50) //---------------------------------------------
      KEYUP (#V)  //----------------------------------------------------  CTRL+V
      WAITMS (30) //---------------------------------------------
      KEYUP (#CTRL) //-------------------------------------
      WAITMS (100)  //----------------------------
     
      waitms(963 + $S_CORR)
      lDown(362,421)
      waitms(337 + $S_CORR)
      lUp(362,421)
      waitms(158 + $S_CORR)
      move(391,338)
      waitms(754 + $S_CORR)
      lDown(391,338)
      waitms(267 + $S_CORR)
      lUp(391,338)
      waitms(293 + $S_CORR)
      move(772,404)
      waitms(688 + $S_CORR)
     
     
   END_IF
   IF ($response = 2)
      LOGWRITE ("НЕ распознано. Ошибка!")
      WAITMS(300)
   END_IF
   
   
   
else
   waitms(100)  //если 1.bmp нет, небольшая задержка и снова поиск
END_IF
« Last Edit: May 30, 2017, 06:31:08 PM by dramster »

satman

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Re: Прошу помочь со скриптом.
« Reply #3 on: May 30, 2017, 07:04:29 PM »
Большое спасибо за ответы.Буду дальше  тестировать и учиться.