Author Topic: Прошу помочь  (Read 4590 times)

0 Members and 1 Guest are viewing this topic.

nikol124

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Прошу помочь
« on: January 01, 2018, 05:05:03 PM »
Поздравляю Всех с Новым годом! Здоровья Всем и творческих успехов.  О себе, пенсионер, новичок, любитель. На форуме несколько месяцев.  На Ваши разработки  скриптов  смотришь  дух захватывает от возможностей  созданных программ.  В институте не учился. За  пятьдесят лет после  школы  из математики помню  только хорошо таблицу умножения. Долго собирался  обратиться  к Вам за помощью. Месяца 3 пытаюсь написать скрипт. Перед  этим всё перепробовал. И статьи для новичков и в общих вопросах. Кое - что создал, но концовка никак  не получается. Нашёл программу в интернете, по отгадыванию  капчи  на freebitco.in ,в iMacros. Прога, красиво написана, но 100% не отгадывает. Сразу закрывает мазилу  и  выходит на ожидание по этой последней строке (iimPlayCode (`TAB CLOSE`); iimPlayCode (`WAIT SECONDS=3600`);  }). Я из любопытства и желания немножко заработать. Решил чуть-чуть усовершенствовать. Не саму iMacros программу. А создать оболочку вокруг неё. Отгадывает, закрывает мазилу  при  появлении новых цветов (зелёный, красный, чёрный и синий. При положительном  результате. Не отгадывает капчу, программа запускает  iMacros   с начало. До основного iMacros  скрипта всё работает нормально. В  конце удалил последнею строку ( iimPlayCode (`TAB CLOSE)  и по распознаванию цвета не получается. После  я догадался, что скрипт параллельно работают с  iMacros. Я думаю после запуска iMacros, нужно остановить скрипт Clickermann. Не знаю как это сделать.  И время подбирал задержки, и паузу пытался установить. Чтобы на появление цветов закрывать мазилу. Цвета держаться несколько секунд. На отрицательный результат iMacros, запускается нормально, т.к. установлено 3 цикла. На положительный нет.C  уважением, Вячеслав.

Code: (clickermann) [Select]
waitms(1200 + $S_CORR) // начало

lDown(1235,267)         // выделение ярлыка мазилы
waitms(1200 + $S_CORR)
DBLCLICK(1235,267)      // запуск ярлыка Мазилы

waitms(6200 + $S_CORR)//   появляется окно мазилы с окном iMacros
LCLICK(139,225)          //  1 наж._ выделение _iim
waitms(500 + $S_CORR)
LDOWN(139,200)          // 2 наж._выделение _iim (иногда меняется место, из-за рекламы, поэтому нужен повтор)

waitms(900 + $S_CORR)
DBLCLICK(139,469)       // 1 нажатие_ воспроизвести
waitms(500 + $S_CORR)
DBLCLICK(139,416)  //2 нажатие_ воспроизвести (иногда меняется место,из-за рекламы,поэтому нужен повтор)

waitms(1200 + $S_CORR)//появляется окно циклов
RDOWN(725,328)       // в окне наж. чтобы появ.курсор
waitms(250 + $S_CORR)
RUP(725,328)

waitms(850 + $S_CORR)
LDOWN(790,416)          //  в окно циклов вставить_ "3 "
waitms(250 + $S_CORR)
LUP(790,416)

waitms(1200 + $S_CORR)
LDOWN(761,384)          //   запуск окна циклов_"3 "
waitms(250 + $S_CORR)
LUP(761,384)

END_IF ? //  временно остановить надо?
END_IF  ?

// начало работы  iMacros

//iimPlayCode (`TAB CLOSE`);  _ удалил
//iimPlayCode (`WAIT SECONDS=3600`); ? _оставил в программе, для конца операций , чтобы как бы вышел из iMacros
//  } - оставил,по этой скобе в строке появляется окно циклов при нажати ст. _ 1нажатие_ воспроизвести или ст.2нажатие_ воспроизвести

 // запустить скрипт в Clickermann?
 
 ....// установить прокрутку страницы, в середине и зафиксироывать как-то, чтобы появившиеся цвета находились в пределах окна   

GETSCREEN  ? 

// выбран жел,синий 3389695,7291909 ( ещё появляется зелёный и чёрный) все цвета появляются на несколько секунд.поэтому при появлении зелёного или чёрного сработала пауза или стоп. Когда в ручрную ставишь на паузу. мазила выключается. А так словно цвета не чувствует. Вроде пиксели меняют цвет.Читал в форуме, что надо с цветокоррекцией что-то делать? 
IF_PIXEL_IN(462,180,1072,443,3389695,7291909)
LDOWN(1343,14)  // закрыть мазилу
waitms(1500)
LUP(1343,14) // закрыть мазилу
waitms(150)   

END_IF ?
END_IF ?

WAIT(3600)
...//здесь нужно поставить переход на запуск  строки "начало" и запустить её.

Cleoss

  • Активный участник
  • ***
  • Posts: 260
  • Автоматизируй это!
    • View Profile
Re: Прошу помочь
« Reply #1 on: January 01, 2018, 08:51:54 PM »
Так вы к нам из другого лагеря?) Спс за поздравлялки, взаимно))

Не совсем понял, что вам нужно (отрицательный цикл?), но по-моему вы ищете оператор элс:

Code: (javascript) [Select]
if_pixel_in(координаты, искомый_цвет)
   тут пишем команды, которые будут делаться, если цвет найдётся
else
   здесь будет код, который будет выполняться, если цвет НЕ найден
end_if

И ещё: IF.. и END_IF это парные команды, если есть одна -- должна быть и другая, соответственно закрывающая (энд). Если открывающих в коде три, то и закрывающих должны быть столько же. Ещё используйте в редакторе кнопку автотабуляции, магическую палочку (5-ая справа) для проверки правильности вложенности своего кода (если код сильно перекашивается по диагонали, то не хватает парных команд).

nikol124

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Re: Прошу помочь
« Reply #2 on: January 01, 2018, 11:31:27 PM »
Спасибо что откликнулись.  Я  из  лагеря  Вашего, не перебежчик . Только из века другого. По положительному  результату  должен  отключаться  мазила. И это мне нужно. В отрицательном всё работает. Когда в ручную останавливаю по паузе,  всё нормально, отключается. Но когда в запуске  нет. Отгадал, но код цвета не видит, нужных цветов.  Как будто их нет.  Вот я правильно остановил скрипт в строке 32,33? Такое  ощущение, что iMaros  не даёт  правильно  работать. Поэтому я и написал об остановке в строке 32. При запуске iMacros, программа по временным задержкам  продолжает работать. И когда  подходит момент сравнивать по цвету, она проскакивает на ожидание 3600. А может  быть, я остановил в ст.32,ст.33, скрипт?  Подошло время определять цвет, он не запустился. В ручном  же  всё срабатывает, когда я в паузе, запускаю  Clickermann  с фрагментом  скрипта с ст. 48  по  ст. 55. А насчёт лагеря, я  не понял.  Возможно Вы имеете в виду iMacros. Я не программист и что за  язык, мне не понятен. Я пытаюсь изучить Clickermann. Я новичок и только пытаюсь чуть- чуть разобраться и изучить. Поэтому  я написал, что меня  восхищают  от созданных форумом  скрипты.  Вот наступает такой момент, когда знаний не хватает, словно  упёрся в стену. Вот и попросил помощи, у форума. Не зная значений  ваших профессиональных выражений.  Я  Вас не всегда понимаю, как и Вы плохо понимаете меня. Одним словом  я ученик, который  на старости лет решил сесть за парту. Магическую палочку  я применяю.

Code: (clickermann) [Select]

GETSCREEN

IF_PIXEL_IN(440,354,1114,744,3705144,592136,3637641) // зел крас  жел
waitms(4000) //  отключает мазилу
   LDOWN(1343,14)   
   waitms(150)  // отключает мазилу
   LUP(1343,14)
   
END_IF
END_IF
 // ещё раз попробовал в ручном,  по паузе, сегодня по этому отрезку отключить мозилу. Всё получилось 

Cleoss

  • Активный участник
  • ***
  • Posts: 260
  • Автоматизируй это!
    • View Profile
Re: Прошу помочь
« Reply #3 on: January 02, 2018, 06:00:23 AM »
Ну это ж мне не совсем ведомо, где именно нужно паузу ставить. Вы ставите её там, где хотите. Могу даже вам посоветовать на стадии тестирования сделать побольше задержки между всеми операциями, чтоб знать точно, где срабатывает, а где -- нет. Можно даже для всех задержек сделать одну переменную и оставить её в заголовке, оттуда регулируя скорость всего скрипта.

Code: (clickermann) [Select]
$zaderzhka=5000 // Можно поставить и 10 тысяч мс, тогда пауза между операциями будет по 10 сек
.. тут идут операции ...
waitms($zaderzhka) // делаем задержку, чтоб замедлить скрипт, не спешить, а разобраться
.. опять операции ..
waitms($zaderzhka) // ещё задержка, а во время неё можно проверять правильность работы скрипта и делать комментарии по отклонениям
.. и т. д.

А когда со всем разберётесь, то паузы можно маленькие поставить, напр. 200-300 мс. (около трети секунды)

Должен "отключаться  мазила" это как? Браузер должен открываться или сворачиваться или просто вкладку закрыть? Слишком пространное описание. Ещё я так понял вы говорите у вас гдет не срабатывает. Но вот зачем у вас там стоит два энд_ифа? Я же вам уже писал про принцип парности иф+энд, но вы пропустили это мимо ушей. Может, из-за лишнего и не срабатывает. А вообще для хорошего составления скриптов в Кликермане нужно б изучить его файл справки, там не так много команда (с сотню, но понадобятся вам далеко не все, а только 10--20) и займёт это пару часов, но без этого никак. Нужно хорошо знать список команд (какие именно есть) и для начала  хотя б примерно для чего каждая, чтоб вы не плавали в них, тогда у нас может быть более предметный разговор. Почитайте справки не спеша, вдумчиво, перечитайте при надобности, а что не сможете совсем понят, либо спросите тут, либо почитайте форум на эту тему (тут оч много написано на разные темы и алгоритмы за былые годы).

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

nikol124

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Re: Прошу помочь
« Reply #4 on: January 02, 2018, 04:12:04 PM »
К сожалению мы разговариваем на разных  языках. Вы меня не понимаете. Я, Вас. Если бы Вы внимательно почитали начало помощи. То увидели глазами, а не ушами что 1 по 30 строку, написано, работает нормально. Это небольшая часть скрипта с которым провозился  больше двух месяцев. Начальную часть я не стал выкладывать. Она тоже работает без проблем. И за это время и файл  справки  в Clickermann  просмотрел. И форум  просмотре весь. Про задержки написано я пробовал по разному. Изменял время задержки. Не получилось. Пример, два транспорта двигаются с разной  ск. Один на поверхности другой под  ним в туннели. Подобрать время задержки чтобы они встретились на выходе. Ск. транспорта в туннели не известна. По end_if. Там же  в начале написано. Третья строка с низу. Что нужно остановить скрипт и как это сделать я не знаю. А то парно или не парно. End_if  тоже парно по отношению друг друга и End_ if, End_if тоже парно. Просто надо или  в коде показать. Или просто написать, в одну строку. Я биографию в начале написал к делу переходить надо. Браузер  закрывается в верхнем правом  углу, красная  кнопка с крестом. С задержками, что- тоне серьёзно. Потому что скорость  iMacros  не известна. Общее время работы от 70 секунд  до 105сек. После  остановки  iMacros  выскакивают постепенно три цвета. Вот по ним и надо. Вопрос  по End_if_ Clickermann  останавливается полностью. If_pixel_in включить по цвету его. Или надо авторуном запускать. Я подготовил три скриншота. По поводу  IF_Picture_IN присматриваюсь давно. На форуме много видел но не знаю как работает.

Code: (clickermann) [Select]
End_if // так?
« Last Edit: January 02, 2018, 04:28:50 PM by nikol124 »

nikol124

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
« Last Edit: January 02, 2018, 04:26:58 PM by nikol124 »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Прошу помочь
« Reply #6 on: January 02, 2018, 04:49:56 PM »
Команда LDOWN зажимает левую кнопку мыши, очевидно что после должна быть команда LUP отпускающая кнопку.
У тебя этого что то не наблюдается
Code: (clickermann) [Select]
LDOWN(139,200)          // 2 наж._выделение _iim (иногда меняется место, из-за рекламы, поэтому нужен повтор)
waitms(900)

DBLCLICK(139,469)       // 1 нажатие_ воспроизвести
waitms(500)

За обычный клик отвечает команда LCLICK. Она совмещает в себе зажатие и отпускание.
END_IF просто так писать не надо, это окончания условий. У каждого условия должно быть свое окончание END_IF.

Code: (clickermann) [Select]
// начало

DBLCLICK(1235,267)      // запуск ярлыка Мазилы
waitms(6200)//   появляется окно мазилы с окном iMacros

LCLICK(139,225)          //  1 наж._ выделение _iim
waitms(500)

LCLICK(139,200)          // 2 наж._выделение _iim (иногда меняется место, из-за рекламы, поэтому нужен повтор)
waitms(900)

DBLCLICK(139,469)       // 1 нажатие_ воспроизвести
waitms(500)

DBLCLICK(139,416)  //2 нажатие_ воспроизвести (иногда меняется место,из-за рекламы,поэтому нужен повтор)
waitms(1200)//появляется окно циклов

RDOWN(725,328)       // в окне наж. чтобы появ.курсор
waitms(250)
RUP(725,328)
waitms(850)

LDOWN(790,416)          //  в окно циклов вставить_ "3 "
waitms(250)
LUP(790,416)
waitms(1200)

LDOWN(761,384)          //   запуск окна циклов_"3 "
waitms(250)
LUP(761,384)
waitms(250)

Чтобы остановить выполнение скрипта нужно написать цикл ожидания
Например вот такой цикл будет крутить код внутри себя пока заданные цвета не появятся в зоне поиска.
Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PIXEL_IN(462,180,1072,443,3389695,7291909)
      $check = 1 // Если найдено меняем значение переменной, выходим из цикла
      LDOWN(1343,14)  // закрыть мазилу
      waitms(1500)
      LUP(1343,14) // закрыть мазилу
      waitms(150)
   ELSE
      WAITMS(50)
   END_IF
END_CYC


Выполнение в кликере, кстати, идет по кругу.


i7330

  • Зашел в гости
  • *
  • Posts: 19
    • View Profile
Re: Прошу помочь
« Reply #7 on: January 02, 2018, 05:56:01 PM »
Так вы к нам из другого лагеря?)
Простите, что вмешиваюсь. Пользуясь случаем хочу уточнить на будущее (я новичок). Это (из другого лагеря) здесь (в диалогах на форуме) наказуемо, недопустимо, не приветствуется? Обсуждение к примеру комбайнов (связок): Clickermann + др. инструмент(-ы), - скажем:
- Clickermann + cmd
- Clickermann + vbs
- Clickermann + js, - так же приходилось ранее использовать афт*ит и др. COM-dll. Будет нехорошо в дальнейшем писать (упоминать) о подобных связках?


Начальную часть я не стал выкладывать
а) Кнопка формы ответа позволяет добавить файл целиком:




б) в целом тема непонятно изложена; если возможно, то желаемый алгоритм действий (последовательность действий Clickermann-нa) своими словами? что есть на экране, в какой последовательности и как на это следует реагировать Clickermann-ну
« Last Edit: January 02, 2018, 06:30:17 PM by i7330 »

nikol124

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Re: Прошу помочь
« Reply #8 on: January 02, 2018, 06:40:35 PM »
спасибо, сейчас попробую, это то что нужно. Всё правильно должен  LUP.  Я её не поставил, она же отжатие.  Посчитал что в данный момент строка 10 зажата, при выполнение операцией строки 12, она и будет является  отжатием. Разве так нельзя делать?  Вопрос по вставить изображение. Нужно было три  фотокарточки, вставить. Две установил одну нет. Есть ограничения по количеству?

 
« Last Edit: January 02, 2018, 10:38:43 PM by nikol124 »

nikol124

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Re: Прошу помочь
« Reply #9 on: January 03, 2018, 01:38:07 PM »
Oraven, по 1 всё нормально, переход ит по цветам. Мазила закрывается, это положительный результат. Всё  отгадано. По 0,не совсем так. Он выходит в начало строки 1, этого отрезка, но не запускается. В условиях  задаю 3 цикла. Если первый раз не отгадал, то переходишь  на строку 1 и запуск с начало.  За три цикла, или отгадал и по цвету закрыл мазилу , или если не отгадал после третьего цикла, закрыл мазилу. И в ожидание на 3600 секунд. После выхода времени надо отсюда перейти  на первую строку всего скрипта. Это конец, маленький отрезок. Из скрипта, с которым  я вожусь уже с октября. Параллельно занести  один результат в log : -время – 1, если положительный. Или если отрицательный, после 3 циклов не отгадал, -время- 0. Сейчас вроде разобрался , что пытался вдолбить Cleoss   в мою голову, насчёт  END_IF. Если две строки начинаются  по условиям с IF, то END_IF два. Если больше, то на количество строк. А у меня одна строка , два END_IF. Правильно думаю?

Code: (clickermann) [Select]
waitms(6200 + $S_CORR)
LCLICK(139,225)          //  1  выделение iim
waitms(500 + $S_CORR)
LDOWN(139,200)          // 2 выделение iim
waitms(900 + $S_CORR)
DBLCLICK(139,469)       // 1 нажатие воспроизвести
waitms(500 + $S_CORR)
DBLCLICK(139,416)  //2 нажатие воспр _ долж Соединён

waitms(1200 + $S_CORR)
RDOWN(725,328)         // окно копировать
waitms(250 + $S_CORR)
RUP(725,328)

waitms(850 + $S_CORR)
LDOWN(790,416)          //  окно  вставить 3
waitms(250 + $S_CORR)
LUP(790,416)

waitms(1200 + $S_CORR)
LDOWN(761,384)          //  окно запуск 3
waitms(250 + $S_CORR)
LUP(761,384)

$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PIXEL_IN(462,180,1072,443,3389695,7291909)
      $check = 1 // Если найдено меняем значение переменной, выходим из цикла
      LDOWN(1343,14)  // закрыть мазилу
      waitms(1500)
      LUP(1343,14) // закрыть мазилу
      waitms(150)
   ELSE
      WAITMS(50)
   END_IF
END_CYC

wait(3600)

паша

  • Зашел в гости
  • *
  • Posts: 1
    • View Profile
Re: Прошу помочь
« Reply #10 on: September 28, 2021, 04:02:46 PM »
Добрый день.
помогите написать сценарий при появлении цвета действий не требуется

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Прошу помочь
« Reply #11 on: September 28, 2021, 04:48:24 PM »
Пустой сценарий в точности выполняет то, что требуется.