Захват событий
Рассмотрим механизм записи событий в скрипт. Все необходимые элементы управления для записи событий находятся в правом меню в пунктеЗахват событий. Элементы разделены на отдельные группы. На момент написания все элементы разделены на такие группы:
- Клавиатура
- Мышь (основные)
- Мышь (кнопки, колесико)
- Мышь (клик)
- Комбинированный
Для захвата события, выберите место в редакторе, куда вы хотите вставить код, выберите нужный метод захвата, (используйте контрольную клавишу, если этого требует метод захвата), произведите нужные действия, выключите захват событий.
Захват клавиатуры
Особенность захвата клавиатуры в том, что при его включении отключается возможность редактировать скрипт с
клавиатуры. Если его включить, то в вывод будут дублироваться клавиши. Так при наборе hello
world с выбранным методом для вставки имен клавиш Захват событий > Клавиатура > key
name в выводе будет H E L O SPACE W O R L D вместо hH eE lL lL oO SPACE wW
oO rR lL dD.
Отдельно нужно выделить метод для вставки имен клавиш. Если вы забыли как называется нужная клавиша, он позволит
не искать ее документации, а быстро вставить нужное название.
Захват мыши
Особенность захвата мыши в использовании контрольной клавиши. По умолчанию контрольная клавиша
CONTROL, ее можно изменить в настройках.
Для захвата мыши необходимо выбрать нужный метод, потом зажать контрольную клавишу и произвести необходимые
действия, отпустить контрольную клавишу.
Способ захвата с использованием контрольной клавиши выбран для того, чтобы было проще контролировать те события,
которые должны попасть в вывод.
Учтите, что во многих приложениях контрольная клавиша CONTROL будет работать некорректно, так
как часто CONTROL в сочетании с кнопкой мыши уже зарезервирован для других действий. Потому,
для каждого приложения вам придется подбирать свою контрольную клавишу, которая не будет конфликтовать с
программой.
Изменить контрольную клавишу можно в настроках.
Захват клавиатура + мышь
Это самый обширный инструмент для записи действий пользователя. Он способен записать события клавиатуры и мыши,
обработать их надлежащим образом и сохранить это все в компактное текстовое представление.
Для активации комбинированной записи необходимо включить соответствующий элемент управления и нажать контрольную
клавишу.
Запись событий начинается после отпускания контрольной клавиши, а прекращается по ее нажатию. Это позволяет
избежать попадания событий контрольной клавиши в список записанных событий.
В качестве контрольной клавиши
возможно установить комбинацию клавиш, но стоит учитывать, что в таком случае в список записанных событий
попадут события нажатия и отпускания из списка контрольных клавиш.
Для управления записью событий существую несколько опций:
- Клавиши клавиатуры - Включить запись клавиатуры;
- Кнопки мыши - включить запись кнопок мыши;
- Колесико мыши - включить запись колесика мыши;
- Абсолютные координаты. Выбрав запись по абсолютным координатам, в результат будут добавляться события для перемещения курсора в указанные координаты, аналогично как для метода mouse.moveTo(x,y);
- Относительные координаты. Выбрав запись относительных координат в результат будут добавлены события для перемещения курсора относительно предыдущего события, аналогично как для метода mouse.move(dx,dy);
- Задержки. - включить в результат задержки между событиями;
- Меню выбора кодировки (unicode, base64, base64-zip) - выбор формата в котором будет представлена результирующая строка;
- "фиксированная частота" - включить запись с указанием фиксированной частоты записи событий передвижения мыши;
- "минимальное расстояние" - включить запись с указанием минимального расстояния между событиями передвижения мыши;
- "точки остановки" - включить запись с определением точек остановок.
Меню выбора кодировки пердлагает на выбор три варианта
- unicode - записанные события будут представлены в виде символов юникода. Этот вариант самый компактный, так как на каждый числовой параметр приходится только по одному символу. При использовании символов юникода может быть ситуация, когда после копирования его в другое приложения, он может быть поврежден, из-за разлычных преобразований кодировок.
- base64 - записаные события будут представлены в виде символов использующих таблицу base64. Рекомендуется использовать данную опцию. Код в таком представлении можно без опасения копировать и передавать другим пользователям.
- base64-zip - используется аналогичная запись как и в base64, но так же проводится сжатие строки с целью экономии места. После сжатия редактирование строки невозможно. Изменение одного символа повлечет к невозможности декодировая строки обратно
Подробнее остановимся на том, как работают последние три опции. Эти опции созданы для уменьшения объема кода.
Если они выключены, то результат будет максимально приближен к действиям пользователя.
Эти опции никоим образом не влияют на все события клавиатуры, колесика и клавиш мыши, а только отсеивают
избыточные события перемещения мыши.
Опция фиксированная частота указывает максимальную частоту записи событий. Стандартно, курсор
может изменять свое положения около 60-120 раз в секунду, в зависимости от системы, что означает, что в
результат каждую секунду будут добавлены 60-120 событий перемещения мыши. Указав значение равное 30, к примеру,
их количество можно сократить в 4 раза. Чем ниже значение, тем больше событий будут упущены. Возможна ситуация,
когда необходимое событие будет не записано.
Данная опция позволяет сократить количество кода и полностью сохраняет скорость передвижения курсора. Если вы в
водном месте двигали курсор быстро, а в другом медленно, то эта разница так же будет заметна. Если двигать
курсор очень медленно, то данная опция не поможет сократить объем кода, так как все события так же будут
попадать в результат.
Опция минимальное расстояние указывает минимальное расстояние меду двумя событиями перемещения
мыши. К примеру, минимальное расстояние установлено равным 100 пикселям, вы нажали кнопку мыши и теперь медленно
ведете в сторону. Событие передвижения следующее за событием нажатия кнопки гарантировано попадет в результат,
однако в результат не попадет ни одно событие передвижения курсора расстояние до которого будет меньше чем 100
пикселей.
Эта опция так же поможет вам сократит объем кода. Она позволит убрать избыточные события вне зависимости от того
быстро вы передвигаете мышь или очень медленно.
Не рекомендуется устанавливать большие значения, так как результат может быть весьма непредсказуем.
Опция точки остановки позволить убрать недостатки от использования предыдущих двух опций. Если
курсор простоял в данной точке не двигаясь дольше чем указанное количество мс., то событие перемещения курсора в
эту точку гарантировано попадет в результат.
Таким образом, можно устанавливать любые значения для предыдущих двух опций и указывать особенно важные точки,
которые обязательно должны попасть в результат, просто подержав курсов на месте некоторое время.
Частота обновления стандартного монитора 60 или 120 герц, что дает примерно 8.3 и 16.6 мс. на кадр. Если вы
визуально можете заметить, что курсор замер на месте, значит время его остановки было более 17 и 34 мс.
соответственно. Указывать значения меньше чем время за 2 кадра нет смысла. Рекомендуется указывать время минимум
за 4 кадра: 34 и 67 мс.