Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: invahak on April 07, 2018, 11:46:27 AM

Title: Сделать скриншот области и ждать замены.
Post by: invahak on April 07, 2018, 11:46:27 AM
Здравствуйте, начинаю копаться с clickermann и уже понимаю суть и что да как, но вот у меня появилась задача.

Мне нужно чтобы при нажатие кнопки "капслок" делался скрин определённой области назовём этот скрин "Оригинал", далее каждые 100 мс надо делать скриншоты этой же области и сверять его с оригиналом, если скрин отличается от оригинала, то-есть картинка сменилась, то например кликать мышью, возможны ли такие махинации в этой проге? и кто может накинуть примерчиков, чтоб я знал от куда начать работу. Спасибо!
Title: Re: Сделать скриншот области и ждать замены.
Post by: open_78 on April 07, 2018, 01:36:39 PM
Вот одна из таких "махинаций".
Code: (clickermann) [Select]
WHILE(ISKEYDOWN(#CAPSLOCK)=0)  // ждем нажатия
   WAITMS(50)
END_CYC

GETSCREEN(100,200,110,210)
$origin=PXLCRC(100,200,110,210)  // сохраняем оригинал

$check=$origin
WHILE($check=$origin)  //  сверяем снимок с оригиналом
   GETSCREEN(100,200,110,210)
   $check=PXLCRC(100,200,110,210)
   WAITMS(100)
END_CYC

LCLICK(105,205)  //  клик мышью

HALT
Title: Re: Сделать скриншот области и ждать замены.
Post by: Oraven on April 07, 2018, 01:37:29 PM
Code: (clickermann) [Select]
IF(ISKEYDOWN(#CAPSLOCK)=1)
   WHILE(ISKEYDOWN(#CAPSLOCK)=1)
      WAITMS(5)
   END_CYC
   GETSCREEN
   $hash1 = PXLCRC(10,10, 100,100) // область анализа
   $hash2 = $hash1
   WHILE($hash2 = $hash1)
      WAITMS(100)
      GETSCREEN
      $hash1 = PXLCRC(10,10, 100,100) // область анализа
   END_CYC
   LCLICK(10,10) // клик
   WAITMS(100)
ELSE
   WAITMS(20)
END_IF
Title: Re: Сделать скриншот области и ждать замены.
Post by: silver073000 on May 12, 2018, 01:48:32 PM
А если мне надо дождаться изменения картинки размером 100х6, но при этом чтобы кликер ждал не более 15 секунд, если изменений нет. Изменения могут быть и на первой же секунде, а могут быть и на десятой, например. Вот хочу знать, возможно ли такое на версии 4.7 и как всё это правильно оформить?
Title: Re: Сделать скриншот области и ждать замены.
Post by: Vint on May 12, 2018, 10:29:08 PM
А в чём разница между 100х6 или 90х90?
Лезешь в шаблоны -- работа с экраном ожидание картинки с таймером. (или кау-то так)
Из него выбрасываешь поиск картинки и вставляешь подсчёт хэша из постов выше.
Title: Re: Сделать скриншот области и ждать замены.
Post by: silver073000 on May 12, 2018, 11:10:50 PM
Да можно и 90х90, но в моём случае идёт участок шкалы, которая меняет цвет при заполнении или убывании. Собственно, 90х90 не сыграет значимой роли. А так картинка поменьше чуть :)
Title: Re: Сделать скриншот области и ждать замены.
Post by: silver073000 on May 13, 2018, 12:06:49 AM
Одного пикселя мало. Я тоже думал об этом.
Есть вот такая шкала. Нет смысла проверять один пиксель. Да, сократить до 100х1 можно, но брать один какой-то пиксель смысла нет в моём случае.
Title: Re: Сделать скриншот области и ждать замены.
Post by: Oraven on May 13, 2018, 07:48:11 AM
Одного пикселя мало. Я тоже думал об этом.
Есть вот такая шкала. Нет смысла проверять один пиксель. Да, сократить до 100х1 можно, но брать один какой-то пиксель смысла нет в моём случае.

Почему мало? В определенной точке шкалы анализируется пиксел функцией PXL(10,10). Если коричневый цвет значит полоска ниже заданного уровня. В таких случаях еще хорошо использовать цветокоррекцию чтобы выровнить цвет полоски.
Title: Re: Сделать скриншот области и ждать замены.
Post by: silver073000 on May 13, 2018, 12:47:20 PM
Та коричневая полоса может заполняться или убывать всего на несколько пикселей, потому и задумался именно о проверке, изменилась ли она или нет. Она может быть почти полностью заполнена, а может и быть в самом начале.
Заданного уровня, как такового, нет. Нет цели, чтобы она заполнилась полностью и коричневый цвет сменился на другой. Цель моей задумки состоит в том, чтобы кликер дождался смещения шкалы пусть даже и на один пиксель в любую сторону и выполнил те или иные действия.
Всем спасибо за помощь :) Всё работает должным образом :)