Author Topic: как поправить сценарий чтобы весь не переписывать  (Read 2292 times)

0 Members and 1 Guest are viewing this topic.

vitya_vii

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
Здравствуйте подскажите как поправить сценарий чтобы весь не переписывать
файл сценария прикрепил
в нашел программе добавили несколько новых строк отчетов и соответственно все съехало мне надо как-то поправить чтобы он выходил на правильную строку или убрать вообще из скрипта

Космич

  • Активный участник
  • ***
  • Posts: 265
    • View Profile
вывел в начало скрипта 2 переменные $x $y, но так не делается...
« Last Edit: March 13, 2019, 11:15:38 PM by Космич »
«Иногда ты ваяешь до тех пор, пока до тебя не дойдёт, что именно ты делаешь.»

vitya_vii

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
можно как то отследить в редакторе или остановить при просмотре на каких он строках остановился чтобы вырезать
то есть я открыл редактор и нажал запуск и вот он дошел до того момента где начинает работать неправильно как мне найти эти строки?

и мне не много не понятно про эти переменные $x $y у меня в программе используется в основном клавиатура для работы

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
можно как то отследить в редакторе или остановить при просмотре на каких он строках остановился чтобы вырезать

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

Вот написал скрипт форматирующий запись. Делает её чуть более удобочитаемой.
Требуется версия 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
« Last Edit: March 14, 2019, 03:18:30 PM by Oraven »

vitya_vii

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
спасибо большое
еще вопрос эта сточка
Code: [Select]
$movdel = 1 // удалять движения мыши MOVE (1 вкл / 0 выкл) удаляет все движения мышки ото у меня там есть открыть файл экселя и копировать даты и вставлять в программу
если стоит 1 то удалит если поставлю 0 то все останется ?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
не обязательно указывать команды MOVE перемещающие курсор в определенную точку. Сам клик в координаты приведет к перемещению курсора. В настройках кликера можно выключить запись движения мыши, это сильно сократит запись.

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

Можешь указать 0, тогда движения не будут удалены из скрипта.

vitya_vii

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
спасибо буду пробывать

vitya_vii

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
не срабатывает комбинация клавиш на открытие в программе нового окна
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