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

Основной раздел => Общие вопросы => Topic started by: vitya_vii on March 13, 2019, 09:38:42 PM

Title: как поправить сценарий чтобы весь не переписывать
Post by: vitya_vii on March 13, 2019, 09:38:42 PM
Здравствуйте подскажите как поправить сценарий чтобы весь не переписывать
файл сценария прикрепил
в нашел программе добавили несколько новых строк отчетов и соответственно все съехало мне надо как-то поправить чтобы он выходил на правильную строку или убрать вообще из скрипта
Title: Re: как поправить сценарий чтобы весь не переписывать
Post by: Космич on March 13, 2019, 11:13:12 PM
вывел в начало скрипта 2 переменные $x $y, но так не делается...
Title: Re: как поправить сценарий чтобы весь не переписывать
Post by: vitya_vii on March 14, 2019, 10:14:56 AM
можно как то отследить в редакторе или остановить при просмотре на каких он строках остановился чтобы вырезать
то есть я открыл редактор и нажал запуск и вот он дошел до того момента где начинает работать неправильно как мне найти эти строки?

и мне не много не понятно про эти переменные $x $y у меня в программе используется в основном клавиатура для работы
Title: Re: как поправить сценарий чтобы весь не переписывать
Post by: Oraven on March 14, 2019, 02:56:43 PM
можно как то отследить в редакторе или остановить при просмотре на каких он строках остановился чтобы вырезать

Нет нельзя. Запись крайне сложно редактировать.

Вот написал скрипт форматирующий запись. Делает её чуть более удобочитаемой.
Требуется версия 4.13.014 32bit
Code: (clickermann) [Select]
$file = "отчеты_основные22.cms"

$movdel = 1 // удалять движения мыши MOVE (1 вкл / 0 выкл)

//=============================================

