Author Topic: Почему одно и тоже условие один раз срабатывает а раз нет?  (Read 4628 times)

0 Members and 1 Guest are viewing this topic.

Loginow

  • Освоившийся
  • **
  • Posts: 35
    • View Profile
« Last Edit: May 10, 2017, 08:13:43 PM by Loginow »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Нужен опытный взгляд на скрипт!
« Reply #1 on: May 09, 2017, 04:57:21 PM »
Строка 257 закомментированный заголовок подпрограммы
Code: (clickermann) [Select]
//SUB(pastenter, $_hh)Строка 846 END_SUB без подпрограммы
« Last Edit: May 09, 2017, 04:59:29 PM by Oraven »

Loginow

  • Освоившийся
  • **
  • Posts: 35
    • View Profile
Re: Нужен опытный взгляд на скрипт!
« Reply #2 on: May 09, 2017, 06:51:19 PM »
Спасибо, так точно))

Loginow

  • Освоившийся
  • **
  • Posts: 35
    • View Profile
Собственно вопрос. Скрипт рабочий, все задержки проставлены. Вынося за рамки "суб" все работает на 5+, но в фул скрипте одно и тоже условие раз срабатывает а раз нет. От чего это зависит?

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
От ошибок писателя в основном.
Ещё от секретности. Рассуждения над гипотетическим кодом ни к чему не приведут.


Loginow

  • Освоившийся
  • **
  • Posts: 35
    • View Profile
Снимаю гриф секретности. Ошибки скорее всего, заметил что программа после обработки 150-200К элементов(товары, цены, картинки и т.п.) начинает тормозить, может чуток поблекнуть окно. Возможно ли что К-Ман идет дальше? Как можно стабилизировать работу программ на пк?



Code: (clickermann) [Select]
EXECUTE("h.bat - Ярлык")
WAIT(3)
$hwnd1 = wndfind("h")
WAIT(0,5)

 //
