Как написать скрипт для мыши

makrosyiВсем здравия!

Иногда при работе на компьютере необходимо нажимать последовательно несколько клавиш (причем, чем быстрее и «четче» это делаешь — тем лучше!). Например, это часто требуется в играх, при каких-то рутинных офисных задачах и пр.

Однако, всё можно упростить! Представьте, вы нажмёте только одну клавишу — а спец. программа за вас нажмет последовательность из 5÷10 клавиш, которую вы ей заранее укажите (причем, она может это сделать как очень быстро, так и с определенной паузой). Кстати, называют подобные «трюки» — макросами.

А если вы сделаете 3-4 таких макросов?! (на все возможные случаи). Да вы сможете нажимать так быстро любые комбинации клавиш, что ни один человек без «таких же фокусов» не сможет вас обогнать (обыграть!). Нажал одну клавишу в каком-нибудь «Mortal Kombat» — и боец делает всю связку без промедления! 😉

Собственно, в текущей заметке приведу простейший пример макроса: от А до Я. Думаю, что, начав с малого и поэкспериментировав — многие пользователи смогут добиться весьма неплохих результатов… 👌

Итак…

Не обгонишь, я быстрее нажму!

Не обгонишь, я быстрее нажму!

*

Содержание статьи

    ускорение ПК

  • 1 Создание макроса: нажимам 1 клавишу — получаем последовательность из 10!
    • 1.1 Пошаговый пример: делаем макрос для игры
    • 1.2 Какие утилиты можно порекомендовать для начинающих
      • 1.2.1 BotMek
      • 1.2.2 Keyran
      • 1.2.3 TinyTask
      • 1.2.4 Macros Effects: Макроскин (ME)
  •  → Задать вопрос | дополнить 

Создание макроса: нажимам 1 клавишу — получаем последовательность из 10!

Пошаговый пример: делаем макрос для игры

👉 ШАГ 1

Для нашего примера я взял утилиту BotMek (ссылка на сайт разработчика). Она проста в настройке, полностью на русском, и позволяет создавать достаточно длинные и хитрые комбинации макросов. Это нам и нужно 👌…

После установки и запуска BotMek — необходимо перейти в раздел «Макрос». 👇

ШАГ 1 — открываем раздел "макрос"

ШАГ 1 — открываем раздел «макрос»

*

👉 ШАГ 2

Далее нажать кнопку «Создать макрос» и дать ему имя (лучше использовать название игры или приложения, для которого макрос создается, чтобы вы по имени могли легко сориентировать к чему и зачем это…).

ШАГ 2 — название макроса

ШАГ 2 — название макроса

*

👉 ШАГ 3

Теперь для созданного макроса нам нужно записать комбинацию нажатий мыши и клавиатуры: именно ее потом программа и будет воспроизводить (эмулировать нажатия за нас!).

Для этого нужно нажать по кнопке «Запись», и указать: нужно ли запоминать нажатия мыши и клавиатуры (в своем примере я выбрал вариант «Записывать нажатия клавиш с клавиатуры»).

ШАГ 3 — начать запись

ШАГ 3 — начать запись

После нажмите на клавиатуре последовательно всё клавиши, которые программа должна запомнить и записать! Учтите, что она запоминает даже паузы между нажатиями клавиш!

По сути, мы делаем образец, и он должен быть идеальным. 😉 В конце операции нажмите по клавише «Стоп» и затем «OK» (этим мы сохраним макрос и выйдем в меню).

ШАГ 4 — нажимаем последовательность клавиш

нажимаем последовательность клавиш

*

👉 ШАГ 4

Теперь нам нужно этот макрос (последовательность клавиш) установить на какую-нибудь реальную клавишу — т.е. когда мы нажмем на неё — он и сработает.

Для этого нужно открыть раздел «Клавиши», нажать мышкой по одной из клавиш на виртуальной клавиатуре и выбрать для нее макрос (в моем случае для клавиши «Z» — «Присвоить макрос -> Макрос1: wow» 👇).

ШАГ 5 — присваиваем макросу клавишу

ШАГ 4 — присваиваем макросу клавишу

Далее нужно нажать кнопку «Запустить», чтобы программа начала отслеживать все нажатия на указанную нами клавишу «Z».

ШАГ 6 — запускаем макрос

запускаем макрос

*

👉 ШАГ 5

Осталось только войти в нужную нам игру/приложение (для которого мы создали макрос), и нажать кнопку активации макроса — в моем случае «Z».

Ву-а-ля, персонаж в игре начинает автоматически атаковать цель с применением всего боевого комбо! Задача решена?! 👌

ШАГ 7 — испытания!

ШАГ 5 — испытания! // Скриншот из игры World of Warcraft

Разумеется, мой показанный пример очень прост и бесхитростный. Однако, если вы никогда не сталкивались с этим — то начинать лучше с малого, потихоньку усложняя и накручивая «свои заготовки»…

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

*

Какие утилиты можно порекомендовать для начинающих

Разумеется, программ и утилит подобного рода достаточно много. В этой заметке у меня нет цели представить их все (с описанием плюсов и минусов) — самое главное дать несколько наводок для начинающих.

Т.е. те приложения, с которыми под силу разобраться «средней» руки пользователю, который накануне «открыл» для себя тему макросов… 👌

*

BotMek

Сайт: https://botmek.ru/

ШАГ 1 — открываем раздел "макрос"

BotMek: главное окно программы

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

Стоит отметить ее хорошую совместимость с онлайн-играми: она может выполнить за вас связку (комбо) ударов, уменьшить отдачу от оружия, ускорить процесс закупок и т.д.

Особенности:

  1. совместимость с любыми моделями мышек и клавиатур;
  2. рассчитана на новичка (спец. знаний не требуется);
  3. есть коллекция готовых макросов для популярных игр;
  4. позволяет пользоваться одновременно сразу неск. макросами;
  5. совместима с Windows 7/8/10 (работает «тихо» и не отвлекает различными окнами и напоминаниями…).

*

Keyran

Сайт: https://keyran.net/ru/

Инструкция по работе: https://ocomp.info/imitatsiya-rabotyi-myishki-klavyi.html

Редактор макросов

Редактор макросов // главное окно программы Keyran

Довольно мощная программа для создания макросов на мышь и клавиатуру (позволяет задать вручную список кнопок, которые компьютер должен «сам нажать» с нужными интервалами времени).