SUB(_key, $key)
   IF(($str1 >= 48)&($str1 <= 57)|($str1 >= 65)&($str1 <= 90))
      $str = STRCONCAT($key,"(#",CHAR($str1),")")
   ELSE
      SWITCH($str1)
         CASE(8)
            $str = STRCONCAT($key,"(#BACKSPACE)")
         CASE(9)
            $str = STRCONCAT($key,"(#TAB)")
         CASE(13)
            $str = STRCONCAT($key,"(#ENTER)")
         CASE(16)
            $str = STRCONCAT($key,"(#SHIFT)")
         CASE(17)
            $str = STRCONCAT($key,"(#CTRL)")
         CASE(18)
            $str = STRCONCAT($key,"(#ALT)")
         CASE(19)
            $str = STRCONCAT($key,"(#PAUSE)")
         CASE(20)
            $str = STRCONCAT($key,"(#CAPSLOCK)")
         CASE(27)
            $str = STRCONCAT($key,"(#ESC)")
         CASE(32)
            $str = STRCONCAT($key,"(#SPACE)")
         CASE(33)
            $str = STRCONCAT($key,"(#PAGEUP)")
         CASE(34)
            $str = STRCONCAT($key,"(#PAGEDOWN)")
         CASE(35)
            $str = STRCONCAT($key,"(#END)")
         CASE(36)
            $str = STRCONCAT($key,"(#HOME)")
         CASE(37)
            $str = STRCONCAT($key,"(#LEFT)")
         CASE(38)
            $str = STRCONCAT($key,"(#UP)")
         CASE(39)
            $str = STRCONCAT($key,"(#RIGHT)")
         CASE(40)
            $str = STRCONCAT($key,"(#DOWN)")
         CASE(45)
            $str = STRCONCAT($key,"(#INSERT)")
         CASE(46)
            $str = STRCONCAT($key,"(#DELETE)")
         CASE(91)
            $str = STRCONCAT($key,"(#WIN)")
         CASE(92)
            $str = STRCONCAT($key,"(#RWIN)")
         CASE(96)
            $str = STRCONCAT($key,"(",$str1,") // NumPad 0")
         CASE(97)
            $str = STRCONCAT($key,"(",$str1,") // NumPad 1")
         CASE(98)
            $str = STRCONCAT($key,"(",$str1,") // NumPad 2")
         CASE(99)
            $str = STRCONCAT($key,"(",$str1,") // NumPad 3")
         CASE(100)
            $str = STRCONCAT($key,"(",$str1,") // NumPad 4")
         CASE(101)
            $str = STRCONCAT($key,"(",$str1,") // NumPad 5")
         CASE(102)
            $str = STRCONCAT($key,"(",$str1,") // NumPad 6")
         CASE(103)
            $str = STRCONCAT($key,"(",$str1,") // NumPad 7")
         CASE(104)
            $str = STRCONCAT($key,"(",$str1,") // NumPad 8")
         CASE(105)
            $str = STRCONCAT($key,"(",$str1,") // NumPad 9")
         CASE(106)
            $str = STRCONCAT($key,"(",$str1,") // NumPad *")
         CASE(107)
            $str = STRCONCAT($key,"(",$str1,") // NumPad +")
         CASE(109)
            $str = STRCONCAT($key,"(",$str1,") // NumPad -")
         CASE(110)
            $str = STRCONCAT($key,"(",$str1,") // NumPad .")
         CASE(111)
            $str = STRCONCAT($key,"(",$str1,") // NumPad /")
         CASE(112)
            $str = STRCONCAT($key,"(#F1)")
         CASE(113)
            $str = STRCONCAT($key,"(#F2)")
         CASE(114)
            $str = STRCONCAT($key,"(#F3)")
         CASE(115)
            $str = STRCONCAT($key,"(#F4)")
         CASE(116)
            $str = STRCONCAT($key,"(#F5)")
         CASE(117)
            $str = STRCONCAT($key,"(#F6)")
         CASE(118)
            $str = STRCONCAT($key,"(#F7)")
         CASE(119)
            $str = STRCONCAT($key,"(#F8)")
         CASE(120)
            $str = STRCONCAT($key,"(#F9)")
         CASE(121)
            $str = STRCONCAT($key,"(#F10)")
         CASE(122)
            $str = STRCONCAT($key,"(#F11)")
         CASE(123)
            $str = STRCONCAT($key,"(#F12)")
         CASE(144)
            $str = STRCONCAT($key,"(#NUMLOCK)")
         CASE(145)
            $str = STRCONCAT($key,"(#SCROLLLOCK)")
         CASE(44)
            $str = STRCONCAT($key,"(",$str1,") // PRINTSCREEN")
         CASE(186)
            $str = STRCONCAT($key,"(",$str1,") // ;")
         CASE(187)
            $str = STRCONCAT($key,"(",$str1,") // =")
         CASE(188)
            $str = STRCONCAT($key,"(",$str1,") // ,")
         CASE(189)
            $str = STRCONCAT($key,"(",$str1,") // -")
         CASE(190)
            $str = STRCONCAT($key,"(",$str1,") // .")
         CASE(191)
            $str = STRCONCAT($key,"(",$str1,") // /")
         CASE(192)
            $str = STRCONCAT($key,"(",$str1,") // ~")
         CASE(219)
            $str = STRCONCAT($key,"(",$str1,") // [")
         CASE(220)
            $str = STRCONCAT($key,"(",$str1,") // \")
         CASE(221)
            $str = STRCONCAT($key,"(",$str1,") // ]")
         CASE(222)
            $str = STRCONCAT($key,"(",$str1,") // '")
         DEFAULT
            $str = STRCONCAT($key,"(",$str1,")")
      END_SWITCH
   END_IF
END_SUB

SUB(_key2,$key2)
   IF(($str1 >= 48)&($str1 <= 57)|($str1 >= 65)&($str1 <= 90))
      $str = STRCONCAT($key2,"(#",CHAR($str1),")")
   ELSE
      _key($key2)
   END_IF
END_SUB

TFCLEAR(STRCONCAT($file, "_format.cms"), 0)

TFREADARR($file, $arr_str)
$count = ARRSIZE($arr_str)
IF($movdel = 1)
   $stage = 0
   FOR($i=0,$i<$count)
      IF(STRPOS($arr_str[$i],"move") = 0)
         ARRPUSH($arr_str_temp, $arr_str[$i])
      END_IF
   END_CYC
   TFWRITEARR("_temp_file.txt", $arr_str_temp)
   UNDEFINE($arr_str)
   TFREADARR("_temp_file.txt", $arr_str)
   $count = ARRSIZE($arr_str)
   TFCLEAR("_temp_file.txt", 1)
END_IF

$stage = 1
FOR($i=0,$i<$count)
   $str = $arr_str[$i]
   
   IF(STRPOS($str,"keyUp") > 0)
      $str1 = STRCUT2($str, STRPOS($str,"(")+1, STRPOS($str,")")-1)
      SWITCH($str1)
         CASE(160)
            $str = -1
         CASE(164)
            $str = -1
         CASE(162)
            $str = -1
         DEFAULT
            _key("KEYUP")
      END_SWITCH
   ELSE
      IF(STRPOS($str,"waitms(0") > 0)
         $str = -1
      ELSE
         IF(STRPOS($str,"lDown") > 0)
            $str2 = STRCUT2($str, STRPOS($str,"(")+1, STRPOS($str,")")-1)
            IF($i+2 <= $count)
               $str3 = $arr_str[$i+2]
               $str3 = STRCUT2($str3, STRPOS($str3,"(")+1, STRPOS($str3,")")-1)
               IF($str2 = $str3)
                  $str = STRCONCAT("LCLICK(",$str2,")")
                  INC($i,2)
               END_IF
            END_IF
         ELSE
            IF(STRPOS($str,"rDown") > 0)
               $str2 = STRCUT2($str, STRPOS($str,"(")+1, STRPOS($str,")")-1)
               IF($i+2 <= $count)
                  $str3 = $arr_str[$i+2]
                  $str3 = STRCUT2($str3, STRPOS($str3,"(")+1, STRPOS($str3,")")-1)
                  IF($str2 = $str3)
                     $str = STRCONCAT("RCLICK(",$str2,")")
                     INC($i,2)
                  END_IF
               END_IF
            ELSE
               IF(STRPOS($str,"keyDown") > 0)
                  $str1 = STRCUT2($str, STRPOS($str,"(")+1, STRPOS($str,")")-1)
                  SWITCH($str1)
                     CASE(160)
                        $str = -1
                     CASE(164)
                        $str = -1
                     CASE(162)
                        $str = -1
                     DEFAULT
                        $str2 = STRCUT2($str, STRPOS($str,"("), STRPOS($str,")"))
                        IF($i+2 <= $count)
                           $str3 = $arr_str[$i+2]
                           IF(STRPOS($str3,"keyUp") > 0)
                              $str3 = STRCUT2($str3, STRPOS($str3,"("), STRPOS($str3,")"))
                              IF($str2 = $str3)
                                 _key2("KEYPRESS")
                                 INC($i,2)
                              ELSE
                                 _key2("KEYDOWN")
                              END_IF
                           ELSE
                              _key2("KEYDOWN")
                           END_IF
                        ELSE
                           _key2("KEYDOWN")
                        END_IF
                  END_SWITCH
               END_IF
            END_IF
         END_IF
      END_IF
   END_IF
   
   IF(STRMD5($str) ! STRMD5(-1))
      ARRPUSH($arr_str2, $str)
   END_IF
   
END_CYC

$stage = 2
$n = 0
$c = 0
$count = ARRSIZE($arr_str2)
FOR($i=0,$i<$count)
   
   IF(STRPOS($arr_str2[$i],"waitms") > 0)
      $n2 = $n
      IF(STRPOS($arr_str2[$i]," + ") > 0)
         $n = INT(STRCUT2($arr_str2[$i], STRPOS($arr_str2[$i],"(")+1, STRPOS($arr_str2[$i]," ")-1))+$n2
      ELSE
         $n = INT(STRCUT2($arr_str2[$i], STRPOS($arr_str2[$i],"(")+1, STRPOS($arr_str2[$i],")")-1))+$n2
      END_IF
      $arr_str3[$c] = STRCONCAT("WAITMS(",$n,")")
   ELSE
      IF($n ! 0)
         INC($c,1)
         $n = 0
      END_IF
      $arr_str3[$c] = $arr_str2[$i]
      INC($c,1)
   END_IF
   
END_CYC


TFWRITEARR(STRCONCAT($file, "_format.cms"), $arr_str3)

THREAD(t1, 1)
   WAIT(1)
   SWITCH($stage)
      CASE(0)
         LOGCLEAR
         LOGWRITE ("Чищу MOVE: ",ROUND(($i*100)/$count,-1),"%")
      CASE(1)
         LOGCLEAR
         LOGWRITE ("Форматирую: ",ROUND(($i*100)/$count,-1),"%")
      CASE(2)
         LOGCLEAR
         LOGWRITE ("Чищу задержки: ",ROUND(($i*100)/$count,-1),"%")
   END_SWITCH
END_THREAD

WAIT(1)
HALT
Title: Re: как поправить сценарий чтобы весь не переписывать
Post by: vitya_vii on March 14, 2019, 04:06:06 PM
спасибо большое
еще вопрос эта сточка
Code: [Select]
$movdel = 1 // удалять движения мыши MOVE (1 вкл / 0 выкл) удаляет все движения мышки ото у меня там есть открыть файл экселя и копировать даты и вставлять в программу
если стоит 1 то удалит если поставлю 0 то все останется ?
Title: Re: как поправить сценарий чтобы весь не переписывать
Post by: Oraven on March 14, 2019, 04:15:54 PM
не обязательно указывать команды MOVE перемещающие курсор в определенную точку. Сам клик в координаты приведет к перемещению курсора. В настройках кликера можно выключить запись движения мыши, это сильно сократит запись.

Правда в некоторых отдельных случаях требуется предварительное наведение, например для появления всплывающего меню. Тогда движения нужно оставить.

Можешь указать 0, тогда движения не будут удалены из скрипта.
Title: Re: как поправить сценарий чтобы весь не переписывать
Post by: vitya_vii on March 14, 2019, 04:23:50 PM
спасибо буду пробывать
Title: Re: как поправить сценарий чтобы весь не переписывать
Post by: vitya_vii on March 14, 2019, 04:56:55 PM
не срабатывает комбинация клавиш на открытие в программе нового окна
Code: [Select]
WAITMS(2057)
KEYDOWN(#ALT)
WAITMS(431)
KEYDOWN(#A)
WAITMS(113)
KEYUP(#ALT)
WAITMS(98)
KEYUP(#A)
WAITMS(3108)
KEYPRESS(#ENTER)
мне надо его переделать на новое?
Code: [Select]
KEYDOWN(#ALT)
WAITMS(709)
KEYPRESS(189) // A