SUB(start)
   WAIT(3)
   HSET($hwnd1,1)
   LCLICK(500,283)
   WAIT(2)
   KEYPRESS(#SPACE)
   WAIT(0,5)
   LCLICK(500,283)
   WAIT(0,5)
END_SUB

SUB(start1)
KEYPRESS(#TAB)
KEYPRESS(#SPACE)
WAIT(0,5)
LCLICK(500,283)
WAIT(0,5)
LCLICK(840,30)
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN(6,406, 1007,444, "appp.bmp")
      $check = 1
      WAIT(0,5)
      LCLICK(516,460)
   Else
      WAITMS(100)
   END_IF
END_CYC   
WAIT(0,5)
LCLICK(520,32)
WAIT(2)


GETSCREEN   // прохождение (по любому пикселю)
$hash1 = PXLCRC(50,91, 135,363)
$hash2 = $hash1
WHILE($hash1 = $hash2)
   WAIT(0,5)
   GETSCREEN
   $hash2 = PXLCRC(50,91, 135,363)
END_CYC
LCLICK(126,208)

WAIT(0,5)
HSET(0,0) // отвязка
WAITMS(100)
KEYDOWN(#CTRL) // выделение найденных промо
WAIT(0,5)
KEYPRESS(#A)
WAIT(0,5)
KEYUP(#CTRL)
WAIT(0,5)
KEYDOWN(#CTRL) // копирование промо
WAIT(0,5)
KEYPRESS(#C)
WAIT(0,5)
KEYUP(#CTRL)
WAIT(0,5)                               
LCLICK(387,281)
END_SUB

   SUB(start2)
KEYPRESS(#TAB)
KEYPRESS(#SPACE)
WAIT(0,5)
HSET($hwnd1,1)
WAIT(0,5)
LCLICK(500,283)
WAIT(0,5)
LCLICK(840,30)
$check = 0   
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN(6,406, 1007,444, "appp.bmp")
      $check = 1
      WAIT(0,5)
      LCLICK(516,460)
   Else
      WAITMS(100)
   END_IF
END_CYC           // переход к прокси
WAIT(0,5)
LCLICK(161,206)
WAIT(0,5)
HSET(0,0)
WAIT(0,5)
KEYDOWN(#CTRL) // выделение найденных промо
WAIT(0,5)
KEYPRESS(#A)
WAIT(0,5)
KEYUP(#CTRL)
WAIT(0,5)
KEYDOWN(#CTRL) // копирование промо
WAIT(0,5)
KEYPRESS(#C)
WAIT(0,5)
KEYUP(#CTRL)
END_SUB

//Проверка тескста (промо)
SUB(checkp)
   EXECUTE("strok.txt") // проверка колва промо
   WAIT(5)
   $hwnd2 = wndfind("strok.txt — Блокнот") //  привязка
   WAIT(0,5)
   WNDBUMP($hwnd2) // поверх всех окон (передний план)
   WAIT(0,5)
   HSET($hwnd2,1)
   WAIT(0,5)
   LCLICK(360,140)
   WAIT(0,5)
   HSET(0,0) // отвязка


   KEYDOWN(#WIN) // на весь екран
   WAIT(0,5)
   KEYPRESS(#UP)
   WAIT(0,5)
   KEYUP(#WIN)
   WAIT(0,5)
   KEYDOWN(#CTRL)  // выделение
   WAIT(0,5)
   KEYPRESS(#A)
   WAIT(0,5)
   KEYUP(#CTRL)
   WAIT(0,5)

   KEYDOWN(#CTRL)  // вставка
   WAIT(0,5)
   KEYPRESS(#V)
   WAIT(0,5)
   KEYUP(#CTRL)
   WAIT(0,5)

   KEYDOWN(#CTRL)  // переход к колву строк
   WAIT(0,5)
   KEYPRESS(#G)
   WAIT(0,5)
   KEYUP(#CTRL)
   WAIT(0,5)

   KEYDOWN(#CTRL)  // копирование значения
   WAIT(0,5)
   KEYPRESS(#C)
   WAIT(0,5)
   KEYUP(#CTRL)
   WAIT(0,5)

   KEYPRESS(#ESC)

   WAIT(0,5)
   LCLICK(22,30)
   WAIT(0,5)
   LCLICK(70,101)
   WAIT(0,5)
   HSET($hwnd2,1)
   WAIT(0,5)
   SENDMESSAGE($hwnd2,0x0010,0,0)
   HSET(0,0)
END_SUB


//Добавление новых промо//
SUB(addnew)
   WAIT(0,5)
   EXECUTE("CDII") // открываю бат
   WAIT(5)
   $hwnd3 = wndfind("CDII")
   WAIT(0,5)
   HSET(0,0)
   WNDBUMP($hwnd3)
   WAIT(0,5)
   LCLICK(21,28)
   WAIT(0,5)
   LCLICK(21,48)
   WAIT(1,5)
   DBLCLICK(203,183)
   WAIT(0,5)
   KEYPRESS(#F5)
   WAIT(5)

   KEYDOWN(#CTRL)
   WAIT(0,5)
   KEYPRESS(#A)
   WAIT(0,5)
   KEYUP(#CTRL)
   WAIT(0,5)

   KEYDOWN(#CTRL)
   WAIT(0,5)
   KEYPRESS(#C)
   WAIT(0,5)
   KEYUP(#CTRL)
   WAIT(0,5)
   $prx = TOCLIP()

   HSET($hwnd3,1)
   WAIT(0,5)
   SENDMESSAGE($hwnd3,0x0010,0,0)
   WAIT(0,5)
   HSET($hwnd1,1)
   WAIT(0,5)
   WNDBUMP($hwnd1)
   WAIT(0,5)
   LCLICK(408,167)  // 16777215
   WAIT(0,5)
   HSET(0,0)
   WAIT(0,5)
   KEYDOWN(#CTRL)  // выделение
   WAIT(0,5)
   KEYPRESS(#A)
   WAIT(0,5)
   KEYUP(#CTRL)
   WAIT(0,5)

   KEYDOWN(#CTRL)  // вставка
   WAIT(0,5)
   KEYPRESS(#v)
   WAIT(0,5)
   KEYUP(#CTRL)
   WAIT(0,5)

   HSET($hwnd1,1)
   LCLICK(700,30)
   WAIT(2)

   GETSCREEN   // прохождение промо (по любому пикселю)
   $hash1 = PXLCRC(150,88, 400,363)
   $hash2 = $hash1
   WHILE($hash1 = $hash2)
      WAIT(0,5)
      GETSCREEN
      $hash2 = PXLCRC(150,88, 400,363)
   END_CYC

   WAIT(0,5)
   
   LCLICK(519,461)
   HSET(0,0)
END_SUB


// ПРОВЕРКА 1000 или меньше
SUB(promooo)
   $pp = FROMCLIP ()
   IF($pp < 1000)
      addnew()
   ELSE
      WAIT(0,5)
      HSET($hwnd1,1)
      WAIT(0,5)
      WNDBUMP($hwnd1)
      WAIT(0,5)
      LCLICK(521,459) 
      WAIT(0,5)
   END_IF
END_SUB




SUB(pastenter, $_hh)
   WAIT(0,5)
   TOCLIP($_hh)
   WAIT(0,5)
   KEYPRESS (#ENTER)
   WAITMS (50)
   KEYDOWN (#CTRL)
   WAITMS (50)
   KEYDOWN (#V)
   WAITMS (50)
   KEYUP (#V)
   KEYUP (#CTRL)
   WAIT(0,5)
   KEYPRESS(#ENTER)
   WAIT(0,5)
END_SUB



SUB(putinprice)
   WAIT(2)
   HSET($hwnd1,1)
   LCLICK(367,29)
   WAIT(0,5)
   HSET(0,0)
   KEYDOWN(#CTRL)
   WAIT(0,5)
   KEYPRESS(#A)
   KEYUP(#CTRL)
   WAIT(0,5)
   TOCLIP(500)
   WAIT(0,5)
   KEYDOWN (#CTRL)
   WAITMS (50)
   KEYDOWN (#V)
   WAITMS (50)
   KEYUP (#V)
   KEYUP (#CTRL)
   WAITMS (50)
   KEYPRESS(#TAB)
   WAIT(0,5)
   TOCLIP(50)
   WAIT(0,5)
   KEYDOWN (#CTRL)
   WAITMS (50)
   KEYDOWN (#V)
   WAITMS (50)
   KEYUP (#V)
   KEYUP (#CTRL)
   WAITMS (50)
   KEYPRESS(#TAB)   
   WAIT(0,5)
   KEYPRESS(#SPACE)
   HSET($hwnd1,1)
   WAIT(0,5)
   LCLICK(524,461) 
   HSET(0,0)
END_SUB


SUB(totscu)
   WAIT(2)
   HSET($hwnd1,1)
   LCLICK(135,107)
   WAIT(0,5)
   HSET(0,0)
   KEYDOWN(#CTRL)
   WAIT(0,5)
   KEYPRESS(#A)
   KEYUP(#CTRL)
   WAIT(0,5)
   TOCLIP(2016)
   WAIT(0,5)
   KEYDOWN (#CTRL)
   WAITMS (50)
   KEYDOWN (#V)
   WAITMS (50)
   KEYUP (#V)
   KEYUP (#CTRL)
   WAITMS (50)
   KEYPRESS(#TAB)
   WAIT(0,5)
   TOCLIP(2017)
   WAIT(0,5)
   KEYDOWN (#CTRL)
   WAITMS (50)
   KEYDOWN (#V)
   WAITMS (50)
   KEYUP (#V)
   KEYUP (#CTRL)
   WAITMS (50)
   KEYPRESS(#TAB)
   WAIT(0,5)
   TOCLIP(5)
   WAIT(0,5)
   KEYDOWN (#CTRL)
   WAITMS (50)
   KEYDOWN (#V)
   WAITMS (50)
   KEYUP (#V)
   KEYUP (#CTRL)
   WAITMS (50)
   KEYPRESS(#TAB)
   WAITMS (50)
   KEYPRESS(#TAB)
   WAIT(0,5)
   TOCLIP(1)
   WAIT(0,5)
   KEYDOWN (#CTRL)
   WAITMS (50)
   KEYDOWN (#V)
   WAITMS (50)
   KEYUP (#V)
   KEYUP (#CTRL)
   WAITMS (50)
   HSET($hwnd1,1)
   LCLICK(428,400) 
   WAITMS (50)
   HSET(0,0)
   KEYDOWN(#SHIFT) 
   WAITMS (50)
   KEYPRESS(#TAB)
   WAITMS (50)
   KEYPRESS(#TAB)
   WAITMS (50)
   KEYPRESS(#TAB)
   WAITMS (50)
   KEYPRESS(#TAB)
   WAITMS (50)
   KEYUP(#SHIFT)
   WAIT(0,5)
   KEYPRESS(#SPACE)
   WAIT(0,5)
   HSET($hwnd1,1)
   WAIT(0,5)
   LCLICK(692,106) 
   WAIT(0,5)
   HSET(0,0)
   KEYDOWN(#CTRL)
   WAIT(0,5)
   KEYPRESS(#A)
   KEYUP(#CTRL)
   WAIT(0,5)
   pastenter("$1")
   WAITMS (50)
   pastenter("$2")
   WAITMS (50)
   pastenter("$3")
   WAITMS (50)
   pastenter("$4")
   WAITMS (50)
   pastenter("$5")
   WAITMS (50)
   pastenter("$6")
   WAITMS (50)
   pastenter("$7")
   WAITMS (50)
   pastenter("$8")
   WAITMS (50)
   pastenter("$9")
   WAITMS (50)
   pastenter("$10")
   WAITMS (50)
   HSET($hwnd1,1)
   WAIT(0,5)
   HSET(0,0)
END_SUB


SUB(hii, $_price)
   HSET($HWND1,1)
   WAIT(2)
   LCLICK(135,30)
   WAIT(0,5)
   LCLICK(154,136)
   WAIT(0,5)
   HSET(0,0)
   WAIT(0,5)
   KEYDOWN(#CTRL)
   WAIT(0,5)
   KEYDOWN(#A)
   WAIT(0,5)
   KEYUP(#A)
   WAIT(0,5)
   KEYUP(#CTRL)
   WAIT(0,5)
   TOCLIP(1)
   WAIT(0,5)
   KEYDOWN(#CTRL)
   WAIT(0,5)
   KEYPRESS(#V)
   WAIT(0,5)
   KEYUP(#V)
   WAIT(0,5)
   KEYUP(#CTRL)
   WAIT(0,5)
   KEYPRESS(#TAB)
   WAIT(0,5)
   KEYDOWN(#CTRL)
   WAIT(0,5)
   KEYDOWN(#A)
   WAIT(0,5)
   KEYUP(#A)
   WAIT(0,5)
   KEYUP(#CTRL)
   WAIT(0,5)
   TOCLIP(900)
   WAIT(0,5)
   KEYDOWN(#CTRL)
   WAIT(0,5)
   KEYPRESS(#V)
   WAIT(0,5)
   KEYUP(#V)
   WAIT(0,5)
   KEYUP(#CTRL)
   WAIT(0,5)
   HSET($hwnd1,1)
   WAIT(0,5)
   LCLICK(472,135) 
   WAIT(0,5)
   HSET(0,0)
   WAIT(0,5)
   KEYDOWN(#CTRL)
   WAIT(0,5)
   KEYDOWN(#A)
   WAIT(0,5)
   KEYUP(#A)
   WAIT(0,5)
   KEYUP(#CTRL)
   WAIT(0,5)
   TOCLIP(10)
   WAIT(0,5)
   KEYDOWN(#CTRL)
   WAIT(0,5)
   KEYPRESS(#V)
   WAIT(0,5)
   KEYUP(#V)
   WAIT(0,5)
   KEYUP(#CTRL)
   WAIT(0,5)
   KEYPRESS(#TAB)
   WAIT(0,5)
   KEYPRESS(#TAB)
   WAIT(0,5)
   KEYPRESS(#TAB)
   WAIT(0,5)
   KEYPRESS(#SPACE)
   WAIT(0,5)
   HSET($hwnd1,1)
   WAIT(0,5)
   LCLICK(234,29) 
   WAIT(0,5)
   LCLICK(163,330)
   WAIT(0,5)
   KEYPRESS(#TAB)
   WAIT(0,5)
   KEYPRESS(#SPACE)
   WAIT(0,5)
   KEYPRESS(#TAB)
   WAIT(0,5)
   KEYPRESS(#SPACE)
   WAIT(0,5)
   LCLICK(275,30)
   WAIT(0,5)
   LCLICK(169,107)
   WAIT(0,5)
   HSET(0,0)
   KEYDOWN(#CTRL)
   WAIT(0,5)
   KEYDOWN(#A)
   WAIT(0,5)
   KEYUP(#A)
   WAIT(0,5)
   KEYUP(#CTRL)
   WAIT(0,5)
   TOCLIP(1)
   WAIT(0,5)
   KEYDOWN(#CTRL)
   WAIT(0,5)
   KEYPRESS(#V)
   WAIT(0,5)
   KEYUP(#V)
   WAIT(0,5)
   KEYUP(#CTRL)
   WAIT(0,5)
   HSET($hwnd1,1)
   WAIT(0,5)
   LCLICK(158,147)
   WAIT(0,5)
   HSET(0,0)
   WAIT(0,5)
   KEYDOWN(#CTRL)
   WAIT(0,5)
   KEYDOWN(#A)
   WAIT(0,5)
   KEYUP(#A)
   WAIT(0,5)
   KEYUP(#CTRL)
   WAIT(0,5)
   TOCLIP($_price)
   WAIT(0,5)
   KEYDOWN(#CTRL)
   WAIT(0,5)
   KEYPRESS(#V)
   WAIT(0,5)
   KEYUP(#V)
   WAIT(0,5)
   KEYUP(#CTRL)
   WAIT(0,5)
   HSET($hwnd1,1) 
   WAITMS(10)
   LCLICK(514,458)
   WAIT(0,5)
HSET(0,0)
END_SUB



// Вот тут начинаются проблемы. Не всегда срабатывает.
SUB(sct)
   WAIT(2)
   EXECUTE("s1.bat")
   WAIT(2)
   $s1bat = TOCLIP()
   WAIT(0,5)
   WNDBUMP($hwnd1)
   WAIT(0,5)
   HSET($hwnd1,1)
   WAIT(0,05)
   LCLICK(62,161)
   WAIT(0,05)
   HSET(0,0)
   WAIT(0,5)
   KEYDOWN(#CTRL)
   WAIT(0,5)
   KEYPRESS(#V)
   WAIT(0,5)
   KEYUP(#CTRL)
   WAIT(0,5)
   HSET($hwnd1,1)
   WAIT(0,5)
END_SUB


  /// добавление списка новых позиций от $1
SUB(s1to5)
WAIT(2)
   EXECUTE("s2.bat")
   WAIT(0,5)
   LCLICK(21,95)  // 16053492
   WAIT(0,5)
   KEYPRESS(#ENTER)
   WAIT(0,5)
   LCLICK(21,95)  // 16053492
   WAIT(0,5)
   HSET(0,0)
   WAIT(0,5)
   KEYDOWN(#CTRL)  // вставка
   WAIT(0,5)
   KEYPRESS(#v)
   WAIT(0,5)
   KEYUP(#CTRL)
   WAIT(0,5)
   HSET($hwnd1,1)
   WAIT(0,5)
   LCLICK(502,401)  // 16777215
   WAIT(0,5)
   LCLICK(521,459)
   WAITMS(1)
   HSET(0,0)
END_SUB


 // ожидание окончания скана
SUB(waitfin)
   HSET($hwnd1,1)
   $check = 0         // по картинке
   WHILE($check = 0)
      GETSCREEN
      IF_PICTURE_IN(429,184, 838,322, "next.bmp")  // перех к списку
         $check = 1
         WAIT(0,5)
         LCLICK(504,261)  // 13487565
      Else
         WAITMS(100)
      END_IF
   END_CYC
END_SUB

/// тут тоже не всегда срабатывает
  // добавление в брендлист
SUB(addtobl)
WAIT(0,5)
   HSET($hwnd1,1)
   WAIT(0,5)
   WNDBUMP($hwnd1)
   WAIT(0,5)
   HSET(0,0)
   WAIT(0,5)
   KEYDOWN(#CTRL)
   WAIT(0,5)
   KEYDOWN(#A)
   WAIT(0,5)
   KEYUP(#A)
   WAIT(0,5)
   KEYUP(#CTRL)
   WAIT(0,5)
   KEYDOWN(#WIN)
   WAIT(0,5)
   KEYPRESS(#UP)
   KEYUP(#WIN)
   WAIT(10)
   RCLICK(388,160)
   WAIT(0,5)
   KEYPRESS(#DOWN)
WAIT(0,5)
   KEYPRESS(#RIGHT)
WAIT(0,5)
   LCLICK(540,476)
   WAIT(0,5)
   KEYDOWN(#WIN)
   WAIT(0,5)
   KEYPRESS(#DOWN)
   KEYUP(#WIN)
   WAIT(0,5)
END_SUB

SUB(cNBL)
EXECUTE("cNBL.bat")
WAIT(0,5)
   EXECUTE("brlist.txt") // проверка колва товаров
   WAIT(5)
   $hwndx = wndfind("brlist.txt — Блокнот") //  привязка
   WAIT(0,5)
   WNDBUMP($hwndx) // поверх всех окон (передний план)
   WAIT(0,5)
   HSET($hwnd7,1)
   WAIT(0,5)
   LCLICK(360,140)
   WAIT(0,5)
   HSET(0,0) // отвязка


   KEYDOWN(#WIN) // на весь екран
   WAIT(0,5)
   KEYPRESS(#UP)
   WAIT(0,5)
   KEYUP(#WIN)
   WAIT(0,5)

   KEYDOWN(#CTRL)
WAIT(0,5)
KEYPRESS(#A)
WAIT(0,5)
KEYUP(#CTRL)
WAIT(0,5)
KEYDOWN(#CTRL)
WAIT(0,5)
KEYPRESS(#V)
WAIT(0,5)
KEYUP(#CTRL)
WAIT(0,5)

   KEYDOWN(#CTRL)  // копирование значения
   WAIT(0,5)
   KEYPRESS(#S) 
   WAIT(0,5)
   KEYUP(#CTRL)
   WAIT(0,5)
HSET($hwndx,1)
   WAIT(0,5)
   SENDMESSAGE($hwndx,0x0010,0,0)
   HSET(0,0)
   WAIT(0,5)
   EXECUTE("dBL.bat")
   WAIT(0,5)
END_SUB

// добавление первой части (1скрипт)
SUB(skryp, $_txt_)
TFREADARR("brlist.txt", $arr) // читаем файл в массив
FOR($a=0,$a<ARRSIZE($arr)) // обрабатываем
   $arr[$a] = STRCONCAT("$$1-100", $arr[$a])
END_CYC
TFWRITEARR($_txt_, $arr) // записываем массив в новый файл
END_SUB




SUB(bkS)
WNDBUMP($hwnd1)
WAIT(0,5)
HSET(0,0)
WAIT(0,5)
KEYDOWN(#WIN)
   WAIT(0,5)
   KEYPRESS(#UP)
   KEYUP(#WIN)
   WAIT(0,5)
HSET($hwnd1,1)    // 16777215
RCLICK(438,259)  // 16777215
WAIT(0,5)
KEYPRESS(#DOWN) // 16382457
WAIT(0,5)
KEYPRESS(#DOWN)
WAIT(0,5)
KEYPRESS(#DOWN)
WAIT(0,5)
KEYPRESS(#RIGHT)
WAIT(0,5)
KEYPRESS(#DOWN)
WAIT(0,5)
KEYPRESS(#ENTER)  // 16777215
   WAIT(0,5)
LCLICK(25,682)  // 16053492
  WAIT(0,5)
HSET(0,0)
WAIT(0,5)
   KEYDOWN(#WIN)
   WAIT(0,5)
KEYPRESS(#DOWN)
   KEYUP(#WIN)
WAIT(0,5)
END_SUB


SUB(o500)
 EXECUTE("s499.bat")
WAIT(0,5)
   EXECUTE("500.txt") // проверка колва топ
   WAIT(5)
   $hwnd7 = wndfind("500.txt — Блокнот") //  привязка
   WAIT(0,5)
   WNDBUMP($hwnd7) // поверх всех окон (передний план)
   WAIT(0,5)
   HSET($hwnd7,1)
   WAIT(0,5)
   LCLICK(360,140)
   WAIT(0,5)
   HSET(0,0) // отвязка


   KEYDOWN(#WIN) // на весь екран
   WAIT(0,5)
   KEYPRESS(#UP)
   WAIT(0,5)
   KEYUP(#WIN)
   WAIT(0,5)

   KEYDOWN(#CTRL)  // вставка
   WAIT(0,5)
   KEYPRESS(#V)
   WAIT(0,5)
   KEYUP(#CTRL)
   WAIT(0,5)

   KEYDOWN(#CTRL)  // переход к колву строк
   WAIT(0,5)
   KEYPRESS(#G)
   WAIT(0,5)
   KEYUP(#CTRL)
   WAIT(0,5)

KEYDOWN(#CTRL)
WAIT(0,5)
KEYPRESS(#A)
WAIT(0,5)
KEYUP(#CTRL)
WAIT(0,5)
TOCLIP(9999)
   WAIT(0,5)
KEYDOWN(#CTRL)
WAIT(0,5)
KEYPRESS(#V)
WAIT(0,5)
KEYUP(#CTRL)
WAIT(0,5)
   KEYPRESS(#ENTER)
WAIT(0,5)
KEYPRESS(#ESC)
WAIT(0,5)
KEYDOWN(#CTRL)
WAIT(0,5)

   KEYDOWN(#CTRL)  // копирование значения
   WAIT(0,5)
   KEYPRESS(#C)
   WAIT(0,5)
   KEYUP(#CTRL)
   WAIT(0,5)

   KEYPRESS(#ESC)

   KEYDOWN(#CTRL)  // копирование значения
   WAIT(0,5)
   KEYPRESS(#S) 
   WAIT(0,5)
   KEYUP(#CTRL)
   WAIT(0,5)
HSET($hwnd7,1)
   WAIT(0,5)
   SENDMESSAGE($hwnd7,0x0010,0,0)
   WAIT(0,5)
HSET(0,0)
END_SUB
 
 
SUB(test410)
HSET(0,0)
   WAIT(0,5)
   $ftst = FROMCLIP()
   IF($ftst < 1)
      GOTO(WORK)
   ELSE
      WAIT(0,5)
      LOGWRITE("DONE")
   END_IF
END_SUB


HSET($hwnd1,1)
WAIT(0,5)
WNDBUMP($hwnd1)
WAIT(0,5)

start()
SUB(WORK)
WAIT(0,5)
start1() 
WAIT(0,5)
checkp() 
WAIT(0,5)
promooo()
WAIT(0,5)
putinprice()
WAIT(0,5)
totscu()   
WAIT(0,5)
hii("100")
WAIT(0,5)
sct() 
WAIT(0,5)
s1to5()   
WAIT(0,5)
waitfin() 
WAIT(0,5)
addtobl()
WAIT(0,5)
EXECUTE("dFriW.bat")
WAIT(0,5)
addtobl()
WAIT(0,5)
cNBL()   
WAIT(0,5)
skryp("100.txt")
WAIT(0,5)
EXECUTE("rRi.bat")
WAIT(2)
bkS()     
WAIT(0,5)
////////////////////////////////////////////
start2()   
WAIT(0,5)
checkp() 
WAIT(0,5)
promooo()
WAIT(0,5)
putinprice()   
WAIT(0,5)
totscu()     
WAIT(0,5)
hii("500")
WAIT(0,5)
s1to5()   
WAIT(0,5)
waitfin() 
WAIT(0,5)
addtobl()
EXECUTE("dFriR.bat")
WAIT(0,5)
addtobl()
WAIT(0,5)
cNBL()
WAIT(0,5)
skryp("499.txt")
WAIT(0,5)
o500()
WAIT(0,5)
EXECUTE("rWi.bat")
////////////////////////////////////////////
test410()
WAIT(0,5)
END_SUB

WORK()


HALT

Loginow

  • Освоившийся
  • **
  • Posts: 35
    • View Profile
Заметил еще один нюанс. Sub(addnew) ... KEYPRESS(#F5)
все работало, а теперь не реагирует. F5 не нажимается, в чем моя ошибка?

Loginow

  • Освоившийся
  • **
  • Posts: 35
    • View Profile
Да, помогло. Заострил внимание на процессе задержек. Увеличил их в данном месте и заиграло. Господи, этож сколько высчитывать вручную(

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Сходу бросается в глаза ошибка
Code: (clickermann) [Select]
WAIT(0,5)Правильно либо так
Code: (clickermann) [Select]
WAIT(0.5)Либо так
Code: (clickermann) [Select]
WAITMS(500)
Запятыми в синтаксисе кликера отделяются команды! В данном случаи 5 после запятой будет игнорироваться, в результате у тебя 0 задержка.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Строка 882 переход GOTO(WORK) есть а метки WORK: чето не наблюдаю.
И напоминаю выпрыгивать из подпрограмм это путь к непредсказуемым глюкам.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Да, да. твои WAIT(0,5) это неработающие строки, т.е. большая часть задержек в скрипте не работает, = 0


Ещё разбирает любопытство, всё таки о каком условии шла речь. Где оно?

в фул скрипте одно и тоже условие раз срабатывает а раз нет. От чего это зависит?
« Last Edit: May 11, 2017, 09:01:27 AM by Vint »


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Ещё какие-то нелогичные вещи. Зачем эта постоянная привязка в перемешку с WNDBUMP после каждого чиха. В чём смысл этих привязок?

Вот берём любую подпрограмму:
Code: (clickermann) [Select]
SUB(o500)
    EXECUTE("s499.bat")
    WAIT(0,5)
    EXECUTE("500.txt") // проверка колва топ
    WAIT(5)
    $hwnd7 = wndfind("500.txt — Блокнот") //  привязка
    WAIT(0,5)
    WNDBUMP($hwnd7) // поверх всех окон (передний план)
    WAIT(0,5)
    HSET($hwnd7,1)
    WAIT(0,5)
    LCLICK(360,140)
    WAIT(0,5)
    HSET(0,0) // отвязка
   
   
    KEYDOWN(#WIN) // на весь екран
    WAIT(0,5)
    KEYPRESS(#UP)
    WAIT(0,5)
    KEYUP(#WIN)
    WAIT(0,5)
   
    KEYDOWN(#CTRL)  // вставка
    WAIT(0,5)
    KEYPRESS(#V)
    WAIT(0,5)
    KEYUP(#CTRL)
    WAIT(0,5)
   
    KEYDOWN(#CTRL)  // переход к колву строк
    WAIT(0,5)
    KEYPRESS(#G)
    WAIT(0,5)
    KEYUP(#CTRL)
    WAIT(0,5)
   
    KEYDOWN(#CTRL)
    WAIT(0,5)
    KEYPRESS(#A)
    WAIT(0,5)
    KEYUP(#CTRL)
    WAIT(0,5)
    TOCLIP(9999)
    WAIT(0,5)
    KEYDOWN(#CTRL)
    WAIT(0,5)
    KEYPRESS(#V)
    WAIT(0,5)
    KEYUP(#CTRL)
    WAIT(0,5)
    KEYPRESS(#ENTER)
    WAIT(0,5)
    KEYPRESS(#ESC)
    WAIT(0,5)
    KEYDOWN(#CTRL)
    WAIT(0,5)
   
    KEYDOWN(#CTRL)  // копирование значения
    WAIT(0,5)
    KEYPRESS(#C)
    WAIT(0,5)
    KEYUP(#CTRL)
    WAIT(0,5)
   
    KEYPRESS(#ESC)
   
    KEYDOWN(#CTRL)  // копирование значения
    WAIT(0,5)
    KEYPRESS(#S)
    WAIT(0,5)
    KEYUP(#CTRL)
    WAIT(0,5)
    HSET($hwnd7,1)
    WAIT(0,5)
    SENDMESSAGE($hwnd7,0x0010,0,0)
    WAIT(0,5)
    HSET(0,0)
END_SUB

и что видим...

Открываем в блокноте файл "500.txt", пока почти нормально  :)

Code: (clickermann) [Select]
$hwnd7 = wndfind("500.txt — Блокнот") //  привязкаэто не привязка, а поиск. Ну ладно, на скорость не влияет.

Code: (clickermann) [Select]
WNDBUMP($hwnd7) // поверх всех окон (передний план)зачем? Окно и так открывается на переднем плане. Ну может конечно там на экране вакханалия открытых окон которые тут же перекрывают? Не верю.

Дальше: привязались, один раз кликнули по координатам, отвязались  :o. В открытом окне. На переднем плане.
Это видать для того, чтобы ловить окно в любом месте экрана. Ну так получи его координаты и кликай без привязки.

И чтоб два раза не вставать. Ты ведь используешь подпрограммы, так почему куски вида
Code: (clickermann) [Select]
    KEYDOWN(#WIN) // на весь екран
    WAIT(0,5)
    KEYPRESS(#UP)
    WAIT(0,5)
    KEYUP(#WIN)
    WAIT(0,5)

и им подобные (выделить всё, копировать, втавить) рамножились по всему скрипту в неприличном количестве.

Делаем непонятные движения в виде выделить всё, заменить новым (не проще файл удалить и писать заново).

И в конце опять привязка, закрытие, отвязка. Хм. Почему не нажать Alt+F4.


И в версии, кажись до 4.12 был баг с утечкой памяти при привязке HSET. Проявляется если вызывать HSET тысячами в циклах.
Например, без проверок просто привязываемся, вдруг другой поток/подпрограмма отвязал.
Соответственно, через некоторое время начинаются тормоза.


У тебя там все тексты многострочные и поэтому все манипуляции через блокнот, а не напрямую?
Брюзжание окончено. ;D


Oraven

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

И сразу ответ на вопрос как это сделать
Code: (clickermann) [Select]
WNDGETINFO(WNDFIND("- Блокнот", 0), $poz1, $poz2, $siz1, $siz2) // получаем информацию, положение, размер
LCLICK($poz1+85,$poz2+87)  // к координатам полученным в оконном режиме прибавляем положение окна



Loginow

  • Освоившийся
  • **
  • Posts: 35
    • View Profile
Quote
зачем? Окно и так открывается на переднем плане. Ну может конечно там на экране вакханалия открытых окон которые тут же перекрывают? Не верю.

У меня одновременно открыто 2-3 окна с которыми я работаю. Собственно для этого и нужно.

Quote
Дальше: привязались, один раз кликнули по координатам, отвязались  :o. В открытом окне. На переднем плане.
Это видать для того, чтобы ловить окно в любом месте экрана. Ну так получи его координаты и кликай без привязки.
Quote
И сразу ответ на вопрос как это сделать
Code: (clickermann) [Select]
WNDGETINFO(WNDFIND("- Блокнот", 0), $poz1, $poz2, $siz1, $siz2) // получаем информацию, положение, размер
LCLICK($poz1+85,$poz2+87)  // к координатам полученным в оконном режиме прибавляем положение окна

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

Code: (clickermann) [Select]
EXECUTE("h.bat - Ярлык"")
WAITMS(50)
$hwnd1 = wndfind("h")
WAITMS(50)
WHILE(wndfind($hwnd1) = 0)
    WAITMS(50)
END_CYC
WAITMS(50)
WNDGETINFO(WNDFIND("h", 0), $poz1, $poz2, $siz1, $siz2
WAITMS(50)
LCLICK($poz1+500,$poz2+283)
WAITMS(50)

HALT

Quote
Строка 882 переход GOTO(WORK) есть а метки WORK: чето не наблюдаю.
И напоминаю выпрыгивать из подпрограмм это путь к непредсказуемым глюкам.

а разве строка 964: WORK() ну или точнее 896 не отвечает на данный запрос?

Quote
И чтоб два раза не вставать. Ты ведь используешь подпрограммы, так почему куски вида

   
Code: (clickermann) [Select]
KEYDOWN(#WIN) // на весь екран
    WAIT(0,5)
    KEYPRESS(#UP)
    WAIT(0,5)
    KEYUP(#WIN)
    WAIT(0,5)

и им подобные (выделить всё, копировать, втавить) рамножились по всему скрипту в неприличном количестве.
Если я правильно понимаю, то идея прописать вечные К+Ц К+В К+А как этакие мини подпрограммы к успеху шла?! Сделаю.

Quote
Делаем непонятные движения в виде выделить всё, заменить новым (не проще файл удалить и писать заново).
Quote
У тебя там все тексты многострочные и поэтому все манипуляции через блокнот, а не напрямую?
Почему я вообще запариваюсь таким - я перевожу в файл строки для подсчета их кол-ва, и последующего анализа. Те есть имеется энное колво, я откр файл, заменяю его, дальше Ctrl+G, вытягиваю значение, анализирую его и провожу последующие действия. Все ради кол-ва строк, если есть способ адекватнее подскажите, прошу.

Quote
И в конце опять привязка, закрытие, отвязка. Хм. Почему не нажать Alt+F4.
Вот как к примеру вчера, сегодня аналогичная ситуация. Тайминг проставлен, вопрос с (WAITMS(500)) решен, а F5 ( пробовал также заменять на другие F-ки) - не откликается. Я еще неделю назад об этом говорил. Найти корень проблемы не смог.

Quote
И в версии, кажись до 4.12 был баг с утечкой памяти при привязке HSET. Проявляется если вызывать HSET тысячами в циклах.
Например, без проверок просто привязываемся, вдруг другой поток/подпрограмма отвязал.
Соответственно, через некоторое время начинаются тормоза.

И вот тут кажись пришел час менять версию. У меня мигало какое-то обновление, но я не придал этому значения(
Качаю новую.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Quote
Строка 882 переход GOTO(WORK) есть а метки WORK: чето не наблюдаю.
И напоминаю выпрыгивать из подпрограмм это путь к непредсказуемым глюкам.

а разве строка 964: WORK() ну или точнее 896 не отвечает на данный запрос?

Даже рядом не стоят.
То GOTO по метке, метки нет.
А то подпрограмма, которые к тому же рекурсивно не вызываются (если надумаешь переделывать)