Author Topic: Clickerman v 4.12 на win xp sp 3 - Эмулятор выписки из БК  (Read 3735 times)

0 Members and 1 Guest are viewing this topic.

Даниил

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Пытаюсь создать эмулятор для создания выписки из банк-клиента.
Первый подобный опыт на кликермане и программирую оч. слабо

Для упрощения труда создал главный файл, с включениями разных процедур по порядку (явно излишняя затея, поскольку только 1 процедура будет использоваться повторно).
Но прикол в другом, Clickerman крашится без номера ошибки и закрывается.
А название программы в малом клиенте пытается замениться с all на Open and Login.
Конопку "применить" тоже не могу нажать - кликерман закрывается.

Подскажите, пожалуйста как этого избежать этого избежать и в чём дело?

Code: [Select]
// 06.09.2016

Print("DBO Start")
Goto(skip2)
#include "Open and Login.cms"
skip1:
#include "Pass-Gates.cms"
skip2:
#include "Main-page.cms"
skip3:
#include "Date-Pass.cms"
skip4:
#include "Export-run.cms"
skip5:
#include "Clear.cms"
skip6:
halt
#Name "All"

Code: [Select]
#name "Open and Login"
Print("Open and Login")
wait(3)
Define($check1, 99)
WHILE($check1 > 1)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "11.bmp", -1, 100)
      dblCLICK($_return1, $_return2)
      WAITMS(3000)
      $check1 = 0
   ELSE
      WAITMS(500)
      $check1 = $check1-1
      print("wait 0.5")
   END_IF
END_CYC


DEFINE($check1, 99)
WHILE($check1 > 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "login2.bmp", -1, 100)
      LCLICK($_return1+45, $_return2+15)
      print("start login")
      WAITMS(6000)
      $check1 = 0
   ELSE
      WAITMS(500)
      Print("waite 0.5 login2.bmp")
      $check1=$check1-1
   END_IF
END_CYC
Print("Open and Login - Done")
« Last Edit: September 06, 2016, 12:10:12 PM by Даниил »

Даниил

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile

А название программы в малом клиенте пытается замениться с all на Open and Login.




Code: [Select]
#name "Open and Login"
Print("Open and Login")
wait(3)
Define($check1, 99)
WHILE($check1 > 1)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "11.bmp", -1, 100)
      dblCLICK($_return1, $_return2)
      WAITMS(3000)
      $check1 = 0
   ELSE
      WAITMS(500)
      $check1 = $check1-1
      print("wait 0.5")
   END_IF
END_CYC


DEFINE($check1, 99)
WHILE($check1 > 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "login2.bmp", -1, 100)
      LCLICK($_return1+45, $_return2+15)
      print("start login")
      WAITMS(6000)
      $check1 = 0
   ELSE
      WAITMS(500)
      Print("waite 0.5 login2.bmp")
      $check1=$check1-1
   END_IF
END_CYC
Print("Open and Login - Done")

вот эта строка по вашему мнению, для чего вами написана?
#name "Open and Login"

Понятия не имею. Я человек простой - прочитал описание функции - делаю. ;D
Просто при запуске all.cms с периодичностью примерно в 200мс название программы пытается замениться с одного, на другое.

Oraven

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

Лучше использовать таймеры в циклах ожидания
Code: (clickermann) [Select]
Print("Open and Login")
wait(3)

$time = $_time_t + 60 // таймер на 60 секунд
WHILE($time > $_time_t)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "11.bmp", -1, 100)
      $time = 0
      dblCLICK($_return1, $_return2)
      WAITMS(3000)
   ELSE
      WAITMS(50)
   END_IF
END_CYC

$time = $_time_t + 60 // таймер на 60 секунд
WHILE($time > $_time_t)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "login2.bmp", -1, 100)
      $time = 0
      LCLICK($_return1+45, $_return2+15)
      print("start login")
      WAITMS(6000)
   ELSE
      WAITMS(50)
   END_IF
END_CYC

Print("Open and Login - Done")


Даниил1

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Огромное спасибо за науку =) Программа видимо билась об стену из-за строчек $check1=$check1-1

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Огромное спасибо за науку =) Программа видимо билась об стену из-за строчек $check1=$check1-1
Ничего она не билась.
Закомментил GOTO и лишние инклюды. Прогнал. Всё нормально.

У тебя билась, скорее всего, из-за кривого кода в других инклюдах, которые ты не выложил.

Строка
Code: (clickermann) [Select]
$check1=$check1-1Стандартная арифметическая операция, которых тысячи в коде. Она не лучше и не хуже другого написания
« Last Edit: September 07, 2016, 01:23:20 PM by Vint »