Автокликер Clickermann :: Форум
Основной раздел => Использование => Topic started by: farmacedus on April 23, 2015, 10:28:36 AM
-
Всем привет. Ребят, нужно сделать такую вещь. Нужно чтоб кликер брал ник, вставлял в поле, нажимал искать и дальше уже производил некоторые действия, вопрос как сделать чтобы он шел по списку ников?
-
И еще зачем убрали возможность делать скрин определенной области? Или её куда то перенесли?
-
FOR($a=1,$a<TFCOUNT("input.txt")+1) // цикл отработает все строки из файла input.txt
TOCLIP(TFREAD("input.txt", $a)) // копируем текст из файла в буфер
WAITMS(50)
LCLICK(10,10) // клик по полю ввода
WAITMS(50)
KEYDOWN (#CTRL) // вставляем
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS(100)
LCLICK(10,10) // клик по Искать
WAITMS(50)
// далее некоторые действия
END_CYC
HALT // после окончания цикла стоп
-
GETSCREEN
SCREENSHOTEX(300,300, 600,600, "Image_", 0) // сделать скриншот в BMP
HALT
GETSCREEN
SCREENSHOTEX(300,300, 600,600, "Image_", 1) // сделать скриншот в JPG
HALT
-
GETSCREEN
SCREENSHOTEX(300,300, 600,600, "Image_", 0) // сделать скриншот в BMP
HALT
GETSCREEN
SCREENSHOTEX(300,300, 600,600, "Image_", 1) // сделать скриншот в JPG
HALT
спасибо за ответы. Браться будут по 1 строке из файла ники?
-
// вибор ника
LCLICK(1245,169)
WAITMS(500)
LCLICK(1245,169)
WAITMS(50)
KEYDOWN(#SHIFT)
LCLICK(1118,169)
KEYUP(#SHIFT)
WAITMS(50)
//вырезание ника
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#X)
WAITMS (50)
KEYUP (#X)
KEYUP (#CTRL)
WAITMS (50)
KEYPRESS(#DELETE)
//выделениеника в строке поиска
LCLICK(610,479)
WAITMS(500)
LCLICK(610,479)
WAITMS(50)
KEYDOWN(#SHIFT)
LCLICK(242,478)
KEYUP(#SHIFT)
WAITMS(50)
//удаление и вставка нового ника
KEYPRESS(#DELETE)
WAITMS (50)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (50)
//поиск и нажатия на искать
GETSCREEN
IF_PICTURE_IN (231,488, 440,740, "искать.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAITMS(100)
END_IF
//поиск изображения входящего сообщения
GETSCREEN
IF_PICTURE_IN (1173,293, 1258,938, "крестик.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAITMS(100)
else
WAITMS(50)
//проверка на конверт и поиск кнопки отправить
GETSCREEN
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "отправить2.bmp", -1, 100)
$ARR_NUM = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
$X = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
$Y = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
IF_PIXEL_IN($X-599,$Y-0, $X+0,$Y+0, 16514039) // пиксель конверта (если есть конверт, то не жмет кнопку "отправить")
WAITMS(1)
ELSE
$check = 1
$ARR_NUM = 99999 // сброс цикла
LCLICK($X, $Y)
WAITMS(1000)
END_IF
END_IF
-
Там у тебя в конце ошибки с завершениями
// вибор ника
LCLICK(1245,169)
WAITMS(500)
LCLICK(1245,169)
WAITMS(50)
KEYDOWN(#SHIFT)
LCLICK(1118,169)
KEYUP(#SHIFT)
WAITMS(50)
//вырезание ника
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#X)
WAITMS (50)
KEYUP (#X)
KEYUP (#CTRL)
WAITMS (50)
KEYPRESS(#DELETE)
//выделениеника в строке поиска
LCLICK(610,479)
WAITMS(500)
LCLICK(610,479)
WAITMS(50)
KEYDOWN(#SHIFT)
LCLICK(242,478)
KEYUP(#SHIFT)
WAITMS(50)
//удаление и вставка нового ника
KEYPRESS(#DELETE)
WAITMS (50)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (50)
//поиск и нажатия на искать
GETSCREEN
IF_PICTURE_IN (231,488, 440,740, "искать.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAITMS(100)
END_IF
//поиск изображения входящего сообщения
GETSCREEN
IF_PICTURE_IN (1173,293, 1258,938, "крестик.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAITMS(100)
else
WAITMS(50)
//проверка на конверт и поиск кнопки отправить
GETSCREEN
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "отправить2.bmp", -1, 100)
$ARR_NUM = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
$X = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
$Y = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
IF_PIXEL_IN($X-599,$Y-0, $X+0,$Y+0, 16514039) // пиксель конверта (если есть конверт, то не жмет кнопку "отправить")
WAITMS(1)
ELSE
$ARR_NUM = 99999 // сброс цикла
LCLICK($X, $Y)
WAITMS(1000)
END_IF
END_CYC
END_IF
-
Там у тебя в конце ошибки с завершениями
// вибор ника
LCLICK(1245,169)
WAITMS(500)
LCLICK(1245,169)
WAITMS(50)
KEYDOWN(#SHIFT)
LCLICK(1118,169)
KEYUP(#SHIFT)
WAITMS(50)
//вырезание ника
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#X)
WAITMS (50)
KEYUP (#X)
KEYUP (#CTRL)
WAITMS (50)
KEYPRESS(#DELETE)
//выделениеника в строке поиска
LCLICK(610,479)
WAITMS(500)
LCLICK(610,479)
WAITMS(50)
KEYDOWN(#SHIFT)
LCLICK(242,478)
KEYUP(#SHIFT)
WAITMS(50)
//удаление и вставка нового ника
KEYPRESS(#DELETE)
WAITMS (50)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (50)
//поиск и нажатия на искать
GETSCREEN
IF_PICTURE_IN (231,488, 440,740, "искать.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAITMS(100)
END_IF
//поиск изображения входящего сообщения
GETSCREEN
IF_PICTURE_IN (1173,293, 1258,938, "крестик.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAITMS(100)
else
WAITMS(50)
//проверка на конверт и поиск кнопки отправить
GETSCREEN
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "отправить2.bmp", -1, 100)
$ARR_NUM = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
$X = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
$Y = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
IF_PIXEL_IN($X-599,$Y-0, $X+0,$Y+0, 16514039) // пиксель конверта (если есть конверт, то не жмет кнопку "отправить")
WAITMS(1)
ELSE
$ARR_NUM = 99999 // сброс цикла
LCLICK($X, $Y)
WAITMS(1000)
END_IF
END_CYC
END_IF
начиная с 48 строки не работает, по отдельности до 48 и после всё работает, вместе почему то нет.
-
Разберись с алгоритмом
//поиск изображения входящего сообщения
GETSCREEN
IF_PICTURE_IN (1173,293, 1258,938, "крестик.bmp", -1, 100)
LCLICK($_return1, $_return2) // сработает если крестик.bmp найден
WAITMS(100)
else
// сработает если крестик.bmp не найден
WAITMS(50)
//проверка на конверт и поиск кнопки отправить
GETSCREEN
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "отправить2.bmp", -1, 100)
$ARR_NUM = 0
WHILE($ARR_NUM < ARRSIZE($ARR_SCAN)) // цикл сработает если отправить2.bmp найдено
$X = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
$Y = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
IF_PIXEL_IN($X-599,$Y-0, $X+0,$Y+0, 16514039) // пиксель конверта (если есть конверт, то не жмет кнопку "отправить")
WAITMS(1)
ELSE
$ARR_NUM = 99999 // сброс цикла
LCLICK($X, $Y)
WAITMS(1000)
END_IF
END_CYC // конец цикла
END_IF // конец крестик.bmp
-
Разберись с алгоритмом
//поиск изображения входящего сообщения
GETSCREEN
IF_PICTURE_IN (1173,293, 1258,938, "крестик.bmp", -1, 100)
LCLICK($_return1, $_return2) // сработает если крестик.bmp найден
WAITMS(100)
else
// сработает если крестик.bmp не найден
WAITMS(50)
//проверка на конверт и поиск кнопки отправить
GETSCREEN
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "отправить2.bmp", -1, 100)
$ARR_NUM = 0
WHILE($ARR_NUM < ARRSIZE($ARR_SCAN)) // цикл сработает если отправить2.bmp найдено
$X = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
$Y = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
IF_PIXEL_IN($X-599,$Y-0, $X+0,$Y+0, 16514039) // пиксель конверта (если есть конверт, то не жмет кнопку "отправить")
WAITMS(1)
ELSE
$ARR_NUM = 99999 // сброс цикла
LCLICK($X, $Y)
WAITMS(1000)
END_IF
END_CYC // конец цикла
END_IF // конец крестик.bmp
я разобрался, всё понятно как работает. Вот эта часть что ты скинул работает если без верхней части. В чем проблема?
-
Цыкл не срабатывает не смотря на то что картинка есть и её находит.
-
Как ты определил что находит?
-
Как ты определил что находит?
если брать с всего кода только
GETSCREEN
IF_PICTURE_IN (231,488, 440,740, "искать.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAITMS(100)
END_IF
//поиск изображения входящего сообщения
GETSCREEN
IF_PICTURE_IN (1173,293, 1258,938, "крестик.bmp", -1, 100)
LCLICK($_return1, $_return2) // сработает если крестик.bmp найден
WAITMS(100)
else
// сработает если крестик.bmp не найден
WAITMS(50)
//проверка на конверт и поиск кнопки отправить
GETSCREEN
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "отправить2.bmp", -1, 100)
$ARR_NUM = 0
WHILE($ARR_NUM < ARRSIZE($ARR_SCAN)) // цикл сработает если отправить2.bmp найдено
$X = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
$Y = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
IF_PIXEL_IN($X-599,$Y-0, $X+0,$Y+0, 16514039) // пиксель конверта (если есть конверт, то не жмет кнопку "отправить")
WAITMS(1)
ELSE
$ARR_NUM = 99999 // сброс цикла
LCLICK($X, $Y)
WAITMS(1000)
END_IF
END_CYC // конец цикла
END_IF // конец крестик.bmp
то всё работает, картинку находит.
-
Заметил еще одно, отсутствует UNDEFINE($ARR_SCAN) без этого на повторном проходе цикл снова отработает по старым координатам.
// вибор ника
LCLICK(1245,169)
WAITMS(500)
LCLICK(1245,169)
WAITMS(50)
KEYDOWN(#SHIFT)
LCLICK(1118,169)
KEYUP(#SHIFT)
WAITMS(50)
//вырезание ника
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#X)
WAITMS (50)
KEYUP (#X)
KEYUP (#CTRL)
WAITMS (50)
KEYPRESS(#DELETE)
//выделениеника в строке поиска
LCLICK(610,479)
WAITMS(500)
LCLICK(610,479)
WAITMS(50)
KEYDOWN(#SHIFT)
LCLICK(242,478)
KEYUP(#SHIFT)
WAITMS(50)
//удаление и вставка нового ника
KEYPRESS(#DELETE)
WAITMS (50)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (50)
//поиск и нажатия на искать
GETSCREEN
IF_PICTURE_IN (231,488, 440,740, "искать.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAITMS(100)
END_IF
//поиск изображения входящего сообщения
GETSCREEN
IF_PICTURE_IN (1173,293, 1258,938, "крестик.bmp", -1, 100)
LOGWRITE ("Найден крестик")
LCLICK($_return1, $_return2)
WAITMS(100)
else
WAITMS(50)
LOGWRITE ("проверка на конверт и поиск кнопки отправить")
//проверка на конверт и поиск кнопки отправить
GETSCREEN
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "отправить2.bmp", -1, 100)
$ARR_NUM = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
$X = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
$Y = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
IF_PIXEL_IN($X-599,$Y-0, $X+0,$Y+0, 16514039) // пиксель конверта (если есть конверт, то не жмет кнопку "отправить")
WAITMS(1)
ELSE
LOGWRITE ("проверка на конверт и поиск кнопки отправить")
$ARR_NUM = 99999 // сброс цикла
LCLICK($X, $Y)
WAITMS(1000)
END_IF
END_CYC
UNDEFINE($ARR_SCAN) // очищаем массив координат
END_IF
Еще у тебя написано "если есть конверт" на самом деле клик происходит если пиксель 16514039 не найден
IF_PIXEL_IN($X-599,$Y-0, $X+0,$Y+0, 16514039) // пиксель конверта (если есть конверт, то не жмет кнопку "отправить")
WAITMS(1) // если найден то ничего
ELSE
// если не найден то
LOGWRITE ("проверка на конверт и поиск кнопки отправить")
$ARR_NUM = 99999 // сброс цикла
LCLICK($X, $Y)
WAITMS(1000)
END_IF
Может быть тут корень проблемы?
-
Опять же, если не понятно срабатывает или нет условие или цикл, нужно поместить внутрь его запись в лог. И по показаниям в логе в ходе работы скрипте уже можно сориентироваться.
-
Заметил еще одно, отсутствует UNDEFINE($ARR_SCAN) без этого на повторном проходе цикл снова отработает по старым координатам.
// вибор ника
LCLICK(1245,169)
WAITMS(500)
LCLICK(1245,169)
WAITMS(50)
KEYDOWN(#SHIFT)
LCLICK(1118,169)
KEYUP(#SHIFT)
WAITMS(50)
//вырезание ника
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#X)
WAITMS (50)
KEYUP (#X)
KEYUP (#CTRL)
WAITMS (50)
KEYPRESS(#DELETE)
//выделениеника в строке поиска
LCLICK(610,479)
WAITMS(500)
LCLICK(610,479)
WAITMS(50)
KEYDOWN(#SHIFT)
LCLICK(242,478)
KEYUP(#SHIFT)
WAITMS(50)
//удаление и вставка нового ника
KEYPRESS(#DELETE)
WAITMS (50)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (50)
//поиск и нажатия на искать
GETSCREEN
IF_PICTURE_IN (231,488, 440,740, "искать.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAITMS(100)
END_IF
//поиск изображения входящего сообщения
GETSCREEN
IF_PICTURE_IN (1173,293, 1258,938, "крестик.bmp", -1, 100)
LOGWRITE ("Найден крестик")
LCLICK($_return1, $_return2)
WAITMS(100)
else
WAITMS(50)
LOGWRITE ("проверка на конверт и поиск кнопки отправить")
//проверка на конверт и поиск кнопки отправить
GETSCREEN
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "отправить2.bmp", -1, 100)
$ARR_NUM = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
$X = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
$Y = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
IF_PIXEL_IN($X-599,$Y-0, $X+0,$Y+0, 16514039) // пиксель конверта (если есть конверт, то не жмет кнопку "отправить")
WAITMS(1)
ELSE
LOGWRITE ("проверка на конверт и поиск кнопки отправить")
$ARR_NUM = 99999 // сброс цикла
LCLICK($X, $Y)
WAITMS(1000)
END_IF
END_CYC
UNDEFINE($ARR_SCAN) // очищаем массив координат
END_IF
Еще у тебя написано "если есть конверт" на самом деле клик происходит если пиксель 16514039 не найден
IF_PIXEL_IN($X-599,$Y-0, $X+0,$Y+0, 16514039) // пиксель конверта (если есть конверт, то не жмет кнопку "отправить")
WAITMS(1) // если найден то ничего
ELSE
// если не найден то
LOGWRITE ("проверка на конверт и поиск кнопки отправить")
$ARR_NUM = 99999 // сброс цикла
LCLICK($X, $Y)
WAITMS(1000)
END_IF
Может быть тут корень проблемы?
Так в чем проблема? Этот код когда то вы мне и написали. И почему по отдельности работает а вместе нет? Может быть я покажу кому то в скайпе или ТВ в чем проблема?
-
Я так делал, вот код.
И вот лог.
12:24:33 1
12:24:34 2
12:24:34 3
12:25:19 1
12:25:20 2
12:25:20 3
12:25:23 1
12:25:24 2
12:29:36 1
12:29:36 2
12:29:36 3
// вибор ника
LCLICK(1245,169)
WAITMS(500)
LCLICK(1245,169)
WAITMS(50)
KEYDOWN(#SHIFT)
LCLICK(1118,169)
KEYUP(#SHIFT)
WAITMS(50)
//вырезание ника
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#X)
WAITMS (50)
KEYUP (#X)
KEYUP (#CTRL)
WAITMS (50)
KEYPRESS(#DELETE)
//выделениеника в строке поиска
LCLICK(610,479)
WAITMS(500)
LCLICK(610,479)
WAITMS(50)
KEYDOWN(#SHIFT)
LCLICK(242,478)
KEYUP(#SHIFT)
WAITMS(50)
//удаление и вставка нового ника
KEYPRESS(#DELETE)
WAITMS (50)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (50)
//поиск и нажатия на искать
GETSCREEN
IF_PICTURE_IN (231,488, 440,740, "искать.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAITMS(100)
END_IF
//поиск изображения входящего сообщения
GETSCREEN
IF_PICTURE_IN (1173,293, 1258,938, "крестик.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAITMS(100)
else
WAITMS(50)
//проверка на конверт и поиск кнопки отправить
GETSCREEN
LOGWRITE ("1")
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "отправить2.bmp", -1, 100)
LOGWRITE ("2")
$ARR_NUM = 0
LOGWRITE ("3")
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
LOGWRITE ("4")
$X = $ARR_SCAN [$ARR_NUM]
LOGWRITE ("5")
INC($ARR_NUM,1)
LOGWRITE ("6")
$Y = $ARR_SCAN [$ARR_NUM]
LOGWRITE ("7")
INC($ARR_NUM,1)
LOGWRITE ("8")
IF_PIXEL_IN($X-599,$Y-0, $X+0,$Y+0, 16514039) // пиксель конверта (если есть конверт, то не жмет кнопку "отправить")
WAITMS(1)
LOGWRITE ("err")
ELSE
$ARR_NUM = 99999 // сброс цикла
LCLICK($X, $Y)
WAITMS(1000)
LOGWRITE ("3")
END_IF
END_CYC
UNDEFINE($ARR_SCAN)
END_IF
-
Ну судя по логу "отправить2.bmp" не найдена, вследствие чего $ARR_SCAN пуст а значит и цикл выполняться не будет! С цифрами лога ты конечно переборщил :D
Вот я добавил строку лога которая сообщает сколько найдено картинок. Уверен что у тебя там 0
// вибор ника
LCLICK(1245,169)
WAITMS(500)
LCLICK(1245,169)
WAITMS(50)
KEYDOWN(#SHIFT)
LCLICK(1118,169)
KEYUP(#SHIFT)
WAITMS(50)
//вырезание ника
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#X)
WAITMS (50)
KEYUP (#X)
KEYUP (#CTRL)
WAITMS (50)
KEYPRESS(#DELETE)
//выделениеника в строке поиска
LCLICK(610,479)
WAITMS(500)
LCLICK(610,479)
WAITMS(50)
KEYDOWN(#SHIFT)
LCLICK(242,478)
KEYUP(#SHIFT)
WAITMS(50)
//удаление и вставка нового ника
KEYPRESS(#DELETE)
WAITMS (50)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (50)
//поиск и нажатия на искать
GETSCREEN
IF_PICTURE_IN (231,488, 440,740, "искать.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAITMS(100)
END_IF
//поиск изображения входящего сообщения
GETSCREEN
IF_PICTURE_IN (1173,293, 1258,938, "крестик.bmp", -1, 100)
LOGWRITE ("0")
LCLICK($_return1, $_return2)
WAITMS(100)
else
LOGWRITE ("1")
WAITMS(50)
//проверка на конверт и поиск кнопки отправить
GETSCREEN
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "отправить2.bmp", -1, 100)
LOGWRITE ("Найдено картинок: ", ARRSIZE($ARR_SCAN)/2)
$ARR_NUM = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
LOGWRITE ("2")
$X = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
$Y = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
IF_PIXEL_IN($X-599,$Y-0, $X+0,$Y+0, 16514039) // пиксель конверта (если есть конверт, то не жмет кнопку "отправить")
WAITMS(1)
LOGWRITE ("err")
ELSE
$ARR_NUM = 99999 // сброс цикла
LCLICK($X, $Y)
WAITMS(1000)
LOGWRITE ("3")
END_IF
END_CYC
UNDEFINE($ARR_SCAN)
END_IF
-
Ну судя по логу "отправить2.bmp" не найдена, вследствие чего $ARR_SCAN пуст а значит и цикл выполняться не будет! С цифрами лога ты конечно переборщил :D
Вот я добавил строку лога которая сообщает сколько найдено картинок. Уверен что у тебя там 0
// вибор ника
LCLICK(1245,169)
WAITMS(500)
LCLICK(1245,169)
WAITMS(50)
KEYDOWN(#SHIFT)
LCLICK(1118,169)
KEYUP(#SHIFT)
WAITMS(50)
//вырезание ника
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#X)
WAITMS (50)
KEYUP (#X)
KEYUP (#CTRL)
WAITMS (50)
KEYPRESS(#DELETE)
//выделениеника в строке поиска
LCLICK(610,479)
WAITMS(500)
LCLICK(610,479)
WAITMS(50)
KEYDOWN(#SHIFT)
LCLICK(242,478)
KEYUP(#SHIFT)
WAITMS(50)
//удаление и вставка нового ника
KEYPRESS(#DELETE)
WAITMS (50)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (50)
//поиск и нажатия на искать
GETSCREEN
IF_PICTURE_IN (231,488, 440,740, "искать.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAITMS(100)
END_IF
//поиск изображения входящего сообщения
GETSCREEN
IF_PICTURE_IN (1173,293, 1258,938, "крестик.bmp", -1, 100)
LOGWRITE ("0")
LCLICK($_return1, $_return2)
WAITMS(100)
else
LOGWRITE ("1")
WAITMS(50)
//проверка на конверт и поиск кнопки отправить
GETSCREEN
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "отправить2.bmp", -1, 100)
LOGWRITE ("Найдено картинок: ", ARRSIZE($ARR_SCAN)/2)
$ARR_NUM = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
LOGWRITE ("2")
$X = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
$Y = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
IF_PIXEL_IN($X-599,$Y-0, $X+0,$Y+0, 16514039) // пиксель конверта (если есть конверт, то не жмет кнопку "отправить")
WAITMS(1)
LOGWRITE ("err")
ELSE
$ARR_NUM = 99999 // сброс цикла
LCLICK($X, $Y)
WAITMS(1000)
LOGWRITE ("3")
END_IF
END_CYC
UNDEFINE($ARR_SCAN)
END_IF
вот лог:
13:03:36 1
13:03:37 Найдено картинок: 0
13:03:39 1
13:03:40 Найдено картинок: 0
вопрос почему тогда если не найдено ни 1 картинки на искать оно нажимает нормально а значит и как минимум 1 картинку таки находит.
-
Это относится только к отправить2.bmp!
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "отправить2.bmp", -1, 100)
LOGWRITE ("Найдено картинок: ", ARRSIZE($ARR_SCAN)/2)
Функция SCANPICTURE ищет все картинки отправить2.bmp на экране и складывает координаты в массив $ARR_SCAN. Две строки массива это 1 координата. Я просто написал функцию определения количества строк в массиве и поделить это на два ARRSIZE($ARR_SCAN)/2 таким образом мы можем узнать сколько найдено картинок "отправить2.bmp"
Как с тобой трудно... Разберись уже с картинками!
-
Это относится только к отправить2.bmp!
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "отправить2.bmp", -1, 100)
LOGWRITE ("Найдено картинок: ", ARRSIZE($ARR_SCAN)/2)
Функция SCANPICTURE ищет все картинки отправить2.bmp на экране и складывает координаты в массив $ARR_SCAN. Две строки массива это 1 координата. Я просто написал функцию определения количества строк в массиве и поделить это на два ARRSIZE($ARR_SCAN)/2 таким образом мы можем узнать сколько найдено картинок "отправить2.bmp"
Как с тобой трудно... Разберись уже с картинками!
ну блин....почему же часть кода работает? Картинку находит....извини может я туплю но это ппц как мне не понятно. Давай покажу в скайпе всё.
-
Да просто графика может меняться! Сглаживание шрифтов там всякое и тд.
// Отдельным скриптом получаешь скорректированный снимок
GETSCREEN
COLORMODE(6) // уровень коррекции 6
SCREENSHOT
HALT
Из скриншота вырезаешь твою "отправить2.bmp"
GETSCREEN
COLORMODE(6) // такую же коррекцию указываешь в своем скрипте.
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "отправить2.bmp", -1, 80) // а здесь мы снизим процент совпадения до 80% может и ниже
На самом деле тут ничего сложного.
-
Да просто графика может меняться! Сглаживание шрифтов там всякое и тд.
// Отдельным скриптом получаешь скорректированный снимок
GETSCREEN
COLORMODE(6) // уровень коррекции 6
SCREENSHOT
HALT
Из скриншота вырезаешь твою "отправить2.bmp"
GETSCREEN
COLORMODE(6) // такую же коррекцию указываешь в своем скрипте.
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "отправить2.bmp", -1, 80) // а здесь мы снизим процент совпадения до 80% может и ниже
На самом деле тут ничего сложного.
Сделал новый скрин. Сделал совпадения меньше, и как было так и осталось. Это магия(
-
Ребят, помогите пожалуйста. Реал не понимаю в чем дело)
-
Добавь команду сохранить скриншот после снимка в скрипте, тогда сам сможешь увидеть что видел кликер в тот момент.
GETSCREEN
SCREENSHOT // сохранить снимок в файл
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "отправить2.bmp", -1, 100)