Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: satman on May 30, 2017, 05:39:19 PM
-
Здравствуйте.прошу помочь со скриптом.
Первый круг скрипт проходит а на втором останавливается на поиске зеленого квадрата в agclient 1.5
делаю стоп потом старт в Clickermann опять застреет на втром круге на поиске зеленого квадрата.
скрипт
GETSCREEN // снимок зкрана в буфер
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "1.bmp", 65280, 100) // поиск снимка "1.bmp"
goto(autorun) // если да то запуск autorun скрипта если нет то по кругу поиск "1.bmp"
#autorun
lDown(265,159)
waitms(141 + $S_CORR)
lUp(265,159)
waitms(1500 + $S_CORR)
move(353,661)
waitms(612 + $S_CORR)
lDown(353,661)
waitms(376 + $S_CORR)
lUp(353,661)
$x1 = 261
$y1 = 115
$x2 = 236
$y2 = 374 // Область снимка капчи
WAIT(1)
$hwnd = wndFind("AGClient v1.5") // находим окно
LOGWRITE ("AGClient hwnd: ", $hwnd)
HINTPOPUP(STRCONCAT("hwnd: ", $hwnd), "AGClient")
TFCLEAR("out.txt")
WAITMS(50)
TFWRITE("out.txt", "0")
waitms(200)
// последовательное задание координат
PostMessage($hwnd, 0x555, 1, $x1)
PostMessage($hwnd, 0x555, 2, $y1)
PostMessage($hwnd, 0x555, 3, $x2)
PostMessage($hwnd, 0x555, 4, $y2)
PostMessage($hwnd, 0x555, 5, 0) // распознать
waitms(200)
while($indicator=0) //ЦИКЛ ВРОДЕ))
waitms(400)
getscreen
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "3.bmp", -1, 100) // ИЩЕМ ЗЕЛЕНЫЙ КВАДРАТИК
waitms(200)
$indicator=1
waitms(200)
LCLICK(679,440)
WAITMS(100)
KEYDOWN (#CTRL) // ----------------
WAITMS (30) //------------------------------
KEYDOWN (#V) //-----------------------------------
WAITMS (50) //---------------------------------------------
KEYUP (#V) //---------------------------------------------------- CTRL+V
WAITMS (30) //---------------------------------------------
KEYUP (#CTRL) //-------------------------------------
WAITMS (100) //----------------------------
waitms(963 + $S_CORR)
lDown(362,421)
waitms(337 + $S_CORR)
lUp(362,421)
waitms(158 + $S_CORR)
move(391,338)
waitms(754 + $S_CORR)
lDown(391,338)
waitms(267 + $S_CORR)
lUp(391,338)
waitms(293 + $S_CORR)
move(772,404)
waitms(688 + $S_CORR)
END_IF
END_CYC
END_IF // остановка скрипта далее на поиск 1.bmp
Спасибо.
-
Вот ты нашёл в первый раз присвоил
$indicator=1
и вышел из цикла. Всё. Больше переменную не меняешь нигде и в цикл
while($indicator=0)
не войдёшь.
В начале нужно сбросить
$indicator = 0
И что это за приколы?
goto(autorun)
#autorun
#autorun нет смысла вкладывать в условия. Он если есть в скрипте то он УЖЕ действует.
goto(autorun) вообще путь в чёрную дыру. Хорошо что адрес чёрной дыры недействительный и инструкция не работает ;D
-
рабочий шаблон для версий начиная с 1.4 http://crapware.aidf.org/forum/index.php?topic=73.msg9014#msg9014
квадрат искать не обязательно, при этом у тебя лишние действия по созданию файла отчета "out.txt".
координаты капчи перепроверь, перепутаны координаты по Х .
твой скрипт без поиска квадрата на экране будет выглядеть примерно так. не забудь настроить файл конфига, а именно
; создание отчета
file_result_enable = 1
; имя файла с отчетом
file_result = out.txt
GETSCREEN // снимок зкрана в буфер
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "1.bmp", 65280, 100) // поиск снимка "1.bmp"
lDown(265,159)
waitms(141 + $S_CORR)
lUp(265,159)
waitms(1500 + $S_CORR)
move(353,661)
waitms(612 + $S_CORR)
lDown(353,661)
waitms(376 + $S_CORR)
lUp(353,661)
$x1 = 261 //скорее всего $x1 и $x2 перепутаны местами, перепроверь координаты
$y1 = 115
$x2 = 236
$y2 = 374
WAIT(1)
$hwnd = wndFind("AGClient v1.5") // находим окно
LOGWRITE ("AGClient hwnd: ", $hwnd)
HINTPOPUP(STRCONCAT("hwnd: ", $hwnd), "AGClient")
TFCLEAR("out.txt")
WAITMS(50)
TFWRITE("out.txt", "0")
waitms(200)
// последовательное задание координат
PostMessage($hwnd, 0x555, 1, $x1)
PostMessage($hwnd, 0x555, 2, $y1)
PostMessage($hwnd, 0x555, 3, $x2)
PostMessage($hwnd, 0x555, 4, $y2)
PostMessage($hwnd, 0x555, 5, 0) // распознать
waitms(200)
$response = 0
WHILE($response = 0) //ожидание ответа
$response = TFREAD("out.txt", 1)
LOGWRITE ("Ответ: ", $response)
WAITMS(500)
END_CYC
IF ($response = 1)
LOGWRITE ("Распознано. Ответ: ", TFREAD("out.txt", 2))
WAITMS(300)
// действия после распознания
TOCLIP (TFREAD("out.txt", 2)) //строку в буфер
waitms(200)
LCLICK(679,440) //и далее действия
WAITMS(100)
KEYDOWN (#CTRL) // ----------------
WAITMS (30) //------------------------------
KEYDOWN (#V) //-----------------------------------
WAITMS (50) //---------------------------------------------
KEYUP (#V) //---------------------------------------------------- CTRL+V
WAITMS (30) //---------------------------------------------
KEYUP (#CTRL) //-------------------------------------
WAITMS (100) //----------------------------
waitms(963 + $S_CORR)
lDown(362,421)
waitms(337 + $S_CORR)
lUp(362,421)
waitms(158 + $S_CORR)
move(391,338)
waitms(754 + $S_CORR)
lDown(391,338)
waitms(267 + $S_CORR)
lUp(391,338)
waitms(293 + $S_CORR)
move(772,404)
waitms(688 + $S_CORR)
END_IF
IF ($response = 2)
LOGWRITE ("НЕ распознано. Ошибка!")
WAITMS(300)
END_IF
else
waitms(100) //если 1.bmp нет, небольшая задержка и снова поиск
END_IF
-
Большое спасибо за ответы.Буду дальше тестировать и учиться.