Также можно активно использовать в играх, например, для подавления отдачи оружия, ускоряя ряд действий в стратегиях, ММО-проектах.

Особенности:

  1. готовая база макросов для 5000 самых популярных игр;
  2. возможность установки спец. драйвера, воссоздающего работу реальной клавиатуры/мышки;
  3. работает со свернутым окном;
  4. есть возможность непрерывный работы макроса (пока не отключите — будет по кругу нажиматься поставленный список кнопок);
  5. дружелюбна и легко настраивается.

*

TinyTask

Страничка на UpToDown: https://tinytask.en.uptodown.com/windows

TinyTask — микро-программа

TinyTask — микро-программа

TinyTask — совсем небольшая утилита (несколько килобайт веса), позволяющая записывать и воспроизводить активность реальной клавиатуры/мыши (т.е. являться на время их программным эмулятором).

Отлично подходит для решения и автоматизации рутинных задач.

Кстати, программа также позволяет сохранить записанную последовательность в файл исполняемый EXE (что сделает перенос и запуск нужного сочетания клавиш еще проще). 👋

Недостаток: есть неудобства при работе сразу с несколькими макросами (переключение не удобно).

*

Macros Effects: Макроскин (ME)

Страничка на сайт разработчиков: https://doomxtf.com/

Macros Effects — скриншот главного окна

Macros Effects — скриншот главного окна

«Узко-спец.» приложение для постановки макросов на практически любые виды мышек. Совместима с макросами, написанными в Oscar Editor в формате AMC.

Особенности:

  1. высокая точность при настройке осей и координат перемещения курсора (хорошее перемещение прицела в играх-шутерах 😉);
  2. вкл./откл. функции повторов;
  3. работает в свернутом режиме;
  4. низкие системные требования к железу;
  5. возможность переносить макросы и одной копии ПО в другую просто скопировав код (в текстовом варианте);
  6. наличие раздела «Help» со справкой и пояснениями, как работать с программой.

Минус: отсутствует возможность записывать и загружать команды для клавиатуры!

*

Дополнения по теме, конечно же, приветствуются! 😉

Ну а у меня на сим пока всё, успехов!

👣

Первая публикация: 26.12.2020

Корректировка: 12.12.2021

donate

dzen-ya

Полезный софт:

  • видеомонтаж
  • Видео-Монтаж
  • Отличное ПО для создания своих первых видеороликов (все действия идут по шагам!).
    Видео сделает даже новичок!

  • утилита для оптимизации
  • Ускоритель компьютера
  • Программа для очистки Windows от «мусора» (удаляет временные файлы, ускоряет систему, оптимизирует реестр).

Редактор скриптов, все команды с примерами

Список возможных задач

  • Инструкции по написанию скриптов
  • Нажатия мыши
    • Нажатие левой кнопки мышки (нажать и отпустить)
    • Зажатие левой кнопки мышки (нажать без отпускания)
    • Отпускание левой кнопки мышки (отжать)
    • Нажатие правой кнопки мышки (нажать и отпустить)
    • Зажатие правой кнопки мышки (нажать без отпускания)
    • Отпускание правой кнопки мышки (отжать)
  • Нажатия клавиатуры
    • Нажатие клавиатурной клавиши (нажать и отпустить)
    • Зажатие клавиатурной клавиши (нажать без отпускания)
    • Отпускание клавиатурной клавиши (отжать)
    • Возможные значения клавиатурных клавиш
  • Ожидание/Задержка
  • Комментарии в коде
  • Блоки (свернуть/развернуть)

Перейдите в редактор скриптов.

Инструкции по написанию скриптов 


1. Скриптовый язык разработан специально для проекта BotMek и носит уникальный характер, все совпадения с другими языками — случайны.
2. Язык имеет регистронезависимый синтаксис.
3. Каждая команда должна начинаться с новой строки.
4. Каждая команда обязательно имеет хотя бы 1 параметр взятый в скобочки ( параметр ).
5. Окончание команды является точка с запятой — ; .

Нажатия мыши 


Нажатие левой кнопки мышки (нажать и отпустить) 


Команда
left(X, Y, Time);
Параметры
X — координаты по оси X, обязательный параметр, целое число; Y — координаты по оси Y, обязательный параметр, целое число; Time — длительность зажатия в миллисекундах, необязательный параметр, целое число;

В качестве координат X и Y может принимать параметр CursorX и CursorY;

CursorX — координаты текущего положения мыши по оси X;

CursorY — координаты текущего положения мыши по оси Y;

Примеры
left(10,15); //Нажать левой кнопкой мыши в координаты X10, Y15
left(10,15,1000); //Нажать левой кнопкой мыши в координаты X10, Y15 и держать 1 секунду
left(cursorX,cursorY); //Нажать левой кнопкой мыши в координаты текущего положения мыши

Зажатие левой кнопки мышки (нажать без отпускания) 


Параметры
X — координаты по оси X, обязательный параметр, целое число; Y — координаты по оси Y, обязательный параметр, целое число; Time — длительность зажатия в миллисекундах, необязательный параметр, целое число;

В качестве координат X и Y может принимать параметр CursorX и CursorY;

CursorX — координаты текущего положения мыши по оси X;

CursorY — координаты текущего положения мыши по оси Y;

Примеры
leftDOWN(10,15); //Зажать левую кнопку мыши в координатах X10, Y15
leftDOWN(cursorX,cursorY); //Зажать левую кнопку мыши в координатах текущего положения мыши

Отпускание левой кнопки мышки (отжать) 


Параметры
X — координаты по оси X, обязательный параметр, целое число; Y — координаты по оси Y, обязательный параметр, целое число; Time — длительность зажатия в миллисекундах, необязательный параметр, целое число;

В качестве координат X и Y может принимать параметр CursorX и CursorY;

CursorX — координаты текущего положения мыши по оси X;

CursorY — координаты текущего положения мыши по оси Y;

Примеры
leftUP(10,15); //Отпустить левую кнопку мыши в координатах X10, Y15
leftUP(cursorX,cursorY); //Отпустить левую кнопку мыши в координатах текущего положения мыши

Нажатие правой кнопки мышки (нажать и отпустить) 


Команда
right(X, Y, Time);
Параметры
X — координаты по оси X, обязательный параметр, целое число; Y — координаты по оси Y, обязательный параметр, целое число; Time — длительность зажатия в миллисекундах, необязательный параметр, целое число;

