Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Glimeaz on February 10, 2017, 03:04:46 AM
-
Здравствуйте!
Помогите, пожалуйста, в написании скрипта.
С программированием первый раз столкнулась, так что заранее прошу прощения у знатоков и профессионалов за свою безграмотность в этом деле :-[
Задача скрипта:
1. Клик по картинке №1.
2. Перемещение курсора мышки на другую картинку №2. (или относительно текущего положения) и ожидание
3. Только при появлении нужной картинки №3. клик (на картинку №2.)
4. Клик по картинке №4
5. Повтор действий
GetScreen
IF_PICTURE_IN (1106,320,1240,453,"1.bmp")
LCLICK($_return1, $_return2)
END_IF
Else
GetScreen
IF_PICTURE_IN (1106,320,1240,453,"3.bmp")
IF_PICTURE_IN (1020,372,1209,507,"2.bmp")
LCLICK($_return1, $_return2)
END_IF
waitms(200)
Else
GetScreen
IF_PICTURE_IN (1100,490,1267,680,"4.bmp")
LCICK($_return1, $_return2)
END_IF
waitms(200)
У меня не находит картинки. Делала скриншот страницы, вырезала нужный фрагмент, сохраняла в .bmp
Проверяла картинку :
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "somefile.bmp")
print("Найден в координатах X=", $_return1, ", Y=", $_return2)
MOVE($_return1, $_return2)
Else
HINTPOPUP("Не найдено")
END_IF
HALT
Выдает: не найдено
Еще делала: Получение скриншота с цветокоррекцией (фильтр 6) - тоже без результата
Скрипт очень нужен, сэкономит кучу времени!
Буду очень признательна, если кто поможет
-
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "somefile.bmp",-1,97) // 97-процент совпадения. Пробуйте менять.
print("Найден в координатах X=", $_return1, ", Y=", $_return2)
MOVE($_return1, $_return2)
Else
HINTPOPUP("Не найдено")
END_IF
HALT
-
скорректированный снимок должен быть получен таким скриптом
// Получение скриншота с цветокоррекцией (фильтр 6)
GETSCREEN
COLORMODE(6) // можно попробовать значения 5-8
SCREENSHOT
HALT
Из этого снимка вырезают маленький фрагмент 50х50 а лучше еще меньше.
В своем скрипте также нужно не забыть написать после GETSCREEN COLORMODE(6)
Также нужно понизить процент совпадения, это последнее число в функции 100 означает 100%
$check = 0 // если в переменной ноль цикл крутится
WHILE($check = 0) // цикл ожидания картинки 1
GETSCREEN
IF_PICTURE_IN (1106,320,1240,453,"1.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAITMS(100)
$check = 1 // если поменять на 1 то цикл прекратит повторяться
ELSE
WAITMS(50)
END_IF
END_CYC
$check = 0
WHILE($check = 0) // цикл ожидания картинки 2 и 3
GETSCREEN
IF_PICTURE_IN (1020,372,1209,507,"2.bmp", -1, 100)
$x = $_return1 // здесь запоминаем координату 2.bmp в переменные
$y = $_return2
MOVE($x,$y) // наводим мышь
WAITMS(500)
GETSCREEN
IF_PICTURE_IN (1106,320,1240,453,"3.bmp", -1, 100)
LCLICK($x,$y) // клик по координатам 2.bmp
WAITMS(100)
$check = 1
ELSE
WAITMS(50)
END_IF
ELSE
WAITMS(50)
END_IF
END_CYC
$check = 0
WHILE($check = 0) // цикл ожидания картинки 4
GETSCREEN
IF_PICTURE_IN (1100,490,1267,680,"4.bmp", -1, 100)
$check = 1
LCLICK($_return1, $_return2)
WAITMS(100)
ELSE
WAITMS(50)
END_IF
END_CYC
-
Спасибо большое! Картинки теперь находит и узнает :)
Придумала упростить скрипт за счет уменьшения масштаба окна до 67% (так что картинки не будут передвигаться), теперь можно не по четырем картинкам навигироваться, а только по одной, а остальные клики по координатам точек.
Остался один вопрос. Как сделать первый клик по координатам, а потом ожидание (без кликов) пока не появится картинка в определенном месте и только тогда кликать.
А то у меня получается, что мышка постоянно нонстоп кликает в одно место, а должна ждать появления картинки и только тогда кликнуть.
1. клик на первые координаты (при этом открывается окошко, на которое нужно будет кликнуть в пункте 3 , при появлении картинки )
2. ожидание появления картинки
3. клик на координаты
4. клик на другие координаты
5. Повторение действий, пока вручную не остановлю
$check = 0
WHILE($check = 0)
LCLICK(1187,205)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (1253,193,1278,224,"1.bmp", -1, 100)
WAITMS(200)
LCLICK(1152,238)
WAITMS(600)
LCLICK(1184,307)
WAITMS(20)
$check = 1
ELSE
WAITMS(10)
END_IF
END_CYC
-
Если правильно понял, нужно вынести этот клик за пределы цикла
LCLICK(1187,205) // первый клик по координатам
$check = 0
WHILE($check = 0) // цикл ожидания картинки (без кликов)
GETSCREEN(1253,193,1278,224) // так чуть быстрее происходит поиск
COLORMODE(6,1253,193,1278,224) // так чуть быстрее происходит поиск
IF_PICTURE_IN (1253,193,1278,224,"1.bmp", -1, 100) // появилась картинка в определенном месте!!!
WAITMS(200)
LCLICK(1152,238) // клик на координаты
WAITMS(600)
LCLICK(1184,307) // клик на другие координаты
WAITMS(20)
$check = 1
ELSE
WAITMS(10)
END_IF
END_CYC
// повторение действий, пока вручную не остановлю
Цикл крутится пока $check не станет равен 1. А произойдет это только когда будет найдена картинка 1.bmp.
-
Большущее спасибо за подсказку! Теперь заработало как надо :)