Clickermann ошибка при вызове функции pop

Тема: Ошибка при вызове функции: POP()  (Прочитано 1535 раз)

0 Пользователей и 1 Гость просматривают эту тему.

$HWnd = 0

while($HWnd = 0)
   $HWnd = WNDFIND(«Everve | Социальное продвижение 80-го уровня — Mozilla Firefox»)
   waitms(500)
end_cyc

WNDSIZE ($HWnd, 1150, 800)
waitms(250)
WndPos ($HWnd, 0, 0)
waitms(250)

WNDGETINFO ($HWnd, $var1, $var2, $var3, $var4)
print($var3)
print($var4)

print(«Номер вікна — «, $HWnd)
$HSET ($HWnd,1)

Sait:
wait(10)
GETSCREEN ($HWnd)
print(«Сторінка перегляду сайтів «)
IF_PICTURE_IN (700, 450, 1100,800, «sait.bmp»)
   move ($_return1, $_return2)
   wait(5)
   lclick($_return1, $_return2)
   print(«Перегдял сайту»)
   Wait(3)

      $check = 0
   WHILE($check = 0)
      GETSCREEN  ($HWnd)
      IF_PICTURE_IN (400, 450, 750, 610, «goo.bmp»)
         $check = 1
         move ($_return1, $_return2)
         print («Вихід»)
         LCLICK($_return1, $_return2)
         GOTO(Sait)
         WAITMS(100)

               ELSE
         WAITMS(50)
      END_IF
      END_IF
   END_CYC

Выскакивает такая ошибка при вмполнении сценария:
«Ошибка при вызове функции: POP()»
Подскажите в чем я напортачил.


Записан


Потому что ошибки. Если это весь скрипт, то так скорее всего правильно. Если нет, то прокомментируй свой задуманный алгоритм, поправлю.

  1. while($HWnd = 0)

  2. $HWnd = WNDFIND("Everve | Социальное продвижение 80-го уровня - Mozilla Firefox")

  3. waitms(500)

  4. end_cyc

  5. WNDSIZE ($HWnd, 1150, 800)

  6. waitms(250)

  7. WndPos ($HWnd, 0, 0)

  8. waitms(250)

  9. WNDGETINFO ($HWnd, $var1, $var2, $var3, $var4)

  10. print($var3)

  11. print($var4)

  12. print("Номер вікна - ", $HWnd)

  13. $HSET ($HWnd,1)

  14. wait(10)

  15. WHILE(1)

  16. print("Сторінка перегляду сайтів ")

  17. GETSCREEN  

  18. IF_PICTURE_IN (700, 450, 1100,800, "sait.bmp")

  19. move ($_return1, $_return2)

  20. wait(5)

  21. lclick($_return1, $_return2)

  22. print("Перегдял сайту")

  23. Wait(3)

  24. $check = 0

  25. WHILE($check = 0)

  26. GETSCREEN

  27. IF_PICTURE_IN (400, 450, 750, 610, "goo.bmp")

  28. $check = 1

  29. move ($_return1, $_return2)

  30. print ("Вихід")

  31. LCLICK($_return1, $_return2)

  32. WAITMS(100)          

  33. ELSE

  34. WAITMS(50)

  35. END_IF

  36. END_CYC

  37. END_IF

  38. END_CYC


Записан


Это что такое…?

GETSCREEN  ($HWnd)

А это что…?

$HSET ($HWnd,1)

IF_PICTURE_IN (который ищет goo.bmp) почему-то закрывает END_CYC, а цикл WHILE($check = 0) закрывает END_IF…

  1. $HWnd = WNDFIND("Everve | Социальное продвижение 80-го уровня - Mozilla Firefox") // Ищем окно с заданным заголовком

  2. IF($HWnd) // Если такое окно найдено

  3. WNDGETINFO ($HWnd, $var1, $var2, $var3, $var4) // Получаем о нем информацию

  4. IF(($var3 ! 1150) | ($var4 ! 800)) // Если его размеры не соответствуют нужным

  5. WNDSIZE ($HWnd, 1150, 800) // То задаем ему размеры

  6. else // Иначе (если размеры окна соответствуют нужным)

  7. IF(($var1 ! 0) | ($var2 ! 0)) // Проверяем - если координаты окна не соответствуют нужным

  8. WndPos ($HWnd, 0, 0) // То перемещаем его в нужные координаты

  9. else // Иначе (если координаты окна соответствуют нужным)

  10. print("Номер вікна - ", $HWnd)

  11. // До этого момента можешь удалить все свое и поставить этот скрипт

  12. // Дальше я просто не понимаю, что происходит у тебя...

  13. END_IF

  14. END_IF

  15. END_IF

  16. WAITMS(50)

« Последнее редактирование: Февраль 16, 2020, 09:59:24 pm от Hito »


Записан

Я не ду… Потому и не бу…


