Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Edisson on April 22, 2017, 02:59:27 PM
-
Данный скрипт должен выполняться циклично, каждый раз получая из текстового файла строку с данными и с каждым выполнением получать следующую строку. Так должно продолжаться пока в файле не закончатся данные, но увы после одного отрабатывания процесс останавливается. Подскажите пожалуйста что я делаю не так и скажите замечания.
FOR($all=1, $all>0) //бесконечный цикл работы цикла
DBLCLICK(695,396) // клик по полю Email
WAITMS(50)
INC($num,1) // накручиваем номер строки каждый проход
IF($num > TFCOUNT ("mail.txt")) // если закончатся строки в файле
HALT // стоп
END_IF
TOCLIP (TFREAD ("mail.txt", $num)) // копируем строку в буфер
WAITMS(50)
KEYDOWN (#CTRL) // Вставить
WAITMS (50)
KEYPRESS(#V)
WAITMS (50)
KEYUP (#CTRL)
WAITMS (50)
LCLICK(1168,1008) // клик по Next
WAITMS(50)
SUB(searchok)
FOR($b=1, $b>0) //бесконечный цикл работы цикла
getscreen
IF_PIXEL_IN (1085,591, 1109,604, 14264404) // поиск синего пикселя "ОК"
lclick($_return1, $_return2)
WAITMS(500)
END_IF
END_CYC
END_SUB
searchok() // вызываем подпрограмму searchok
END_CYC
-
Бесконечный цикл лучше написать так
WHILE(1)
// body
END_CYC
По ошибкам:
Ты засунул описание подпрограммы SUB(searchok) в цикл, так нельзя. Описание нельзя вкладывать во что либо.
Непонятно зачем вообще эта подпрограмма но в ней у тебя бесконечный цикл из которого выхода нет.
Первый цикл не нужен так как кликер по умолчанию выполняет скрипт бесконечно.
Исправленный скрипт
DBLCLICK(695,396) // клик по полю Email
WAITMS(50)
INC($num,1) // накручиваем номер строки каждый проход
IF($num > TFCOUNT ("mail.txt")) // если закончатся строки в файле
HALT // стоп
END_IF
TOCLIP (TFREAD ("mail.txt", $num)) // копируем строку в буфер
WAITMS(50)
KEYDOWN (#CTRL) // Вставить
WAITMS (50)
KEYPRESS(#V)
WAITMS (50)
KEYUP (#CTRL)
WAITMS (50)
LCLICK(1168,1008) // клик по Next
WAITMS(50)
$check = 0
WHILE($check = 0) // цикл поиска ОК
GETSCREEN
IF_PIXEL_IN (1085,591, 1109,604, 14264404) // поиск синего пикселя "ОК"
$check = 1 // разрешаем выход из цикла
LCLICK($_return1, $_return2)
WAITMS(500)
ELSE
WAITMS(50)
END_IF
END_CYC
-
Огромное спасибо за помощь. Но еще осталось пару вопросов по реализации скрипта. Как реализовать в цикле поочередный поиск нужных пикселей, то есть в цикле должно поочередно отрабатываться два условия пока не появится нужный пиксель, а потом либо приступить к дальнейшему выполнению скрипта, либо записать данные из буфера в файл и уже потом приступить к дальнейшему выполнению скрипта. Код с которым не могу разобраться закомментировал для большей понятности.
DBLCLICK(695,396) // клик по полю Email
WAITMS(50)
INC($num,1) // накручиваем номер строки каждый проход
IF($num > TFCOUNT ("mail.txt")) // если закончатся строки в файле
HALT // стоп
END_IF
TOCLIP (TFREAD ("mail.txt", $num)) // копируем строку в буфер
WAITMS(50)
KEYDOWN (#CTRL) // Вставить
WAITMS (50)
KEYPRESS(#V)
WAITMS (50)
KEYUP (#CTRL)
WAITMS (50)
LCLICK(1168,1008) // клик по Next
WAITMS(50)
$check = 0
WHILE($check = 0) // цикл поиска ОК
GETSCREEN
IF_PIXEL_IN (1085,591, 1109,604, 14264404) // поиск синего пикселя "ОК"
$check = 1 // разрешаем выход из цикла
LCLICK($_return1, $_return2)
WAITMS(2500)
ELSE
WAITMS(1000)
END_IF
// GETSCREEN
// IF_PIXEL_IN (799,382, 828,398, 10526880) // поиск серого пикселя "Next"
// $check = 1 // разрешаем выход из цикла
// Возвратить Данные из буфера обмена в конец файла"input.txt"
// LCLICK(688,64)
// WAITMS(500)
// LCLICK(713,374)
// WAITMS(2500)
// ELSE
// WAITMS(200)
// END_IF
END_CYC
-
DBLCLICK(695,396) // клик по полю Email
WAITMS(50)
INC($num,1) // накручиваем номер строки каждый проход
IF($num > TFCOUNT ("mail.txt")) // если закончатся строки в файле
HALT // стоп
END_IF
$str = TFREAD ("mail.txt", $num)
TOCLIP ($str) // копируем строку в буфер
WAITMS(50)
KEYDOWN (#CTRL) // Вставить
WAITMS (50)
KEYPRESS(#V)
WAITMS (50)
KEYUP (#CTRL)
WAITMS (50)
LCLICK(1168,1008) // клик по Next
WAITMS(50)
$check = 0
WHILE($check = 0) // цикл поиска ОК
GETSCREEN
IF_PIXEL_IN (1085,591, 1109,604, 14264404) // поиск синего пикселя "ОК"
$check = 1 // разрешаем выход из цикла
LCLICK($_return1, $_return2)
WAITMS(2500)
ELSE
IF_PIXEL_IN (799,382, 828,398, 10526880) // поиск серого пикселя "Next"
$check = 1 // разрешаем выход из цикла
TFWRITE("input.txt", $str) // Вставляем прочитанную строку в конец файла"input.txt"
LCLICK(688,64)
WAITMS(500)
LCLICK(713,374)
WAITMS(2500)
ELSE
WAITMS(100)
END_IF
END_IF
END_CYC
-
Огромное спасибо за помощь! :)