В качестве координат X и Y может принимать параметр CursorX и CursorY;

CursorX — координаты текущего положения мыши по оси X;

CursorY — координаты текущего положения мыши по оси Y;

Примеры
right(10,15); //Нажать правой кнопкой мыши в координаты X10, Y15
right(10,15,1000); //Нажать правой кнопкой мыши в координаты X10, Y15 и держать 1 секунду
right(cursorX,cursorY); //Нажать правой кнопкой мыши в координаты текущего положения мыши

Зажатие правой кнопки мышки (нажать без отпускания) 


Параметры
X — координаты по оси X, обязательный параметр, целое число; Y — координаты по оси Y, обязательный параметр, целое число; Time — длительность зажатия в миллисекундах, необязательный параметр, целое число;

В качестве координат X и Y может принимать параметр CursorX и CursorY;

CursorX — координаты текущего положения мыши по оси X;

CursorY — координаты текущего положения мыши по оси Y;

Примеры
rightDOWN(10,15); //Зажать правую кнопку мыши в координатах X10, Y15
rightDOWN(cursorX,cursorY); //Зажать правую кнопку мыши в координатах текущего положения мыши

Отпускание правой кнопки мышки (отжать) 


Параметры
X — координаты по оси X, обязательный параметр, целое число; Y — координаты по оси Y, обязательный параметр, целое число; Time — длительность зажатия в миллисекундах, необязательный параметр, целое число;

В качестве координат X и Y может принимать параметр CursorX и CursorY;

CursorX — координаты текущего положения мыши по оси X;

CursorY — координаты текущего положения мыши по оси Y;

Примеры
rightUP(10,15); //Отпустить правую кнопку мыши в координатах X10, Y15
rightUP(cursorX,cursorY); //Отпустить правую кнопку мыши в координатах текущего положения мыши

Нажатия клавиатуры 


Нажатие клавиатурной клавиши (нажать и отпустить) 


Параметры
Key — нажимаемая клавиша, обязательный параметр, английская раскладка; Time — длительность зажатия в миллисекундах, необязательный параметр, целое число;
Примеры
Send(G); //Нажать клавишу G
Send(G, 2000); //Зажать клавишу G на 2 сек, после чего отпустить

Зажатие клавиатурной клавиши (нажать без отпускания) 


Параметры
Key — нажимаемая клавиша, обязательный параметр, английская раскладка;
Примеры
SendDOWN(G); //Зажать клавишу G

Отпускание клавиатурной клавиши (отжать) 


Параметры
Key — нажимаемая клавиша, обязательный параметр, английская раскладка;
Примеры
SendUP(G); //Отпустить клавишу G

