Author Topic: Глюки в работе TOCLIP ().  (Read 3503 times)

0 Members and 2 Guests are viewing this topic.

putman

  • Активный участник
  • ***
  • Posts: 199
    • View Profile
Глюки в работе TOCLIP ().
« on: July 18, 2019, 06:34:32 PM »
Здравствуйте.

Обнаружил глюк в работе TOCLIP ().
Иногда, при отрабатывании функции TOCLIP ("$path), когда в фокусе адресная строка браузера Гугл Хром, в эту самую строку вставляется не содержимое переменной $path, а сама инструкция TOCLIP ("$path). Смог заметить это только на замедленном прокручивании записи работы скрипта.

Соответственно открывается не требуемая мне анкета, а результат поиска гуглом на запрос - TOCLIP ("$path).
С чем это может быть связано и как бороть кроме отслеживания скриптом этого косяка и повторной вставкой корректного адреса анкеты ?

М.б. это поможет, но скрипты (одинаковые) работают на 4-х виртуальных машинах установленных на одном компе.
И странно, что могут 12 часов отработать без вышеописанного сбоя, но потом, подряд глючить после 1-5 минут работы.

Помогите решить.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Глюки в работе TOCLIP ().
« Reply #1 on: July 18, 2019, 07:06:54 PM »
Что делает кавычка в в функции?
Code: (clickermann) [Select]
TOCLIP ("$path)
Все что в кавычках воспринимается как строка текста. Если там переменная никаких кавычек быть не должно.

putman

  • Активный участник
  • ***
  • Posts: 199
    • View Profile
Re: Глюки в работе TOCLIP ().
« Reply #2 on: July 18, 2019, 07:50:29 PM »
Что делает кавычка в в функции?
Code: (clickermann) [Select]
TOCLIP ("$path)
Все что в кавычках воспринимается как строка текста. Если там переменная никаких кавычек быть не должно.
Я ошибся при наборе сообщения на форуме, в скрипте кавычки нет.
И не текст из кавычек выводится в строку браузера, а ! САМА ! инструкция "TOCLIP ($path)".

И периодически всякий мусор оказывается в буфере обмена. Часто предыдущая инфа, несмотря на то, что я по две команды TOCLIP ("") ставлю для его очистки и задержки по 200 мс.

М.б. есть какие то строгие правила для работы с этим буфером ?
То целые страницы в десятки килобайт в буфер без проблем без задержек заходят и выходят, то строка 30 символов не может прописаться, и корректно по Ctrl + C куда нужно вставиться ...

Чтобы не мучатся этим дурацким буфером, может быть как-то можно читать страницу сразу в переменную ? Или в файл, а файл уже парсить кликером ?
« Last Edit: July 18, 2019, 07:56:31 PM by putman »

putman

  • Активный участник
  • ***
  • Posts: 199
    • View Profile
Re: Глюки в работе TOCLIP ().
« Reply #3 on: July 18, 2019, 09:04:27 PM »
Порылся в гугле и нашел такйю программу - Wget (https://ru.wikipedia.org/wiki/Wget).
Как думаете, возможно ли при помощи командной строки управлять из кликера загрузкой страниц в файл ?
А потом кликером из файла уже куда стабильнее будет прочитать данные.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Глюки в работе TOCLIP ().
« Reply #4 on: July 18, 2019, 09:06:16 PM »
Ошибся три раза?  :o
Может и в коде где нибудь ошибся в одном из мест?
Функция, ну никак не может сама вставится в буфер, если её туда не загнать.
И буфер обмена, такая себе общесистемная низкоприоритетная штука, может очень быстро отрабатывать, а может пипец подвисать. Какие там 200 мс. От загажености и загруженности системы очень зависит. Я обычно ставлю на одном из компов 200, 300 и до 500 мс.


putman

  • Активный участник
  • ***
  • Posts: 199
    • View Profile
Re: Глюки в работе TOCLIP ().
« Reply #5 on: July 18, 2019, 09:17:35 PM »
Ошибся три раза?  :o
Чтобы повторно не набирать, я её набрал 1 раз и скопировал, т.к. в тексте несколько раз встречается. Отсюда и 3 ошибки.

Курю про Wget качалку файлов, мне кажется при её помощи можно в файл сохранять страницу и потом кликером его читать и парсить. Так надёжнее.
А ТУКЛИП на моём неновом компе, с 4-мя запущенными виртуальными машинами, да ещё и я на основной работаю, возможно и глючит что не успевает нормально отработать.

gsukhado

  • Активный участник
  • ***
  • Posts: 104
    • View Profile
Re: Глюки в работе TOCLIP ().
« Reply #6 on: October 28, 2019, 10:52:12 PM »
Так понимаю у меня что-то подобное вылазит. То функция TOCLIP отрабатывает на ура, а то вдруг "вспоминает" что-то непонятно откуда и вводит совсем не то что надо...

Вот кусочек кода входа в аккаунт:
Code: (clickermann) [Select]

        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 супер-большими ставить? или еще как-то?

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Глюки в работе TOCLIP ().
« Reply #7 on: October 28, 2019, 11:23:19 PM »
Тоже кагдато замечал глюки с буфером обмена, скорее всего это изза глюков пк проскакивают обновления буфера. Попробуй в место очистки писать в буфер число, к примеру "0", и пока этот ноль не появится в нем, повторяем запись. Далее пишем то что нам требуется и проверяем не остался ли там ноль.

Навскидку набросал код, ранее до этого не догадывался и не тестил, попробуй.
Code: (clickermann) [Select]
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)

А можно и пропусить "очистку буфера", к чему она нам.

Code: (clickermann) [Select]
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)

Но я чтото припоминаю, что частая запись в буфер обмена может привести к ошибке, возможно исправили в новых версиях. Нужно полюбому подкидывать задержки хоть какие, на всякий случай.

« Last Edit: October 28, 2019, 11:28:12 PM by dramster »

gsukhado

  • Активный участник
  • ***
  • Posts: 104
    • View Profile
Re: Глюки в работе TOCLIP ().
« Reply #8 on: October 29, 2019, 12:18:59 AM »
Спасибо, протестирую! Пока почитал http://crapware.aidf.org/forum/index.php?topic=2753.0, поставил задержки по несколько секунд (!) - и вроде все заработало...