Author Topic: Последовательное нажатие ctrl+v, один потом второй раз.  (Read 4186 times)

0 Members and 1 Guest are viewing this topic.

fidain

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
 Доброго дня.
 Нужна следующая последовательность действий:
Найти текст (цифры) на мониторе,
кликнуть по найденному
выполнить поиск двух слов, если слова есть, то возвращаемся в начало
если нет, то ищем определенные пиксели, если нашли кликаем затем enter жмём и halt
если нет, то все сначала начинаем.
 По порядку

Code: (clickermann) [Select]
KEYDOWN(#CTRL)
waitms(100)
KEYPRESS(70)
waitms(100)
KEYUP (#CTRL)
waitms(100)
KEYSTRING("1837")
WAITMS(100)
IF_PIXEL_IN(502,440, 809, 796, 3315455)
   LCLICK($_return1, $_return2)
   end_if
WAITMS(100)// Нажали контрол + в, щелкаем мышкой по найденному

#LCLICK(1407,78)// закрываем окно поиска в браузере
WAITMS(1000) 
KEYDOwN(#CTRL)
waitms(100)
KEYPRESS(70)
waitms(100)
KEYUP(#CTRL)
waitms(100)
KEYSTRING("с пряником")
WAITMS(100)
GETSCREEN
IF_PIXEL_IN(1023,367, 1434, 662, 3315455)// Мы наши надпись
   End_if

На эту надпись нажать нельзя. Как программе понять, что надпись есть и ввести переменную (или как-то иначе, и на ее основании делать дальнейшие действия (вернуться в начало)?

Когда два раза подряд нажимаю контрол + в (точнее это должна делать программа), получается сделать только 1 раз. Далее он снова повторяет первый поиск.

 Возможно получилось сумбурно, если поможете буду благодарен.
 П.С. ОГРОМНОЕ СПАСИБО создателю проги.

Doda

  • Guest
  halt  жать не стоит, это прекращение работы кликера

если нет, то ищем определенные пиксели, если нашли кликаем затем enter жмём и halt
если нет, то все сначала начинаем.//так мы выходим или делаем заново?


Code: (clickermann) [Select]
sub(poisk,$tekst) //подпрограмма
   WAITMS(1000)
   KEYDOWN(#CTRL)
   waitms(100)
   KEYPRESS(70)
   waitms(100)
   KEYUP (#CTRL)
   waitms(100)
   KEYSTRING($tekst)
   WAITMS(100)
end_sub

skip:
poisk("1837")  //ищем  1837
getscreen
IF_PIXEL_IN(502,440, 809, 796, 3315455)//нашли оранжевый ответ
   LCLICK($_return1+15, $_return2+5) //кликаем по найденной, в центр
end_if

LCLICK(1407,78)// закрыли
poisk(" с пряником") //ищем пряник
GETSCREEN
IF_PIXEL_IN(1023,367, 1434, 662, 3315455)//
   goto(skip)  //если слова есть, то возвращаемся в начало
   
else // если не нашли то ищем пиксель
   
   IF_PIXEL_IN(0,0, $_xmax,$_ymax, 255)//ищем красный
      LCLICK($_return1, $_return2)  //нашли и кликнули
      WAITMS(100)
      KEYPRESS(#ENTER)  //жмем ентер
      halt//жмем хальт как и просил
   END_IF
   
End_if




попробуй такой код.у меня все отлично ищется на странице, без повторения поиска
« Last Edit: November 01, 2015, 01:29:37 AM by Doda »

fidain

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
Code: (clickermann) [Select]
skip:
poisk("1837")  //ищем  1837
getscreen
IF_PIXEL_IN(502,440, 809, 796, 3315455)//нашли оранжевый ответ
   LCLICK($_return1+15, $_return2+5) //кликаем по найденной, в центр
end_if
Что значит skip? Что за оператор?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Что значит skip? Что за оператор?

Это метка на которую осуществляется переход через goto(skip)

fidain

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
 Новый вопрос возник.
 Находим картинку на экране (есть довольно большой кусок экрана для анализа). Далее нужно проверить наличие картинки в маленькой прямоугольной области (там находится найденная картинка и там же нужно проверить на наличие другой картинки).
 Проще говоря, имеем выражение

привет
Вася
как твои
как братан
как ура ура

Мы ищем слово "братан". Мы его нашли. Теперь нужно проверить есть ли рядом со словом "братан" слово "как". Оно есть в 3 трех местах.  Нужно искать именно рядом с найденным словом. Как это реализовать.
 Надеюсь правильно описал)))
П.С. Спасибо огромное создателю сайта. На днях буду делать пожертвование. Труд должен быть отблагодарен.

fidain

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
И еще вопрос.
Поиске картинки происходит следующее. Подобных картинок (слов) - несколько. И он кликает только по одной. Пока она не исчезнет. Вопрос как сделать так, чтобы кликала 1-3 раза по одной, а потом по другой и т.д.

Луций

  • Активный участник
  • ***
  • Posts: 248
  • чат в телеге: https://t.me/klickermannchat
    • View Profile
    • Пишу скрипты на заказ:
ограничивать область поиска = второй поиск должен начинаться с координат предыдущего результата +1 пиксель

fidain

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
ограничивать область поиска = второй поиск должен начинаться с координат предыдущего результата +1 пиксель
Как бы это реализовать. Вот в чем вопрос)) слаб в прграмировании только изучаю))

fidain

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
С последним вопросом разобрался. Вопрос в следующем. На экране есть несколько одинаковых картинок. Необходимо что бы он кликнул на одинаковые картинки поочередно. Т.е. картинки идут снизу вверх.  Сначала он кликает на картинку сверху и кликает до тех пор пока не выполниться условие. А надо чтобы он 1-2 раза кликнул на картинку первую, затем на вторую и так далее.
 При помощи чего можно это реализовать? Заранее благодарю.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Функция SCANPICTURE тебе в помощь. Советую заглянуть в шаблоны.

fidain

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
Спасибо) Не совсем разобрался в шаблоне. Подскажите, пожалуйста, где почитать подробнее?

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Очевидно же что в справке!
С неё нужно было и начинать.


fidain

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
Code: [Select]
GETSCREEN
SCANPICTURE($pozivnoy, 0,438, 184,853, "2378.bmp") #ищем картинку 2378
$y = arrpop($pozivnoy)
$x = arrpop($pozivnoy)
 WAITMS(100)
GETSCREEN

IF_PICTURE_IN ($x,$y, $x+180,$y+20, "123.bmp")
   LCLICK($_return1, $_return2)
GETSCREEN
IF_PIXEL_IN(1005,395, 1439,827, 39168, 39423, 10040268)
   LCLICK($_return1, $_return2)
   WAITMS(100)
END_IF
END_IF
WAITMS(500)

Господа, я Вам, наверно, уже порядком надоел) Но, все-таки, просьба проверить код.
 - найти картинку 2378, далее проверяем есть ли рядом картинка 123. Если есть то кликаем на нее.
Далее в других координатах ищем пиксели и если находим то кликаем на них.

К чему спрашиваю? Не всегда срабатывает. Точнее крайне редко срабатывает. Логику и ошибку найти не могу.

fidain

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
Разобрался в чем дело. Оказалось, что картинка 2378 бывает на белом фоне (чисто белый), а бывает на чуть чуть сером. Убрал 100 попадание в картинке на 95 и вуаля)
Всем спасибо.

fidain

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
Рано порадовался. Теперь он  вообще все подряд тыкает а не 2378....
 help