Sait:
wait(10)
GETSCREEN ($HWnd)     делаю снимок нужного окна
print(«Сторінка перегляду сайтів «)
IF_PICTURE_IN (700, 450, 1100,800, «sait.bmp»)   ищу нужную кнопку
   move ($_return1, $_return2)
   wait(5)
   lclick($_return1, $_return2)
   print(«Перегдял сайту»)
   Wait(3)
После нажатия открывается новое окно, а в предыдущем запускается таймер до 30с.
Через 30с новое окно закрывается само а в предыдущем  появляется нужная кнопка   «goo.bmp»

   $check = 0
   WHILE($check = 0)
      GETSCREEN  ($HWnd)        делаю повторный снимок чтоб поймать кнопку
      IF_PICTURE_IN (400, 450, 750, 610, «goo.bmp»)
         $check = 1
         move ($_return1, $_return2)
         print («Вихід»)
         LCLICK($_return1, $_return2)
         GOTO(Sait)
WAITMS(100)
Дальше нужно все повторить, пока есть кнопка     «sait.bmp»    
      ELSE
         WAITMS(50)
      END_IF
      END_IF
   END_CYC

« Последнее редактирование: Февраль 16, 2020, 11:40:20 am от kirihor »


Записан


GETSCREEN ($HWnd)     делаю снимок нужного окна

Я может не знаю чего-то…? У нас есть такая функция…? Откуда ты ее взял? Я вот сейчас открыл справку и вот, что в ней написано:

  1. Синтаксис

  2. GETSCREEN ([x1, y1, x2, y2] )

  3. Параметры

  4. x1, y1, x2, y2 - параметры, описывающие область экрана; необязательны

А вот это замечание ни о чем тебе не сказало…?

IF_PICTURE_IN (который ищет goo.bmp) почему-то закрывает END_CYC, а цикл WHILE($check = 0) закрывает END_IF…

Я понимаю, когда человеку нужна помощь, но когда человек полностью игнорит при этом что ему говорят — мне не понятно. Тебе просто нужен готовый скрипт рабочий? Тогда почему бы тебе не написать в биржу труда…?


Записан

Я не ду… Потому и не бу…


Спасибо за помощь. Разобрался


Записан


Перейти к контенту

Макросы формируются на основе команд кликера. Здесь мы постарались собрать все существующие в Кликерман команды. Для более подробного понимания работы команд следует обратиться к их подробному описанию.

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

Скачать Clickermann

Переменные:

  • SETVAR — создание или обновление значения переменной;
  • DELVAR — удаление или обнуление значения переменной;
  • INC — наращивание значения переменной.

Экран:

  • SCREENSHOT — скриншот экрана;
  • GETSCREEN — получение снимка.

Работа с мышью:

  • LDOWN (X,Y) – зажимает левую кнопку мыши;
  • LUP (X,Y) – отпускает левую кнопку;
  • RDOWN (X,Y) – зажимаем правую кнопку мыши;
  • RUP (X,Y) – отпускаем правую кнопку;
  • LCLICK (X,Y) – агрегат LDOWN и LUP;
  • RCLICK (X,Y) – агрегат RDOWN и RUP;
  • DBLCLICK (X,Y) – агрегат двух LCLICK, двойной щелчок ЛКМ;
  • MOVE (X,Y) – перемещает курсор в точку [x,y].

