Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: dr.gopher on March 02, 2014, 08:25:09 PM
-
Доброго времени суток! Помогите создать сценарий.
добавлено
Я так понимаю, мне сюда http://crapware.aidf.org/forum/index.php?topic=88.msg1571#msg1571
При открытии стартовой страницы стандартная ошибка Firefox - Попытка соединения не удалась
По какой-то причине страница открывается бессистемно. Может открыться с первого раза, а может с 5 го.
Условия для сценария:
1. Просмотреть стартовую страницу Firefox
2. Если на странице есть ошибка - Попытка соединения не удалась
3. Clickermann закрывает FIrefox директивой EXECUTE("C:\kill_firerox.bat") либо кликом.
4. Открывает FIrefox и снова просматривает страницу.
5. Цикл до тех пор, пока ошибки на странице не будет.
6. Следующее действие.
Спасибо за помощь.
-
Сделай поиск по картинке. По треугольнику.
EXECUTE("C:\Program Files\Mozilla Firefox\firefox.exe") //Запуск лисы
wait(5)
getscreen (6)
m1:
IF_PICTURE_IN (1,1, $_xmax, $_ymax, "somefile.bmp") // Название картинки
KEYDOWN (#CTRL)
WAITMS (50)
KEYPRESS (#R)
WAITMS (50)
KEYUP (#CTRL)
wait(4)
GOTO(m1)
END_IF
halt
//Скрин делать так
//getscreen
//colormode(6)
//screenshot
//halt
Не вижу смысла закрывать лису, когда можно обновить страницу...
P.S. Скрин картинки делать тоже в "colormode(6)" а-то, не получится
-
Что еще за getscreen (6)?
У тебя скрипт никогда не завершится если увидит картинку то будет снова и снова возвращаться к m1:, но getscreen то выше и нового снимка не будет!
Более правильный код.
EXECUTE("firefox.exe") //Запуск лисы
wait(10)
$check = 0
WHILE($check = 0)
getscreen
IF_PICTURE_IN (0,0, $_xmax, $_ymax, "somefile.bmp") // Название картинки
KEYPRESS (#F5)
wait(4)
ELSE
$check = 1
END_IF
END_CYC
halt
-
А на... зачем колормод для стандартной иконки, да ещё и без сглаживания. Там и так всё будет находиться.
-
Сделай поиск по картинке. По треугольнику.
Спасибо за решение!
Не вижу смысла закрывать лису, когда можно обновить страницу...
Теоретически вы правы. Но мне нужно было именно закрывать. Потому немножко изменил.
Всё отлично!
-
Что еще за getscreen (6)?
У тебя скрипт никогда не завершится если увидит картинку то будет снова и снова возвращаться к m1:, но getscreen то выше и нового снимка не будет!
Более правильный код.
Спасибо! Самому с нахрапа сложновато такое написать. Почитав форум пытался:
анализировать цвет пикселя
GETSCREEN
IF_PIXEL(357, 296, 359, 299, #FFFFFF) //анализ точки на экране
Также пытался найти картинку
GETSCREEN
COLORMODE(7)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, server.bmp, -1, 40)
print(«Найден в координатах X=», $_return1, «, Y=», $_return2)
LCLICK($_return1, $_return2)
// код выполнится если пиксел найден
WAIT(1)
// запустить блокнот
EXECUTE("notepad.exe")
WAIT(5)
Else
// запуск CMD
EXECUTE("cmd.exe")
END_IF
WAIT(5)
HALT
Но ваше решение полностью подходит под мою задачу.
Вот что получилось:
EXECUTE("firefox.exe") //Запуск лисы
wait(15)
$check = 0
WHILE($check = 0)
getscreen
IF_PICTURE_IN (0,0, $_xmax, $_ymax, "somefile.bmp") // Название картинки
// убить процесс Firefox
EXECUTE("taskkill", "/IM firefox.exe")
wait(5)
EXECUTE("firefox.exe") //Запуск лисы
wait(15)
ELSE
$check = 1
END_IF
END_CYC
halt
P.S. Для тех кто будет реализовывать подобное -
Необходимо сделать скриншот треугольника (обрезать), назвать его somefile.bmp и положить рядом со сценарием *.cms
-
Oraven, Вы неправильно разобрались.
Вот именно, когда увидит картинку с ошибкой, будет обновлять страницу, ждать, и снова "сканировать" пока ответ на станет false...
Vint соглашусь с Вами, но лишним не будет... А сглаживание как обозначаеться ? Не нашел... нашел только bgcolor и currency но это не то...
-
Oraven, Вы неправильно разобрались.
Вот именно, когда увидит картинку с ошибкой, будет обновлять страницу, ждать, и снова "сканировать" пока ответ на станет false...
Тебе еще раз повторить?
У тебя скрипт никогда не завершится если увидит картинку то будет снова и снова возвращаться к m1:, но getscreen то выше и нового снимка не будет!
Ничего нового он не увидит без getscreen
-
Тестирую сценарий.
Обнаружил, что Clickermann частенько ошибается и не находит треугольник.
Возможно есть дополнительные директивы для распознания треугольника?
-
Действительно твой скриншот отличается от моего. Нужно использовать процент совпадения.
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "2.bmp", -1, 75)
MOVE($_return1, $_return2)
WAITMS(100)
END_IF
HALT
-
Нужно использовать процент совпадения.
Спасибо. Тестирую.
Пришлось поиграться со временем ожидания. Рабочий вариант сценария.
#autorun
EXECUTE("firefox.exe") //Запуск лисы
wait(15)
$check = 0
WHILE($check = 0)
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "2.bmp", -1, 75)
MOVE($_return1, $_return2)
WAITMS(100)
EXECUTE("taskkill", "/IM firefox.exe") //Убить лису
wait(5)
EXECUTE("firefox.exe") //Запуск лисы
ELSE
$check = 1
END_IF
wait(15)
END_CYC
HALT
-
#autorun
EXECUTE("firefox.exe") //Запуск лисы
wait(15)
$check = 0
WHILE($check = 0)
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "2.bmp", -1, 75)
EXECUTE("taskkill", "/IM firefox.exe") //Убить лису
wait(5)
EXECUTE("firefox.exe") //Запуск лисы
wait(15)
ELSE
$check = 1
END_IF
END_CYC
HALT(1) // останавливаем и закрываем кликерманн
-
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "2.bmp", -1, 75)
Где можно почитать о проценте совпадения?
-1, 75 - чему соответствует и как уменьшить процент совпадения?
-
В справке конечно!
75% это серьезное понижение, чем меньше поцент совпадения тем дольше анализ. Рабочий процент должен быть в диапазона 70-100%
Если сделать картинку в режиме цветокоррекции то процент можно существенно поднять.
Чтобы рассчитать процент можно воспользоваться моим скриптом
http://crapware.aidf.org/forum/index.php?topic=1022.msg4329#msg4329 (http://crapware.aidf.org/forum/index.php?topic=1022.msg4329#msg4329)
-
В справке конечно!
Ткните носом!
http://crapware.aidf.org/forum/index.php?topic=1022.msg4329#msg4329 (http://crapware.aidf.org/forum/index.php?topic=1022.msg4329#msg4329)
Ваш скрипт показывает 100% совпадение.
Пробую разные варианты понижения и время ожидания, но 100-процентной работоспособности добиться не могу.
Подскажите, как включить логирование в реальном времени?
Хочу проследить, в каком месте ошибка.
-
Раздел "Анализ экрана" функция IF_PICTURE_IN.
Внутрь условий вставь запись в лог
LOGWRITE ("message")
если условие сработает , произойдет запись в лог.
-
Раздел "Анализ экрана" функция IF_PICTURE_IN.
Спасибо.
Тесты показали, что Clickermann отрабатывает нормально.
Есть нюансы с запуском.
Если запускать *.CMS с помощью виндового "Назначения задач", то Clickermann не может корректно сделать HALT (1).
Процесс Clickermann.exe остается висеть в процессах.
Пришлось указать в "Назначения задач" *.BAT файл который"
1. запускает Firefox
2. пауза 15 сек
3. запуск сценария *.CMS
4. пауза - нужное время работы Firefox
5. килл процесса Firefox
P.S. Возможно у меня такая проблема на Win XP из за того, что использую Portable Firefox.
-
P.S. Возможно у меня такая проблема на Win XP из за того, что использую Portebal Firefox.
что за портативная версия такая?
У меня тоже есть портативный Firefox но запускать там надо FirefoxPortable.exe
Попробуй вот эту сборку
скачай русскоязычную
http://portableapps.com/apps/internet/firefox_portable/localization (http://portableapps.com/apps/internet/firefox_portable/localization)
-
У меня тоже есть портативный Firefox но запускать там надо FirefoxPortable.exe
Ответил в личку
-
поясните мне bgcolor что задает? никак не вкурю где этот цвет игнорится в искомой картинке или на экране в getscreen ?
-
поясните мне bgcolor что задает? никак не вкурю где этот цвет игнорится в искомой картинке или на экране в getscreen ?
Это цвет прозрачности в картинке. Помечаешь в своем фрагменте то что должно быть прозрачным каким нибудь цветом. Сохраняешь и указываешь код этого цвета как прозрачность.
-
поясните мне bgcolor что задает? никак не вкурю где этот цвет игнорится в искомой картинке или на экране в getscreen ?
Это цвет прозрачности в картинке. Помечаешь в своем фрагменте то что должно быть прозрачным каким нибудь цветом. Сохраняешь и указываешь код этого цвета как прозрачность.
вот спасибо а то голову ломал этого сильно не хватало
-
Помогите разобраться
1. Надо на странице найти кнопку ( она видимо как картинка) клинкнуть на ней раз 100.
( проблема в том что после клика на ней страница с текстом разворачивается и она уезжает из видимой области, надо как то прокрутить, найти ее и опять кликнуть) кнопка синяя с текстов. разворачивает дополнительные строки
2. поле того как все списки отркрыты необходимо найти определенную текстовую фразу. и клинкнуть по ней, через 7 секунд найти слещующую и так прокликать в цикле.
Пока осилил только тупо клик по координате, не программист. дальше мозг не позволяет додуматься..
Подскажите плиз.... :-((((
LCLICK(647,556) // 13101311
wait(7)