Вопрос или проблема
Мне нужно разместить объекты на карте. Их много, но они распределены равномерно (зигзагом).
Мне нужен “автокликер”, который может многократно:
- кликать
- перемещать мышь на +5 пикселей по оси Y
- кликать
- перемещать мышь на +3 пикселя по оси X и -5 по оси Y
- кликать
- повторять n раз
Он должен быть с открытым исходным кодом или бесплатным с “чистым” установщиком.
Большинство автокликеров, которые я видел, используют абсолютные позиции на экране, мне это не нужно.
Если вы можете предложить более сложную программу для макросов, это нормально (если вышеуказанные требования выполняются).
Я пробовал Auto Mouse Clicker, Move Mouse, MouseBot, AutoMouser и смотрел скриншоты некоторых других.
Спасибо.
На Microsoft Windows вы можете использовать AutoHotkey (бесплатно, с открытым исходным кодом), который предоставляет:
- функцию MouseGetPos для получения текущей позиции указателя мыши.
- MouseMove для перемещения указателя мыши.
- MouseClick
Вы можете попробовать автокликер и автоперемещатель мыши, подробности можно найти на сайте Kaizen-apps.
Ответ или решение
Конечно, решим вашу задачу с использованием AutoHotkey, который является бесплатным и открытым исходным кодом инструментом для автоматизации задач в среде Microsoft Windows. Это программное обеспечение идеально подходит для создания скриптов, способных выполнять сложные задачи управления мышью и клавиатурными вводами. Рассмотрим, как это сделать с использованием относительных координат движения мыши.
Теория
AutoHotkey предоставляет ряд команд, которые могут идеально соответствовать вашим требованиям. Основные функции, которые мы будем использовать, это:
-
MouseGetPos: Эта функция позволяет получить текущую позицию курсора мыши. Мы используем её для установки начальной точки отсчёта.
-
MouseMove: С помощью этой функции мы будем перемещать курсор на относительные координаты относительно текущей позиции. Этот метод позволяет избежать зависимости от абсолютных позиций на экране, что значительно повышает адаптивность скрипта.
-
MouseClick: Эта функция позволяет симулировать клик левой кнопкой мыши в текущей позиции курсора.
Эти команды позволят вам создавать сценарий, который способен воспроизводить необходимую последовательность движений и кликов мышкой.
Пример
Вот пример скрипта, который демонстрирует, как можно реализовать алгоритм с использованием AutoHotkey:
loop_parse: ; Этикетка для начала выполнения цикла
Loop, 10 ; Замените 10 на количество повторений, которое вам нужно
{
; Получаем начальную позицию мыши
MouseGetPos, xPos, yPos
; Первый клик
MouseClick, left, xPos, yPos
Sleep, 100 ; Пауза на 100 миллисекунд между кликами
; Двигаем мышь на +5 по оси Y
MouseMove, 0, 5, 0, R
MouseClick, left
Sleep, 100
; Двигаем мышь на +3 по оси X и -5 по оси Y
MouseMove, 3, -5, 0, R
MouseClick, left
Sleep, 100
}
return
; Горячая клавиша для начала цикла
^r:: ; Ctrl + R для запуска
gosub, loop_parse
return
; Горячая клавиша для остановки выполнения скрипта
^s:: ; Ctrl + S для остановки
ExitApp
return
Применение
-
Скачайте и установите AutoHotkey со официального сайта.
-
Создайте текстовый файл с расширением
.ahk
и вставьте в него пример скрипта. Отрегулируйте количество повторенийLoop, 10
на нужное вам количество итераций, напримерLoop, n
, гдеn
— ваш необходимый параметр. -
Сохраните файл и дважды щелкните по нему. AutoHotkey запустит скрипт.
-
Используйте горячие клавиши Ctrl + R для запуска цикла и Ctrl + S для остановки выполнения скрипта.
Этот скрипт прост в использовании и модификации. Вы можете адаптировать его под свои нужды, изменяя параметры движения мыши и добавляя более сложные функции, если потребуется.
Экспертные советы
-
При создании автоматизации интерфейсов пользователи должны учитывать возможность изменения разрешения экрана, чтобы программа оставалась эффективной и надежной.
-
Если работа программы требует синхронизации по времени, например, ожидание загрузки графических объектов, используйте команду
Sleep
для добавления временных задержек. -
Убедитесь, что ваша система настроена для выполнения непроверенных скриптов и что антивирусная программа не блокирует исполнение скриптов.
Эта концепция и использование инструментов, таких как AutoHotkey, значительно облегчает выполнение однотипных задач и может быть адаптировано для решения различных задач автоматизации, предоставляя пользователям большую гибкость и контроль над их рабочими процессами.