Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: putman on July 18, 2019, 06:34:32 PM
-
Здравствуйте.
Обнаружил глюк в работе TOCLIP ().
Иногда, при отрабатывании функции TOCLIP ("$path), когда в фокусе адресная строка браузера Гугл Хром, в эту самую строку вставляется не содержимое переменной $path, а сама инструкция TOCLIP ("$path). Смог заметить это только на замедленном прокручивании записи работы скрипта.
Соответственно открывается не требуемая мне анкета, а результат поиска гуглом на запрос - TOCLIP ("$path).
С чем это может быть связано и как бороть кроме отслеживания скриптом этого косяка и повторной вставкой корректного адреса анкеты ?
М.б. это поможет, но скрипты (одинаковые) работают на 4-х виртуальных машинах установленных на одном компе.
И странно, что могут 12 часов отработать без вышеописанного сбоя, но потом, подряд глючить после 1-5 минут работы.
Помогите решить.
-
Что делает кавычка в в функции?
TOCLIP ("$path)
Все что в кавычках воспринимается как строка текста. Если там переменная никаких кавычек быть не должно.
-
Что делает кавычка в в функции?
TOCLIP ("$path)
Все что в кавычках воспринимается как строка текста. Если там переменная никаких кавычек быть не должно.
Я ошибся при наборе сообщения на форуме, в скрипте кавычки нет.
И не текст из кавычек выводится в строку браузера, а ! САМА ! инструкция "TOCLIP ($path)".
И периодически всякий мусор оказывается в буфере обмена. Часто предыдущая инфа, несмотря на то, что я по две команды TOCLIP ("") ставлю для его очистки и задержки по 200 мс.
М.б. есть какие то строгие правила для работы с этим буфером ?
То целые страницы в десятки килобайт в буфер без проблем без задержек заходят и выходят, то строка 30 символов не может прописаться, и корректно по Ctrl + C куда нужно вставиться ...
Чтобы не мучатся этим дурацким буфером, может быть как-то можно читать страницу сразу в переменную ? Или в файл, а файл уже парсить кликером ?
-
Порылся в гугле и нашел такйю программу - Wget (https://ru.wikipedia.org/wiki/Wget (https://ru.wikipedia.org/wiki/Wget)).
Как думаете, возможно ли при помощи командной строки управлять из кликера загрузкой страниц в файл ?
А потом кликером из файла уже куда стабильнее будет прочитать данные.
-
Ошибся три раза? :o
Может и в коде где нибудь ошибся в одном из мест?
Функция, ну никак не может сама вставится в буфер, если её туда не загнать.
И буфер обмена, такая себе общесистемная низкоприоритетная штука, может очень быстро отрабатывать, а может пипец подвисать. Какие там 200 мс. От загажености и загруженности системы очень зависит. Я обычно ставлю на одном из компов 200, 300 и до 500 мс.
-
Ошибся три раза? :o
Чтобы повторно не набирать, я её набрал 1 раз и скопировал, т.к. в тексте несколько раз встречается. Отсюда и 3 ошибки.
Курю про Wget качалку файлов, мне кажется при её помощи можно в файл сохранять страницу и потом кликером его читать и парсить. Так надёжнее.
А ТУКЛИП на моём неновом компе, с 4-мя запущенными виртуальными машинами, да ещё и я на основной работаю, возможно и глючит что не успевает нормально отработать.
-
Так понимаю у меня что-то подобное вылазит. То функция TOCLIP отрабатывает на ура, а то вдруг "вспоминает" что-то непонятно откуда и вводит совсем не то что надо...
Вот кусочек кода входа в аккаунт:
print("..вход в акк: теперь вводим логин-пароль для ФБ, логин ", $login_social_net)
waitms(600+rnd(0,150))
TOCLIP("") // очистка буфера
WAITMS(350)
TOCLIP($login_social_net)
WAITMS(150)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAIT(1)
а в итоге например сейчас получил вот такой результат: (см скрин), т.е. не логин вставился, а то что я до этого копировал... и даже буфер не очистился... :(
Как с этим бороться? WAITMS до и после TOCLIP супер-большими ставить? или еще как-то?
-
Тоже кагдато замечал глюки с буфером обмена, скорее всего это изза глюков пк проскакивают обновления буфера. Попробуй в место очистки писать в буфер число, к примеру "0", и пока этот ноль не появится в нем, повторяем запись. Далее пишем то что нам требуется и проверяем не остался ли там ноль.
Навскидку набросал код, ранее до этого не догадывался и не тестил, попробуй.
TOCLIP(0)
WHILE(FROMCLIP () ! 0) //проверяем пока в буфер не запишется ноль
TOCLIP(0)
END_CYC
TOCLIP($login_social_net)
WHILE(FROMCLIP () = 0) //проверяем, пока не запишет то что нужно, не ноль
TOCLIP($login_social_net)
END_CYC
WAITMS(100)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAIT(1)
А можно и пропусить "очистку буфера", к чему она нам.
TOCLIP($login_social_net)
WHILE(FROMCLIP () ! $login_social_net) //проверяем, пока не запишет то что нужно.
TOCLIP($login_social_net)
END_CYC
WAITMS(100)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAIT(1)
Но я чтото припоминаю, что частая запись в буфер обмена может привести к ошибке, возможно исправили в новых версиях. Нужно полюбому подкидывать задержки хоть какие, на всякий случай.
-
Спасибо, протестирую! Пока почитал http://crapware.aidf.org/forum/index.php?topic=2753.0, поставил задержки по несколько секунд (!) - и вроде все заработало...