Автокликер Clickermann :: Форум
		Основной раздел => Ошибки => Topic started by: Даниил on September 06, 2016, 12:07:48 PM
		
			
			- 
				Пытаюсь создать эмулятор для создания выписки из банк-клиента.
 Первый подобный опыт на кликермане и программирую оч. слабо
 
 Для упрощения труда создал главный файл, с включениями разных процедур по порядку (явно излишняя затея, поскольку только 1 процедура будет использоваться повторно).
 Но прикол в другом, Clickerman крашится без номера ошибки и закрывается.
 А название программы в малом клиенте пытается замениться с all на Open and Login.
 Конопку "применить" тоже не могу нажать - кликерман закрывается.
 
 Подскажите, пожалуйста как этого избежать этого избежать и в чём дело?
 
 // 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"
 #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")
- 
				
 А название программы в малом клиенте пытается замениться с all на Open and Login.
 
 
 
 
 #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мс название программы пытается замениться с одного, на другое.
- 
				Опять эти инклуды... Ну зачаем так себе жизнь усложнять ведь скрипт в одном файле проще воспринимать и редактировать. 
 Имя скрипта нужно писать только в основном скрипте.
 
 Лучше использовать таймеры в циклах ожидания
 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")
 
- 
				Огромное спасибо за науку =) Программа видимо билась об стену из-за строчек $check1=$check1-1
			
- 
				Огромное спасибо за науку =) Программа видимо билась об стену из-за строчек $check1=$check1-1
 
 Ничего она не билась.
 Закомментил GOTO и лишние инклюды. Прогнал. Всё нормально.
 
 У тебя билась, скорее всего, из-за кривого кода в других инклюдах, которые ты не выложил.
 
 Строка
 $check1=$check1-1Стандартная арифметическая операция, которых тысячи в коде. Она не лучше и не хуже другого написания