Автокликер Clickermann :: Форум
Основной раздел => Использование => Topic started by: Гринланд on December 27, 2012, 11:06:45 AM
-
Скрипт очень простой, для автоматизации рабочего процесса. Все работает, но хочется оптимизировать код. Знаю что есть конкретная функция по повтору (циклу) части кода.
WAIT(2)
LCLICK(3074,962) // запускает программу
WAIT(2)
LCLICK(2384,397) // выбирает нужную закладку
WAIT(2)
LCLICK(2710,763) // выбор дополнительной функции в программе, потом пауза в 10 сек что бы дождаться загрузки
WAIT(10)
и вот эту следующею часть кода нужно повторить 30-40 раз
DBLCLICK(2456,417) // 0
WAIT(2)
LCLICK(2518,459) // 0
WAIT(2)
LCLICK(2565,616) // 0
WAIT(2)
LCLICK(2933,723) // 0
я делаю просто повторяю - его нужно количества раз, хотя понимаю что есть более простой способ
-
есть более простой способ
Если нет иных условий а есть простое повторение то попробуй так изменить свой скрипт
WAIT(2)
LCLICK(3074,962) // запускает программу
WAIT(2)
LCLICK(2384,397) // выбирает нужную закладку
WAIT(2)
LCLICK(2710,763) // выбор дополнительной функции в программе, потом пауза в 10 сек что бы дождаться загрузки
WAIT(10)
DEFINE($aaa,0) // вводим переменную для подсчета циклов
start:
DBLCLICK(2456,417) // 0
WAIT(2)
LCLICK(2518,459) // 0
WAIT(2)
LCLICK(2565,616) // 0
WAIT(2)
LCLICK(2933,723) // 0
INC ($aaa, 1) // после цикла переменная увеличивается на 1
IF($aaa = 30) // если счет циклов стал равен 30 , останавливаем выполнение скрипта
HALT
END_IF
GOTO (start) // если счет циклов не равен 30, возвращаемся к start:
-
не много по синтаксису хочу спросить, часть кода:
DBLCLICK(2456,417) // 0
WAIT(2)
LCLICK(2518,459) // 0
WAIT(2)
LCLICK(2565,616) // 0
WAIT(2)
LCLICK(2933,723) // 0
будет работать так же как:
DBLCLICK(2456,417) // 0
WAIT(2)
LCLICK(2518,459) // 0
WAIT(2)
LCLICK(2565,616) // 0
WAIT(2)
LCLICK(2933,723) // 0
я всегда переживаю, что бы не оставить в коде пустую строку или пробел в начале или конце команды, как кликер на это реагирует ??
-
Никак не реагирует .
Оставляй.
Там есть волшебная палочка в кликермане .
Ею полезно сначала "причесать" скрипт, а потом сохранить.
-
спасибо большое, "все гениальное - просто"
сейчас поэкспериментирую и разберусь как применять в дальнейшем
-
для закрепления: что бы я не поместил между 3 и 9 строкой кода будет повторяться 30 раз??
DEFINE($aaa,0) // вводим переменную для подсчета циклов
start:
INC ($aaa, 1) // после цикла переменная увеличивается на 1
IF($aaa = 30) // если счет циклов стал равен 30 , останавливаем выполнение скрипта
HALT
END_IF
GOTO (start) // если счет циклов не равен 30, возвращаемся к start:
-
Так можешь писать, но лучше не пиши.
Циклы делают так:
WAIT(2)
LCLICK(3074,962) // запускает программу
WAIT(2)
LCLICK(2384,397) // выбирает нужную закладку
WAIT(2)
LCLICK(2710,763) // выбор дополнительной функции в программе, потом пауза в 10 сек что бы дождаться загрузки
WAIT(10)
FOR ($i, $i<30) // твои 30 раз
DBLCLICK(2456,417) // 0
WAIT(2)
LCLICK(2518,459) // 0
WAIT(2)
LCLICK(2565,616) // 0
WAIT(2)
LCLICK(2933,723) // 0
WAIT(2)
END_CYC
// ну и так далее
-
для закрепления: что бы я не поместил между 3 и 9 строкой кода будет повторяться 30 раз??
Да.
А 30 или 130 раз, это уже сам вписывай)
В кликермане есть такая функция , где даже можно по ходу сценария вписывать нужные параметры во всплывающем окне.
[spoiler] INPUTBOX("message", "default", [delay]) - строковая функция; выводит диалоговое окно для ввода строки
Параметры
message - сообщение диалогового окна
default - значение по умолчанию
delay - необязательный параметр; таймаут
Пример
$str = inputbox("text", "hello")
print($str)
Примечания
Диалоговое окно висит delay секунд. Если за это время пользователь не начал ввод или не нажал одну из кнопок, то функция вернет строку по умолчанию. Если пользователь нажал отмену, то будет возвращена пустая строка
По умолчанию параметр delay равен 5
[/spoiler]
Если надо , можно пояснить как это сделать.
-
Так можешь писать, но лучше не пиши.
Циклы делают так:
WAIT(2)
LCLICK(3074,962) // запускает программу
WAIT(2)
LCLICK(2384,397) // выбирает нужную закладку
WAIT(2)
LCLICK(2710,763) // выбор дополнительной функции в программе, потом пауза в 10 сек что бы дождаться загрузки
WAIT(10)
FOR ($i, $i<30) // твои 30 раз
DBLCLICK(2456,417) // 0
WAIT(2)
LCLICK(2518,459) // 0
WAIT(2)
LCLICK(2565,616) // 0
WAIT(2)
LCLICK(2933,723) // 0
WAIT(2)
END_CYC
// ну и так далее
этот вариант мне больше нравиться, он попроще ))) спасибки
-
круто я с циклом сжал скрипт с 600 строк до 21 8)
-
Здравствуйте. Наконец нашла то, что меня интересовало.
Вопросы:
1. Получается, в примерах, которые выше, возьмем последний, после этого повторения 30 раз нужного кода, можно дальше писать в скрипте вторую часть, которую тоже можно повторить нужное количество раз? Тоже очень хочется сократить 40 тысяч строк до сотни)
2. Отдельный вопрос, есть у кликермана какой-то предел в количестве обрабатываемых строк? Ибо в 40 тысячах (ну примерно, вообще там еще больше было) он у меня не справлялся примерно с тысячей последних строк, просто работа прекращалась что ли. Несколько раз так было незакончено, и я забросила запускать такие большие по содержанию циклы.
-
Здравствуйте. Наконец нашла то, что меня интересовало.
Вопросы:
1. Получается, в примерах, которые выше, возьмем последний, после этого повторения 30 раз нужного кода, можно дальше писать в скрипте вторую часть, которую тоже можно повторить нужное количество раз? Тоже очень хочется сократить 40 тысяч строк до сотни)
2. Отдельный вопрос, есть у кликермана какой-то предел в количестве обрабатываемых строк? Ибо в 40 тысячах (ну примерно, вообще там еще больше было) он у меня не справлялся примерно с тысячей последних строк, просто работа прекращалась что ли. Несколько раз так было незакончено, и я забросила запускать такие большие по содержанию циклы.
Можно.
Лучше писать скрипт руками. Запись (а 40 тысяч строк это точно запись, причём махровая с движением мыши) работает нормально только на простых, непродолжительных скриптах. Любая задержка или неучтённое действие собьют работу.
-
покажите мне рукописный код на 40к строк :o
у меня пока самый большой 460(инклуд с сабами)+180(логика)=640 при том что в нем присутствуют циклы
-
Можно.
Лучше писать скрипт руками. Запись (а 40 тысяч строк это точно запись, причём махровая с движением мыши) работает нормально только на простых, непродолжительных скриптах. Любая задержка или неучтённое действие собьют работу.
От записи мышью я давно отказалась, слишком много ошибок при этом. Столько много строчек выходило из того, что переходя на одну страничку, мне там нужно было сделать, например, 500 одинаковых действий, а я не знала, как это урезать, поэтому просто вставляла 500 одинаковых действий , потом нужно было перейти на другую страничку, и уже там сделать, например, 185 одинаковых действий. И так штук 5 разных страниц. И это должен был быть один большой неповторяемый в дальнейшем цикл. Но теперь всё урегулируется)
-
От записи мышью я давно отказалась, слишком много ошибок при этом. Столько много строчек выходило из того, что переходя на одну страничку, мне там нужно было сделать, например, 500 одинаковых действий, а я не знала, как это урезать, поэтому просто вставляла 500 одинаковых действий , потом нужно было перейти на другую страничку, и уже там сделать, например, 185 одинаковых действий. И так штук 5 разных страниц. И это должен был быть один большой неповторяемый в дальнейшем цикл. Но теперь всё урегулируется)
:o :o :o
-
:o :o :o
там походу искусственный интеллект самообучающийся =)
-
Снова здравствуйте.
Случайно натыкалась на какую-то тему, где говорилось о привязке кликермана к окну, причем окно это самое можно было бы сворачивать, при этом даже работать на компьютере самому, не трогая только клавиши, останавливающие работу кликермана. Не подскажете, где можно об этом прочитать, я потеряла тему)) очень хотелось бы спокойно работать в фотошопе, в то время, когда компьютер обычно был занят кликерманом. Это мне и не мечталось, чтобы кликер работал, а я еще и ползать по компьютеру могла ))) раньше бы очень пригодилось, пока мужа в армию не забрали - хотелось фильмы смотреть, а тут кликерман щелкал...
Привязка нужна к браузеру Mozilla
-
Снова здравствуйте.
Случайно натыкалась на какую-то тему, где говорилось о привязке кликермана к окну, причем окно это самое можно было бы сворачивать, при этом даже работать на компьютере самому, не трогая только клавиши, останавливающие работу кликермана. Не подскажете, где можно об этом прочитать, я потеряла тему)) очень хотелось бы спокойно работать в фотошопе, в то время, когда компьютер обычно был занят кликерманом. Это мне и не мечталось, чтобы кликер работал, а я еще и ползать по компьютеру могла ))) раньше бы очень пригодилось, пока мужа в армию не забрали - хотелось фильмы смотреть, а тут кликерман щелкал...
Привязка нужна к браузеру Mozilla
не сможете, даже с привязкой, окно само будет разворачиватся время от времени, лучше делать такое через виртуалку
-
Наводишь мышь на окно и жмешь Alt+W. Кликер перейдет в оконный режим. Но в этом режиме все координаты отсчитываются от начала окна, скрипт должен писаться с учетом этого. Также в оконном режиме не работают зажатия клавиш (например нельзя выполнить Ctrl+V)
В свернутом окне ничего не отображается но клики могут выполняться. Окно можно не сворачивать а держать на заднем плане или уводить за экран.
-
не сможете, даже с привязкой, окно само будет разворачиватся время от времени, лучше делать такое через виртуалку
Обычно это происходит в Хроме!
-
Обычно это происходит в Хроме!
а ну сори за дезу
-
Подскажите пожалуйста, а как сделать, чтобы после определенного количества повтора циклов делалась пауза в 1 час, а потом снова шли циклы?
Вот мой код:
FOR ($i, $i<50)
WAIT(5)
LCLICK(1230,310) - открывает задание
WAIT(12)
LCLICK(740,445) - выполняет задание
WAIT(3)
LCLICK(1166,9) - закрывает задание
WAIT(7)
LCLICK(74,47) - обновляет страницу
END_CYC
-
FOR ($i=0, $i<50)
WAIT(5)
LCLICK(1230,310) //- открывает задание
WAIT(12)
LCLICK(740,445) //- выполняет задание
WAIT(3)
LCLICK(1166,9) //- закрывает задание
WAIT(7)
LCLICK(74,47) //- обновляет страницу
END_CYC
WAIT(3600) //- задержка 1 час
-
FOR ($i=0, $i<50)
WAIT(5)
LCLICK(1230,310) //- открывает задание
WAIT(12)
LCLICK(740,445) //- выполняет задание
WAIT(3)
LCLICK(1166,9) //- закрывает задание
WAIT(7)
LCLICK(74,47) //- обновляет страницу
END_CYC
WAIT(3600) //- задержка 1 час
Урааа, спасибо!) Все работает)
-
Ребят. читал читал и не понял нифига. цикл настроен, но необхдимо, что бы 50 циклов повторялись каждый час.
код простой.
FOR ($i, $i<50)
MOVE(970,433)
WAITMS(500)
DBLCLICK(970,433)
WAITMS(500)
WHEELDOWN(3)
END_CYC
буду благодарен
-
Ребят. читал читал и не понял нифига. цикл настроен, но необхдимо, что бы 50 циклов повторялись каждый час.
код простой.
FOR ($i, $i<50)
MOVE(970,433)
WAITMS(500)
DBLCLICK(970,433)
WAITMS(500)
WHEELDOWN(3)
END_CYC
буду благодарен
так а в чем проблема выставить нужную задержку после цикла wait(3600) - 1час . или нужно именно в определенную минуту времени, или ровно через час с мамента старта работы, или с момента окончания цикла? но все это пока не важно, у тебя ошибка, цикл в данном случае выполнится 1 раз, так как по окончании цикла, $i = 50. значит перед началом следующего выполнения цикла, эту переменную нужно обнулить.
FOR ($i=0, $i<50)
MOVE(970,433)
WAITMS(500)
DBLCLICK(970,433)
WAITMS(500)
WHEELDOWN(3)
END_CYC
тремя сообщениями выше готовый ответ был http://crapware.aidf.org/forum/index.php?topic=106.msg23738#msg23738
-
вот оно что) Благодарю, добрый человек)
-
Доброго времени суток, решил использовать кликер для сбора плюшек в браузерной игре. Получилось следующее:
FOR($a, $a < 10)
LCLICK(344,447)
WAIT(3)
LCLICK(358,596)
WAIT(3)
LCLICK(679,512)
WAIT(3)
LCLICK(1284,121)
WAIT(3605)
END_CYC
Запускаю, утром проверю. В принципе, всё корректно?
-
Если ты хочешь чтобы кликер остановился после 10 повторов то то надо написать HALT
FOR($a=0, $a<10)
LCLICK(344,447)
WAIT(3)
LCLICK(358,596)
WAIT(3)
LCLICK(679,512)
WAIT(3)
LCLICK(1284,121)
WAIT(3605)
END_CYC
HALT
-
Подскажите пожалуйста ! Требуется чтобы скрипт выполнился три раза остановился и запустился другой скрипт ....он почемуто выполняется один раз если в конце ставлю HALT и останавливается,а если не ставлю он выполняется не три раза как требуется ,а бесконечно (
fOR($i=0,$i<3)
WAIT(10)
LCLICK(835,459)
WAIT(3)
LCLICK(835,459)
WAIT(3)
LCLICK(835,459)
WAIT(5)
LCLICK(521,381)
FOR($a=0,$a<16)
KEYPRESS(#BACKSPACE)
WAITMS(2)
END_CYC
WAITMS(200)
$str=""
for ($i=0, $i < 10)
$chr = char( rnd(97, 122) )
$str = strconcat($str, $chr)
end_cyc
KEYSTRING($str)
WAIT(3)
LCLICK(831,380)
end_cyc
-
Бесконечно - потому, что весь код в редакторе выполняется бесконечно, для окончания должна выполнится HALT
Один раз - потому что внутренний цикл должен использовать другую переменную, не $i, она уже занята во внешнем цикле. По окончании внутреннего $i = 10, т.е. уже конец внешнего.
Исправь и будет выполнятся 3 раза.
Поставь в конце свой "другой скрипт" который выполнится позже.
-
Спасибо VINT!
-
Vint если не трудно удели ещё немного времени,подскажи начинающему :-[
как рандомно заменить значения в поле к примеру от 1.01 до 1.30?
WAIT(5)
LCLICK(819,325)
FOR($a=0,$a<4)
KEYPRESS(#BACKSPACE)
WAITMS(2)
END_CYC
WAITMS(200)
$str=""
for ($j=0, $j < 4)
$chr = char( rnd(1.01, 1.30) )
$str = strconcat($str, $chr)
end_cyc
KEYSTRING($str)
WAIT(3)
END_CYC
Что то у меня не выходит :(
-
RND возвращает только целые числа.
Чёт непонятно что ты хочешь сделать. CHAR - возвращает символ по коду, зачем в него передавать дробное число? У какого символа код 1.01?
-
Я просто не очень то понимаю :( Понимаю что этот цикл менят рандомно подставляет символы от a...z ,а как вставить рандомно меняющиеся дробные числа от 1.01 до 1.30 тяму у меня не хватает ((
-
Вот так подставятся рандомные символы a...z
$str=""
FOR($j=0, $j < 4)
$chr = CHAR(RND(97, 122))
$str = STRCONCAT($str, $chr)
END_CYC
Вот так A...Z
$str=""
FOR($j=0, $j < 4)
$chr = CHAR(RND(65, 90))
$str = STRCONCAT($str, $chr)
END_CYC
Вот так получаем случайное число из диапазона от 1.01 до 1.30
$chr = RND(1, 30)/100 + 1
Но зачем это в этом коде, никто не знает. В CHAR это передавать нельзя.
-
Добрый день :)
поделитесь советом, как, зациклив одну часть сценария, возвращаться к первой строке и начинать заново?
был взят этот сценарий, но что-то не работает как надо. Он зациклил вторую часть бесконечно. как исправить, немного не понимаю ::)
staret:
WAIT(1)
LCLICK(107,730)
WAIT(4)
DEFINE($aaa,0) // эту часть нужно зациклить 30 раз и возвращаться к 1ой строке
start:
WAIT(1)
LCLICK(1223,754)
WAIT(2)
INC ($aaa, 1) // увеличиваем переменную на 1
IF($aaa = 30) // если переменная стала равна 30
GOTO (staret)
END_IF
GOTO (start) // если счет циклов не равен 30, возвращаемся к метке start:
-
Добрый день :)
поделитесь советом, как, зациклив одну часть сценария, возвращаться к первой строке и начинать заново?
был взят этот сценарий, но что-то не работает как надо. Он зациклил вторую часть бесконечно. как исправить, немного не понимаю ::)
Мммда.
WAIT(1)
LCLICK(107,730)
WAIT(4)
FOR($aaa=0, $aaa < 30)
WAIT(1)
LCLICK(1223,754)
WAIT(2)
END_CYC
-
оу мерси Винт
Добрый день :)
поделитесь советом, как, зациклив одну часть сценария, возвращаться к первой строке и начинать заново?
был взят этот сценарий, но что-то не работает как надо. Он зациклил вторую часть бесконечно. как исправить, немного не понимаю ::)
Мммда.
WAIT(1)
LCLICK(107,730)
WAIT(4)
FOR($aaa=0, $aaa < 30)
WAIT(1)
LCLICK(1223,754)
WAIT(2)
END_CYC
-
Здравствуйте, подскажите пожалуйста как лучше реализовать следующий сценарий:
Есть две области экрана (для простоты, скажем левая и правая), в которые необходимо делать ряд кликов мышью. При этом, началА циклов по прокликиванию в левой и правой частях экрана должны проходить рандомно, т.е. необязательно поочередно.
Например, прокликакли первый цикл в левой части экрана, ждем, скажем, от 5 до 30 секунд (это рандомно надо выбрать) и далее, либо начинается цикл кликов по правой части экрана, либо опять первый цикл - по левой, это также надо выбирать рандомно, опять ждем некоторое рандомное время и так далее.
-
IF(RND(0, 1) = 0)
// здесь клики по левой стороне
ELSE
// здесь клики по правой стороне
END_IF
WAIT(RND(5, 30))
-
IF(RND(0, 1) = 0)
// здесь клики по левой стороне
ELSE
// здесь клики по правой стороне
END_IF
WAIT(RND(5, 30))
Спасибо, очень просто и то что надо!!!
А если понадобиться добавить еще сторон или даже скорее не сторон, а мест, где необходимо поводить/покликать мышкой в экране, скажем если таких мест будет ну шт. 10, как тогда красиво описать эти действия и чтобы также с рандомом по разным местам и рандомом по времени начала срабатывания на то или иное место? Это уже не без помощи SWITCH наверное?
-
Да, почти то же самое, но со SWITCH
-
Да, почти то же самое, но со SWITCH
Примерчик бы, пжлст?)
-
Примерчик бы, пжлст?)
Шаблоны -->> SWITCH
$var = RND(1, 5)
SWITCH($var)
CASE(1)
// 1
CASE(2)
// 2
CASE(3)
// 3
CASE(4)
// 4
CASE(5)
// 5
END_SWITCH
WAIT(RND(5, 30))
-
Примерчик бы, пжлст?)
Шаблоны -->> SWITCH
$var = RND(1, 5)
SWITCH($var)
CASE(1)
// 1
CASE(2)
// 2
CASE(3)
// 3
CASE(4)
// 4
CASE(5)
// 5
END_SWITCH
WAIT(RND(5, 30))
Спасибо, разобрался тоже, так и сделал!
-
Самостоятельно одолеть не смог . Помогите пожалуйста начинающему мамкиному программисту ) Нужно что бы сценарий при повторении в зоне цикла увеличивал повторение на один . допустим 1 проход - Начало сценария ....- Начало цикла -5 раз повторяется участок цикла - выбор групп и идем на - начало сценария и сейчас начало цикла уже !6! раз повторяется участок . Получается с каждым повторением всего сценария именно этот участок цикла увеличивался на 1.
Начало сценария
WAIT(1)
LCLICK(418,265) // выбор группы
WAIT(1)
KEYDOWN (#CTRL)
WAITMS (50)
KEYPRESS (#A)
KEYUP (#CTRL)
WAIT(1)
KEYPRESS(#DELETE)
WAIT(1)
начало цикла
этот участок 5 раз повторить
WAIT(1) //прокрутка
LCLICK(427,678) // вниз
WAIT(1)
MOVE(410,678) // курсор на групп вниз
WAIT(1)
конец цикла
идем дальше
LCLICK(263,652) // выбор групп
WAIT(1)
конец
идти на повтори на начало
-
WAIT(1)
LCLICK(418,265) // выбор группы
WAIT(1)
KEYDOWN (#CTRL)
WAITMS(50)
KEYPRESS (#A)
KEYUP(#CTRL)
WAIT(1)
KEYPRESS(#DELETE)
WAIT(1)
DEFINE($count, 4)
INC($count)
FOR($i=0, $i < $count)
WAIT(1) //прокрутка
LCLICK(427,678) // вниз
WAIT(1)
MOVE(410,678) // курсор на групп вниз
WAIT(1)
END_CYC
LCLICK(263,652) // выбор групп
WAIT(1)
-
WAIT(1)
LCLICK(418,265) // выбор группы
WAIT(1)
KEYDOWN (#CTRL)
WAITMS(50)
KEYPRESS (#A)
KEYUP(#CTRL)
WAIT(1)
KEYPRESS(#DELETE)
WAIT(1)
DEFINE($count, 4)
INC($count)
FOR($i=0, $i < $count)
WAIT(1) //прокрутка
LCLICK(427,678) // вниз
WAIT(1)
MOVE(410,678) // курсор на групп вниз
WAIT(1)
END_CYC
LCLICK(263,652) // выбор групп
WAIT(1)
Благодарю работает как нужно )
-
Еще такой момент возможно допустим, что бы весь сценарий повторялся только 100 раз и потом остановился ?
-
FOR($k=0, $k < 100)
// здесь весь код, что был раньше
END_CYC
HALT
-
Сделал так же по инструкции в справке ,но забыл поставить HALT .теперь все работает . благодарю