Возможные значения параметра Key 


   Esc      F1      F2      F3      F4      F5      F6      F7      F8      F9      F10      F11      F12      Del      Home      End      PrtScn      `      1      2      3      4      5      6      7      8      9      0      -      =      Backspace      NumLock      Insert      Tab      Q      W      E      R      T      Y      U      I      O      P      [      ]            PageUp      PageDown      Caps      A      S      D      F      G      H      J      K      L      ;      '      Enter      Pause      Shift      Z      X      C      V      B      N      M      ,      .      /      Ctrl      Win      Alt      Space      right      left      down      up   

Ожидание/Задержка 


Параметры
Time — длительность задержки в миллисекундах, обязательный параметр, целое число;
Примеры
Sleep(2000); //Ожидать 2 секунды

Комментарии в коде 


Комментарий в коде — это текст который не учитывается компилятором. Комментарии служат для заметок пользователями.
Текст комментария начинается с двух косых черточек «//«, все что идет далее является комментарием.

Пример

//Этот текст является комментарием

Блоки (свернуть/развернуть) 


Директива region позволяет указать блок кода, который можно разворачивать и сворачивать.
В больших файлах кода очень удобно сворачивать или скрывать одну или несколько областей,
чтобы не отвлекать внимание от той части файла, над которой в настоящее время идет работа.
В конце блока #region должна присутствовать директива #endregion.

Пример

#region Скрываемая часть кода

Скрываемая часть кода
#endregion

Макросы могут сильно упростить жизнь и геймерам, и простым пользователям. Они представляют собой последовательность действий (нажатия кнопок, запуск приложений, выполнение команд), которую можно «привязать» к определенной кнопке мыши или клавиатуры и выполнять ее одним нажатием кнопки или их комбинации.

Говоря простым языком, благодаря макросу можно с помощью одной кнопки выполнить сложную серию ударов или действий в игре, запустить далеко спрятанное приложение и сделать еще много других полезных вещей. Ну а сегодня мы разберемся в том, как создавать макросы несколькими способами.

Содержание

  • Рекомендованный Microsoft способ
  • Фирменные приложения производителей
  • Сторонние приложения

Рекомендованный Microsoft способ

Пользу макросов признает и такой гигант, как Microsoft, а для их создания можно воспользоваться фирменной утилитой Microsoft Mouse and Keyboard Center.

  • Запустите программу с помощью мыши, которую вы планируете использовать для активации макросов.
  • В списке для нужной кнопки кликните Макрос -> Создать макрос.
  • Укажите название макроса и нажмите кнопку Редактор.

Для ввода сложного макроса выберите первое событие, после чего нажмите на пункт Разделить. Он разделит событие на три этапа: нажатие и удержание кнопки, пауза и отпускание клавиши. Выберите последующее событие и повторяйте процедуру до составления нужного вам макроса.


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

Приложение позволяет отредактировать и уже созданные макросы. Для этого выберите Макрос в списке для нужной кнопки, выберите нужный макрос в списке доступных и нажмите Редактор.

Фирменные приложения производителей

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

К примеру, в случае с популярной среди геймеров продукцией Razer для создания макросов можно воспользоваться утилитой Razer Synapse. Для этого достаточно установить в приложении модуль Макросы, после чего вы сможете увидеть соответствующую вкладку, где и происходит их настройка.

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

Сторонние приложения

Если же вы по какой-то причине не хотите пользоваться фирменными утилитами Microsoft и производителей периферии, в сети можно найти массу программ для создания и управления макросами.

  • Лучшие игровые мыши 2022 года: топ-10 надежных и удобных девайсов

BotMek

BotMek рассчитана, в первую очередь, на геймеров, позволяя создавать макросы для отдельных игр. Причем делать это можно как с помощью простого визуального редактора, так и с помощью скриптов — в ПО встроен соответствующий редактор с подсветкой синтаксиса. Конечно, последний способ подойдет только продвинутым пользователям, но и возможностей у него куда больше.

Если же вы не хотите самостоятельно заниматься записью и составлением макросов, в BotMek имеется огромная база скриптов для самых разных игр. Кстати, такие пресеты можно использовать и в качестве базы для собственных уникальных макросов — их легко отредактировать под ваши задачи.

Hotkeycontrol

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

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

Key Manager

Key Manager выделяется на фоне многих других программ полностью русскоязычным интерфейсом. Причем речь идет не о какой-то локализации — софт был создан отечественным разработчиком и отличается чрезвычайно простым и дружественным интерфейсом.

Здесь также можно записывать макросы, назначать и переназначать горячие клавиши и кнопки мыши, а сама Key Manager, по сути, представляет собой более функциональный вариант популярной программы Key Remapper. Помимо традиционных игровых возможностей ее можно использовать и для быстрого заполнения формы на сайте, запуска программы, открытия сайта, управления громкостью, установки конкретного размера окна и многого-многого другого.

  • Как выбрать клавиатуру для компьютера

Free Macro Recorder

Еще одна очень популярная программа Free Macro Recorder ценится пользователями, в первую очередь, за ее простоту. Для работы с ней не нужно каких-то специальных навыков. Достаточно лишь кликнуть на кнопку записи и нажать нужную комбинации клавиш. Программа запомнит ее, а вы при необходимости сможете ее отредактировать. Например, изменить время нажатия кнопки или включить повтор циклов.

Причем, несмотря на свою простоту, Free Macro Recorder нельзя назвать каким-то примитивным софтом с ограниченными возможностями. Продвинутые пользователи найдут здесь, в том числе, и редактор скриптов для написания собственного сложного макроса. И вот для этого определенные навыки уже понадобятся.

AutoHotkey

Полная противоположность Free Macro Recorder — утилита AutoHotkey. Разобраться в ней простым пользователям будет ой как непросто. Зато и возможности по написанию скриптов в ней просто огромны. Пользователи программы могут создавать самые разные макросы для последовательного запуска нескольких программ, редактирования файлов, изменения положения или масштабов окра и множества других действий, отнимающих у вас время в повседневной жизни.

В общем, профессионалы ее точно оценят. Ценно и то, что это программа с открытым исходным кодом. А значит, она не только бесплатна, но и открыта для правок «под себя» и написания плагинов.

Читайте также

  • Как поставить живые обои на ПК?
  • Как восстановить отформатированный жесткий диск?

Предисловие

 Данная статья не позиционируется как полный гайд по созданию макросов любой сложности. Во-первых она даст вам представление о том с каких шагов начинается создание макроса и во-вторых поможет понять основы. В конечном итоге, вы сможете самостоятельно сделать свой первый макрос на мышку A4Tech Bloody или X7. Разбирать будем на примере достаточно простого макроса для игры Dota 2. Готовый макрос из примера вы можете скачать по ссылке внизу статьи.

Какие действия будет выполнять макрос?

Перво наперво, перед тем как приступить непосредственно к написанию макроса, нужно определиться с тем, что собственно он должен делать? Что бы было не слишком сложно, предлагаю сделать макрос кликер. С таким макросом можно очень просто отбирать у врагов руны, а так же легко стопить крипов. Кстати говоря в самой игре уже есть подобная функция, она включается в настройках, но скорость кликов очень низкая, давайте это исправим.

Создание макроса в программе Bloody.

Я буду показывать на примере самой популярной на данной момент программы для мышек A4Tech Bloody. Для мышек X7 все делается аналогично. В целом, такой макрос можно сделать на любой мышке поддерживающей макросы с имитацией кликов и задержек.

Шаг 1. Создаем папку с новой игрой и файл макрос.

Заходим в программу Bloody и открываем вкладку Oscar Macro.

Как сделать макрос на мышку - Oscar Macro

Далее в левом верхнем меню  “Файл” выбираем “Новая игра”.

В появившемся окне вводим название новой папки – Dota2 (ведь мы же делаем макрос для доты как никак).

Как сделать макрос на мышку - Dota2

Отлично, отдельная папка для макросов Dota2 готова. Теперь нужно создать новый файл макрос в этой папке. Открываем меню “Файл” и выбираем пункт “Новый”

Как сделать макрос на мышку - Новый

В появившемся окне вводим название нашего макроса и жмем “OK”, я назову его Clicker, логично же :)

Как сделать макрос на мышку - Clicker

В появившемся окне заполняете все поля как вам угодно и нажимаете “OK”. Поля “Разрешение” и “Чувствительность” оставляете без изменений, это просто информация о макросе.

Шаг 2. Написание скрипта.

Снова переходим в меню “Файл” и выбираем пункт “Открыть”.

Выбираем ранее созданный макрос и нажимаем кнопку “Open”.

Как сделать макрос на мышку - Open

Итак, перед вами окно нашего нового, но все еще пустого макроса, ну что же, самое время заняться созданием скрипта.

Как сделать макрос на мышку - чистый макрос

В Зоне команд перейдите во вкладку Mouse.

Как сделать макрос на мышку - эмуляция

Теперь начинается самое интересное. Так как мы будем эмулировать нажатия правой кнопки мыши, то необходимо перенести “Правая кнопка” из зоны эмулирования в зону макроса. Зажимаем мышкой и переносим, должно получиться вот так:

Как сделать макрос на мышку - нажатие правой кнопки

Самый простой макрос кликер уже практически готов, но нужно учесть еще несколько важных моментов. Нужно установить нужный режим работы макроса. Нам нужно, что бы макрос активировался при нажатии кнопки мыши, а отключался сразу при отпускании. Выбирает второй режим работы макроса.

Как сделать макрос на мышку - режим работы

Теперь осталось установить нужную нам частоту кликов. По умолчанию программа поставила значение в 64мс, сменим его на 10мс. 

Как сделать макрос на мышку - задержка

Итак, давайте интерпретируем скрипт человеческим языком. У нас установлен 2й режим работы для макроса, т.е. при нажатии и удержании кнопки макрос будет работать по кругу. В начале сценария он нажмет правую кнопку мыши и будет удерживать ее на протяжении 10мс. Затем отожмет эту кнопку и через 10мс нажмет заново и будет удерживать 10мс и тд. Сохраняем наш макрос нажатием на “дискетку”.

Как сделать макрос на мышку - сохранение

Переходим во вкладку “Button”, выбираем наш макрос в меню правой кнопки мыши и загружаем макрос в мышь нажатием кнопки “APPLY”. Обратите внимание, что мы загружаем макрос на правую кнопку мыши, а она доступна во всех профилях режима Ultra Core 4.

Как сделать макрос на мышку - загружаем в мышь

Волнительный момент, идем тестировать макрос в игре :)

В процессе игры вы можете поменять значения задержек. Например сделать их больше, 20мс вместо 10мс, или меньше. Учтите, что при слишком маленьких значениях кликов могут возникнуть “подвисания”. Клики просто не будут успевать обрабатываться в реальном времени.

Скачать уже готовый макрос для Dota 2 вы можете по этой ссылке – Макрос Clicker.

Главная задача любой ОС – это управление программными и аппаратными ресурсами компьютера, а также предоставление к ним доступа для запущенных процессов. Аппаратные ресурсы мы уже рассматривали. Это – память, процессорное время, периферийные устройства. К программным ресурсам относятся все приложения и компоненты ОС, установленные на компьютере. Примером этого типа ресурсов являются системные библиотеки Windows, предоставляющие алгоритмы для решения различных задач.

В этой книге мы рассматриваем только ОС Windows. На ней вы сможете запустить

все приведённые примеры

. В дальнейшем для простоты под ОС всегда будем подразумевать Windows.

Иллюстрация 2-1 демонстрирует интерфейс ОС, через который предоставляется доступ к её ресурсам. Каждый запущенный процесс может обратиться к Windows с запросом на выполнение какого-то действия (например создание нового окна, отправки сетевого пакета, выделения дополнительной памяти и т.д.). Для каждого из таких запросов у ОС есть соответствующая

функция

(или подпрограмма). Функции, которые решают задачи из одной области (например работа с сетью), собраны в отдельные системные библиотеки.

Иллюстрация 2-1. Доступ к ресурсам ОС через WinAPI

Способ, которым процесс может вызвать системную функцию, строго определён, хорошо задокументирован и остаётся неизменным для данной версии ОС. Такое взаимодействие можно сравнить с юридическим договором: если процесс выполняет предварительные условия для вызова функции, ОС гарантирует указанный в документации результат. Такой договор называется интерфейс прикладного программирования Windows (Windows API или WinAPI).

Программное обеспечение очень гибко и легко меняется согласно возникающим требованиям. Так каждое обновление Windows вносит изменения в некоторые детали реализации ОС (например, в какую-то системную библиотеку). Эти детали реализации связаны между собой: типичный случай – одна библиотека вызывает функции другой. Таким образом, даже небольшое изменение может оказать значительное влияние на систему в целом. То же самое справедливо и для игрового приложения. Единственное, что позволяет программному обеспечению работать в этом море постоянных изменений – это надежные интерфейсы. Именно WinAPI гарантирует согласованное состояние системы и обеспечивает совместимость между новыми версиями ОС и приложения.

На иллюстрации 2-1 приведены два типа приложений. Win32-приложение взаимодействует с подмножеством системных библиотек через WinAPI интерфейс. Win32 – это историческое название, которое возникло в первой 32-битной версии Windows (Windows NT). Библиотеки, доступные через WinAPI, также известные как WinAPI библиотеки, содержат функции, оперирующие сложными абстракциями: элемент управления, файл и т.д.

Второй тип приложений называется нативные (native, поэтому иногда переводится как родной). Они взаимодействуют с более низкоуровневыми библиотеками и ядром Windows через Native API. Преимущество этих библиотек в том, что они становятся доступны на раннем этапе загрузки системы, когда многие функции ОС еще не работоспособны. Функции этих библиотек оперируют простыми абстракциями, такими как страница памяти, процесс, поток и т.д. Примеры нативных приложений: утилита для разбивки жёсткого диска, антивирус до старта ОС, программа восстановления Windows.

Библиотеки WinAPI вызывают функции низкоуровневых библиотек. Такой подход позволяет составлять сложные абстракции из более простых. Низкоуровневые библиотеки в свою очередь вызывают функции ядра.

Драйвера предоставляют упрощённое представление устройств для системных библиотек. Это представление включает в себя набор функций, которые выполняют характерные для данного устройства действия. WinAPI и низкоуровневые библиотеки обращаются к драйверам через функции ядра.

Слой аппаратной абстракции (Hardware Abstraction Layer или HAL) – это модуль ядра ОС, который предоставляет универсальный доступ к различному аппаратному обеспечению. HAL нужен, чтобы облегчить портирование и сопровождение Windows на новых аппаратных платформах. Функции HAL используются ядром ОС и драйверами устройств.

Теперь мы рассмотрим технику симуляции нажатий клавиш. Это наиболее простой метод контроля ботом игрового приложения.

Нажатия клавиш в активном окне

Рассмотрим, какие возможности предлагает AutoIt для решения нашей задачи. В

списке доступных функций

есть функция Send. Мы воспользуемся ею в тестовом скрипте, который будет нажимать клавишу «a» в окне приложения Notepad (Блокнот).

Алгоритм работы нашего скрипта выглядит следующим образом:

  1. 1.

    Найти окно Notepad среди всех открытых окон.

  2. 3.

    Симулировать нажатие клавиши «a».

Для поиска окна приложения мы воспользуемся функцией WinGetHandle. Её первый параметр является обязательным и может быть как заголовком окна, так и его классом. Функция возвращает дескриптор (handle) окна. Дескриптор – это структура данных, которая представляет некоторый ресурс или объект ОС. Большинство функций WinAPI оперируют этими структурами при работе с объектами.

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

Для чтения класса окна Notepad необходимо выполнить следующие шаги:

  1. 1.

    Запустить приложение Au3Info. Вы можете найти его в каталоге установки AutoIt. Путь к приложению по умолчанию: C:Program Files (X86)AutoIt3Au3Info.exe.

  2. 2.

    Перетащить иконку «Finder Tool» на окно Notepad и отпустить.

Вы увидите результат, приведённый на иллюстрации 2-2.

Иллюстрация 2-2. Приложение AutoIt3 Info

Класс окна Notepad отображается на панели «Basic Info Window». Этот класс – «Notepad».

Скрипт Send.au3, представленный в листинге 2-1, симулирует нажатие клавиши «a».

Листинг 2-1. Скрипт Send.au3

$hWnd = WinGetHandle(«[CLASS:Notepad]»)

В первой строке мы получаем дескриптор окна Notepad с помощью функции WinGetHandle. Далее мы переключаем фокус ввода на это окно функцией WinActivate. Последнее действие – симуляция нажатия клавиши «a».

Чтобы запустить этот скрипт, создайте в вашем редакторе исходного кода файл с именем Send.au3 и скопируйте в него приведенный выше код. Запустите скрипт двойным щелчком по иконке этого файла.

Функция Send представляет собой обертку над WinAPI вызовом. Мы можем выяснить что это за вызов с помощью приложения API Monitor, которое перехватит все обращения к WinAPI скрипта Send.au3.

Для подключения API Monitor к работающему процессу выполните следующие шаги:

  1. 1.

    Запустите 32-битную версию API Monitor.

  2. 2.

    Переключитесь на панель «API Filter» щелчком мыши. Нажмите комбинацию клавиш Ctrl+F, чтобы открыть диалог поиска. Введите в поле «Find what:» текст «Keyboard and Mouse Input» и нажмите кнопку «Find Next». Закройте диалог поиска и активируйте найденный флажок (check box) «Keyboard and Mouse Input».

  3. 3.

    Нажмите Ctrl+M для открытия диалога «Monitor New Process». Выберите приложение AutoIt3.exe в поле «Process» и нажмите кнопку «OK». По умолчанию путь к этому приложению должен быть следующий: C:Program Files (x86)AutoIt3AutoIt3.exe.

  4. 4.

    В открывшемся диалоге «Run Script» выберите скрипт Send.au3. Сразу после этого начнётся его выполнение.

  5. 5.

    Переключитесь на панель «Summary» окна API Monitor. По нажатию Ctrl+F откройте диалог поиска и с его помощью найдите текст ‘a’ (с одинарными кавычками).

Иллюстрация 2-3 демонстрирует ожидаемый результат. Согласно перехваченным вызовам, VkKeyScanW – это единственная WinAPI функция, получившая символ «a» в качестве параметра. Если мы обратимся к

официальной документации WinAPI

, выяснится что эта функция не выполняет нажатия клавиши. Она вместе с функцией MapVirtualKeyW только подготавливает параметры для вызова SendInput, который и симулирует нажатие.

Иллюстрация 2-3. Перехват вызовов WinAPI с помощью API Monitor

Мы узнали достаточно, чтобы симулировать нажатие клавиши «a» напрямую через WinAPI вызовы. Удалим третью строчку скрипта Send.au3 и заменим её новым блоком кода. При этом оставим первые два вызова WinGetHandle и WinActivate без изменений. Листинг 2-2 демонстрирует получившийся результат.

Листинг 2-2. Скрипт SendInput.au3

$hWnd = WinGetHandle(«[CLASS:Notepad]»)

Const $KEYEVENTF_UNICODE = 4

Const $INPUT_KEYBOARD = 1

$tINPUTs = DllStructCreate($tagINPUT)

$pINPUTs = DllStructGetPtr($tINPUTs)

DllStructSetData($tINPUTs, 1, $INPUT_KEYBOARD)

DllStructSetData($tINPUTs, 3, $Key)

DllStructSetData($tINPUTs, 4, $KEYEVENTF_UNICODE)

DllCall(‘user32.dll’, ‘uint’, ‘SendInput’, ‘uint’, $iINPUTs, _

‘ptr’, $pINPUTs, ‘int’, $iInputSize)

Здесь мы используем функцию AutoIt DllCall. С её помощью можно вызвать код динамической библиотеки (DLL), написанной на языке C или C++. В данном случае мы делаем WinAPI вызов SendInput. Его входные параметры должны иметь типы, согласно документации WinAPI. Некоторые из этих типов AutoIt не поддерживает на уровне синтаксиса. Поэтому нам нужны дополнительные шаги, чтобы подготовить эти параметры.

Таблица 2-1 демонстрирует входные параметры функции DllCall.

Таблица 2-1. Входные параметры функции DllCall

Имя библиотеки, функцию которой требуется вызвать.

Тип возвращаемого значения функции.

uint, $iINPUTs
ptr, $pINPUTs
int, $iInputSize

Пары тип-переменная. Переменные являются входными параметрами функции.

Согласно WinAPI документации, декларация функции SendInput выглядит следующим образом:

UINT SendInput(UINT cInputs, LPINPUT pInputs, int cbSize);

Строчку вызова функции DllCall на AutoIt можно представить эквивалентом на языке C++:

SendInput(iINPUTs, pINPUTs, iInputSize);

Рассмотрим входные параметры, переданные нами в SendInput:

  1. 1.

    iINPUTs – количество структур типа INPUT, которые передаются вторым параметром.

  2. 2.

    pINPUTs – указатель на массив структур типа INPUT из одного элемента. Этот массив подготавливается в несколько этапов. Сначала мы объявляем строки KEYBDINPUT и INPUT с описанием полей соответствующих структур. При этом KEYBDINPUT является вторым полем INPUT. Такое отношение называется вложенные структуры (nested structure). На следующем шаге создаются структуры в формате языка C++ через вызов DllStructCreate. Результат сохраняется в переменной tINPUTs. С помощью функции DllStructGetPtr мы получаем указатель на эту структуру и помещаем его в pINPUTs. Запись значений полей C++ структуры происходит через вызов DllStructSetData. Обратите внимание, что вторым параметром в DllStructSetData передаётся номер поля, начиная с единицы. В случае вложенных структур их поля нумеруются последовательно. То есть элемент 1 соответствует полю dword type структуры INPUT, а элемент 3 – полю word wScan структуры KEYBDINPUT.

  3. 3.

    iInputSize – размер одной структуры INPUT в байтах. В нашем случае это константное значение, рассчитанное по формуле:

    dword + (word + word + dword + dword + ulong_ptr) + dword =

    4 + (2 + 2 + 4 + 4 + 8) + 4 = 28

    Слагаемые в скобках – это размеры полей вложенной структуры KEYBDINPUT.

Может быть непонятно, откуда взялись последние четыре байта в приведённой выше формуле. Возможно, вы обратили внимание, что объявленная в скрипте Send.au3 структура INPUT имеет последнее поле типа dword с именем padding (набивка). Оно не используется и служит для

выравнивания данных

. Рассмотрим это поле подробнее.

Определение структуры INPUT согласно документации WinAPI выглядит следующим образом:

typedef struct tagINPUT {

Вложенная структура KEYBDINPUT на самом деле помещена в блок union с другими структурами MOUSEINPUT и HARDWAREINPUT. Это означает, что под все три структуры будет выделена одна и та же область памяти. Но использоваться она будет только одной из них. Так как область одна, её размер должен соответствовать самой большой структуре, которой является MOUSEINPUT. Она больше KEYBDINPUT на одно поле типа dword, т.е. на четыре байта. Именно из-за него мы добавили padding в наше определение KEYBDINPUT для выравнивания.

Скрипт SendInput.au3 демонстрирует преимущества высокоуровневых языков, таких как AutoIt. Они скрывают от пользователя множество несущественных деталей. Это позволяет оперировать простыми абстракциями и функциями. Кроме того, приложения, написанные на таких языках, короче и яснее.

Нажатия клавиш в неактивном окне

Функция AutoIt Send симулирует нажатия клавиш в активном окне. Другими словами, вы не можете свернуть это окно или переключится на другое, что в некоторых случаях неудобно. Функция ControlSend позволяет обойти такое ограничение. Мы можем переписать скрипт Send.au3 с использованием ControlSend, как демонстрирует листинг 2-3.

Листинг 2-3. Скрипт ControlSend.au3

$hWnd = WinGetHandle(«[CLASS:Notepad]»)

ControlSend($hWnd, «», «Edit1», «a»)

Третьим параметром в функцию ControlSend передается

элемент интерфейса

(control), который получает симулируемое нажатие клавиши. Указать на него можно несколькими способами. В нашем случае, мы передаём класс элемента «Edit1». Его можно узнать с помощью утилиты Au3Info точно так же, как и класс окна.

Применив API Monitor, мы узнаем, что ControlSend внутри себя вызывает WinAPI функцию SetKeyboardState. В качестве упражнения предлагаю вам переписать скрипт ControlSend.au3 так, чтобы он вызывал SetKeyboardState напрямую.

Скрипт ControlSend.au3 работает корректно во всех случаях, кроме симуляции нажатия клавиши в развернутом на весь экран окне приложения DirectX. Проблема заключается в том, что такое окно не имеет элементов интерфейса. Чтобы её решить, достаточно просто не указывать третий параметр controlID функции ControlSend. Листинг 2-4 демонстрирует исправленный скрипт.

Листинг 2-4. Скрипт ControlSendDirectX.au3

$hWnd = WinGetHandle(«Warcraft III»)

ControlSend($hWnd, «», «», «a»)

Этот скрипт ищет окно игры Warcraft 3 по его заголовку и симулирует в нём нажатие клавиши «a». Узнать заголовок окна DirectX-приложения иногда бывает сложно, потому что не всегда можно выйти из полноэкранного режима. В этом случае утилиты вроде Au3Info вам не помогут. Вместо них с этой задачей справится API Monitor. Если в окне приложения вы наведёте курсор мыши на интересующий вас процесс на панели «Running Process», вы увидите заголовок окна этого приложения, как показано на иллюстрации 2-4.

Заголовок окна приложения в API Monitor

Иллюстрация 2-4. Чтение заголовка окна приложения в API Monitor

Если вы не можете найти нужный процесс на панели «Running Process», попробуйте запустить API Monitor с правами администратора. Если это не помогло, и у вас установлена 64-битная версия Windows, надо запустить обе версии API Monitor – 32- и 64-битную. В одной из них процесс должен появиться.

Заголовок некоторых окон в полноэкранном режиме пустой. Из-за этого вы не сможете передать его в функцию WinGetHandle и получить дескриптор. Тогда альтернативным решением будет передавать класс окна. К сожалению, с помощью API Monitor эту информацию не удастся прочитать.

Чтобы получить класс окна, открытого в полноэкранном режиме, вы можете воспользоваться скриптом AutoIt, приведённом в листинге 2-5.

Листинг 2-5. Скрипт GetWindowTitle.au3

$handle = WinGetHandle(‘[Active]’)

MsgBox(0, «», «Title : » & WinGetTitle($handle) & @CRLF _

& «Class : » & _WinAPI_GetClassName($handle))

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

Рассмотрим подробнее скрипт GetWindowTitle.au3. В первой строке стоит ключевое слово (keyword) include. С его помощью AutoIt включает содержание указанного скрипта WinAPI.au3 в текущий. В WinAPI.au3 реализована нужная нам функция _WinAPI_GetClassName. Она возвращает класс окна по его дескриптору. Далее с помощью функции Sleep скрипт ждёт пять секунд. После этого дескриптор активного в данный момент окна сохраняется в переменную handle. Функция MsgBox создаёт диалоговое окно, в котором выводится результат. Заголовок окна возвращает функция WinGetTitle.

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

Действия мыши в активном окне

Мы воспользуемся графическим редактором Microsoft Paint для тестирования скриптов, симулирующих действия мыши. Самое простое действие – это однократный щелчок в указанной точке экрана. Листинг 2-6 демонстрирует соответствующий скрипт.

Листинг 2-6. Скрипт MouseClick.au3

$hWnd = WinGetHandle(«[CLASS:MSPaintApp]»)

MouseClick(«left», 250, 300)

Для тестирования этого скрипта выполните следующее:

  1. 1.

    Запустите приложение Paint.

  2. 2.

    Переключитесь на инструмент «Кисти» (Brushes).

  3. 3.

    Запустите скрипт MouseClick.au3.

Скрипт нарисует чёрную точку по координатам x = 250, y = 300. Их корректность вы можете проверить с помощью утилиты ColorPix.

Для симуляции щелчка мыши мы использовали функцию AutoIt MouseClick. Она принимает пять входных параметров, первые три из которых являются обязательными:

  1. 1.

    Кнопка мыши для щелчка. Основные варианты: левая (left), правая (right), средняя (middle).

  2. 2.

    Координата X позиции курсора.

  3. 3.

    Координата Y позиции курсора.

  4. 4.

    Число последовательных щелчков.

  5. 5.

    Скорость мыши для перемещения курсора в указанные координаты.

Внутри себя MouseClick вызывает WinAPI функцию mouse_event.

Координаты позиции курсора можно задавать в одном из трёх режимов, представленных в таблице 2-2.

Таблица 2-2. Режимы координат, поддерживаемые WinAPI

Координаты относительно левой верхней точки активного окна.

Абсолютные координаты экрана. Это режим по умолчанию.

Координаты относительно левой верхней точки клиентской части окна (без заголовка, меню и границ).

Иллюстрация 2-5. Режимы координат, поддерживаемые WinAPI

Рассмотрим иллюстрацию 2-5. Каждый номер соответствует режиму координат из таблицы 2-1. Например, точка с номером «0» демонстрирует режим относительно активного окна. Её координаты X0 и Y0.

Функция AutoIt Opt, вызванная с первым параметром MouseCoordMode, позволяет выбрать режим координат для текущего скрипта. Листинг 2-7 демонстрирует выбор координат относительно клиентской части окна в скрипте MouseClick.au3.

Листинг 2-7. Скрипт MouseClick.au3 с выбором режима координат

$hWnd = WinGetHandle(«[CLASS:MSPaintApp]»)

MouseClick(«left», 250, 300)

Запустив этот скрипт, вы заметите, что координаты чёрной точки, нарисованной в окне Pain, изменились. Выбранный нами режим обеспечивает более точное позиционирование курсора. При разработке кликеров предпочтительнее использовать именно его. Он одинаково хорошо работает для окон в обычном и полноэкранном режимах. Единственный его недостаток заключается в сложности отладки скриптов. Утилиты вроде ColorPix отображают только абсолютные координаты пикселей.

Одно из распространённых действий мышью в компьютерных играх – перетаскивание (drag-and-drop). Для его симуляции AutoIt предоставляет функцию MouseClickDrag. Листинг 2-8 демонстрирует её использование.

Листинг 2-8. Скрипт MouseClickDrag.au3

$hWnd = WinGetHandle(«[CLASS:MSPaintApp]»)

MouseClickDrag(«left», 250, 300, 400, 500)

После запуска скрипт MouseClickDrag.au3 рисует линию в окне Paint. Координаты её начала: x = 250, y = 300. Она заканчивается в точке x = 400, y = 500. Функция AutoIt MouseClickDrag делает внутри себя уже знакомый нам WinAPI вызов mouse_event. Обе AutoIt функции MouseClick и MouseClickDrag симулируют действия мыши только в активном окне.

Действия мыши в неактивном окне

AutoIt предоставляет функцию ControlClick, которая симулирует щелчок мыши в неактивном окне. Пример её использования приведён в листинге 2-9.

Листинг 2-9. Скрипт ControlClick.au3

$hWnd = WinGetHandle(«[CLASS:MSPaintApp]»)

ControlClick($hWnd, «», «Afx:00000000FFC20000:81», «left», 1, 250, 300)

Скрипт ControlClick.au3 симулирует щелчок мыши в неактивном или свернутом окне Paint. По принципу работы функция ControlClick похожа на ControlSend. Вы должны указать элемент интерфейса по которому будет выполнен щелчок. В нашем случае – это рабочая область окна Paint, в которой пользователь применяет инструменты рисования (например кисти). Согласно информации от утилиты Au3Info, элемент рабочей области имеет класс «Afx:00000000FFC20000:81».

Ради эксперимента мы можем передать одни и те же координаты курсора в функции MouseClick и ControlClick. В результате щелчки мыши произойдут в разных точках экрана. Причина в том, что входные параметры функции ControlClick – это координаты относительно левого верхнего угла указанного элемента интерфейса. В случае скрипта ControlClick.au3, щелчок произойдёт в точке x = 250, y = 300 относительно левого верхнего угла рабочей области. Тогда как режим координат для функции MouseClick определяется параметром MouseCoordMode.

ControlClick дважды вызывает WinAPI функцию PostMessageW внутри себя. Иллюстрация 2-6 демонстрирует её вызовы, перехваченные с помощью API Monitor.

Иллюстрация 2-6. Внутренние вызовы функции ControlClick

При вызове функции PostMessageW первый раз, в неё передаётся параметр WM_LBUTTONDOWN. В результате симулируется нажатие кнопки мыши и её удержание. Во втором вызове передаётся параметр WM_LBUTTONUP, что соответствует отпусканию кнопки мыши.

Функция ControlClick работает ненадежно со свернутыми окнами DirectX. В некоторых случаях щелчок мыши полностью игнорируется. Иногда он отрабатывает не в момент вызова ControlClick, а только после того, как свернутое окно будет восстановлено.

Мы рассмотрели функции AutoIt, которые позволяют симулировать наиболее распространённые действия клавиатуры и мыши в окне игрового приложения. Эти функции делятся на два типа. Первый тип симулирует действия устройства только в активном окне. Второй тип работает как с активными, так и с неактивными или свёрнутыми окнами. Главный недостаток функций второго типа – недостаточная надёжность, поскольку некоторые приложения игнорируют симулируемые ими действия. Поэтому для реализации кликеров рекомендуется использовать функции первого типа.

Пишем скрипт имитации движения мыши на питоне.

Сперва установим «автопилот» командой:

sudo apt-get install python3-autopilot

«Автопилот» — инструмент для тестирования пользовательского интерфейса в ОС Ubuntu, он также может использоваться для задач автоматизации GUI (графический интерфейс пользователя).

После установки автопилота, необходимо в домашней папке (или любой другой папке) создать python-скрипт. Для этого в терминале пишем команду:

nano test.py

Файл также можно создать штатными средствами операционной системы, но в терминале это сделать проще и быстрее.

После нажатия «Enter» будет доступно редактирование файла-скрипта. Теперь можем написать скрипт на Python3 для имитации движения мыши:

from autopilot.input import Mouse
import time
import random
mouse = Mouse.create()
mouse.move(random.randint(0,1000),random.randint(0,1000))
time.sleep(10)
mouse.move(random.randint(0,1000),random.randint(0,1000))

В данном скрипте командой move имитируем движение мыши по координатам X и Y в случайном порядке от 0 до 1000 пикселей, затем через sleep ожидаем 10 секунд и снова имитируем движение мыши.

Для запуска скрипта используем опять же терминал:

python3 test.py

Используя данную команду, вызываем скрипт «test» из домашней папки.

Для остановки скрипта имитации движения мыши просто закрываем терминал.

Понравилась статья? Поделить с друзьями:
  • Как написать скрипт для взлома
  • Как написать скрипт для браузера хром
  • Как написать скрипт для windows простой
  • Как написать скрипт для windows cmd
  • Как написать скрипт для powershell