Если указать отрицательное значение (-1,-1), курсор не будет перемещаться. Команда LCLICK (#null, #null) просто заставит мышь  осуществлять щелчки.

Клавиатура:

  • KEYDOWN — зажимает клавишу клавиатуры;
  • KEYUP — отпускает клавишу;
  • KEYPRESS — агрегат KEYDOWN и KEYUP, нажимает клавишу;
  • KEYSTRING — агрегат KEYPRESS для печати строк. Тут используются числовые десятичные коды клавиш на клавиатуре или их псевдонимы.

Время:

  • WAIT – ждать заданное количество секунд до выполнения следующей команды;
  • WAITMS – аналог предыдущей команды, но с миллисекундами.

Лог-файл:

  • LOGSHOW – отобразить/скрыть окно лога;
  • LOGWRITE — вывести в лог текст и переменную;
  • LOGCLEAR — очистить окно лога.

Циклы:

  • FOR – начало цикла и его условие. Такой цикл обычно используют, когда его нужно выполнить определенное количество раз;
  • WHILE – такой цикл используют при соблюдении определенного условия для его выполнения;
  • END_CYC – конец цикла.

Условия:

  • IF – проверка условия, заданного после оператора в скобках;
  • ELSE – команды после этого оператора выполняется, если оператор IF вернул ложь;
  • END_IF – конец оператора IF;
  • IF_PIXEL_IN – поиск точки на экране;
  • IF_PIXEL – анализ точки на экране;
  • IF_NOT_PIXEL – проверка, противоположная предыдущей;
  • IF_PICTURE_IN(1,1, x, y, xxx.jpg) возвращает координаты найденной картинки xxx.jpg в переменные x, y;
  • SWITCH – оператор проверки условий множества значений;
  • END_SWITCH – конец оператора SWITCH.

Метки:

  • xxx: – в данном случае вместо xxx может стоять любой идентификатор метки;
  • GOTO (xxx) – переход к метке xxx.

Подпрограммы:

  • SUB – означает начало подпрограммы;
  • END_SUB – конец подпрограммы;
  • GOSUB – вызов подпрограммы.

Прочее:

  • RND – возвращает случайное число.

Не работают клики (нажатия) по LCLICK

  • Попробуйте вместо lclick написать последовательность ldown; waitms; lup;
  • Попробуйте запустить программу с максимальными правами.
  • Попробуйте отключить защитные программы. 
  • Попробуйте изменить приоритет в настройках ядра на более высокий.
  • Попробуйте купить новый компьютер.

Другое приложение тормозит с включенной программой кликера

  • Попробуйте изменить приоритет в настройках ядра на боле низкий и включить дополнительную задержку.

Проблема с горячими клавишами кликера

  • Выставьте необходимые, примените, перезапустите программу. Возможно после запуска кликера какая то программа переназначила эту комбинацию под себя

Записанный сценарий огромный и состоит из одних move. 

  • Снимите галочку «записывать движения мыши» в настройках интерпретатора перед записью.

Функции по работе с экраном не работают

  • Решение проблемы разобрано здесь.

После запуска clickermann на нее ругается файерволл

  • Программа при запуске пытается проверить обновления. Это можно отключить в настройках.

На clickermann ругается антивирус

  • Антивирусу может не понравится возможность отслеживания мыши и клавиатуры. Такие же механизмы используют шпионы. Впрочем многие другие функции так же могут ему не понравиться. Либо отключайте антивирус на период работы, либо добавьте программу в список доверенных (если такой есть).

При запуске копии программы, перестают работать горячие клавиши

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

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Ситуация 1:

Открыли рабочее окно, запустили кликерменн и выбрали сценарий для рабочего окна.

Запускаете кликерменн через редактор (нажимая треугольник) — звук запуска прошел, а действий программы нет,  выполнение сценария через некоторое время прекращается.

возможные причины и исправления:

Программа кликерменн не определила или не правильно определила рабочее окно. Решение проблемы состоит в том, что необходимо кликнуть ЛКМ на свободном месте в открытом окне и затем запустить программу кликерменн.

2 Программа правильно определила окно, но не смогла найти первый виджет(картинку) на рабочем окне. Эта ситуация возникает, если окно открытого редактора кликерменн закрывает первую рабочую картинку. Решение в перемещении окна редактора в другое место и перезапуск кликерменна. Можно закрыть редактор , кликнуть на свободном месте окна и горячими клавишами запустить кликерменн.

3 Программа кликермен не нашла нужный файл, обычно картинка. Сообщение о сбое находится под всеми активными окнами и сразу обнаружить причину отказа программы не удаётся. Решение — сверните все окна и проверте нет ли подобных сообщений. Создайте нужную для программы картинку(расширение bmp) с помощью любой программы для скриншотов.

Ситуация 2:

Программа запустилась, но выполняется со сбоями и ошибками, так же могут быть признаки ситуации 1

возможные причины и исправления:

1 Главная причина сбоя —  одновременная работа сразу двух сценариев кликерменн. Эта ситуация возникает, когда кликерменн переведен в режим невидимки( происходит это случайно) и запущен кликерменн в панели задач. Решение любых сбоев работающих сценариев надо начинать с проверки кликермена «в режиме невидимки». Закрыть кликермен, комбинацией клавиш Ctrl+Alt+Del перейти в окно сценариев windows и  «запустить редактор задач», в редакторе задач выбрать «Процессы», найти (если есть) пункт clickermann- кликнуть на нем и «завершить процесс».Вернуться в рабочее окно и запустить кликерменн с нужным сценарием.

2 Причина сбоя в выборе режима исполнения, по умолчанию программа кликерменн стоит в режиме бесконечного цикла, что часто приводит к зависанию компа. Поэтому первое что надо сделать после запуска программы — установить режим исполнения — «одиночное  1» .

И так, для исключения сбоев необходимо строго соблюдать правила:

-никогда не использовать кнопку «свернуть окно»

-после запуска — установить режим исполнения- одиночное

Ситуация 3

Программа работает до определенного места и при клике промахивается:

возможные причины и исправления:

1.проблема промаха часто возникает после команды прокрутка колесика мышки, страница не успевает отобразиться, а скрин уже сделан и программа производит клик — страница как бы убегает от курсора мышки перед кликом.Решение проблемы в простой команде задержка 2-5с. после прокрутки.

2.Промах может возникать,если не верно заданы координаты — проверить для конкретного размера окна, если заданы в относительных координатах(0, x_max,y_max), то перед их заданием всегда ставь INT(

Like this post? Please share to your friends:
  • Clientfullbuild0 package sims 4 ошибка
  • Citroen c4 ошибка круиз контроля
  • Clonezilla ошибка при восстановлении образа
  • Cli exe ошибка инициализации платформы net framework
  • Clack ошибка 101