Перейти на главную страничку сайта (список статей, файлы для скачивания)

ФОРУМ (здесь можно обсудить эту статью, а также саму программу AutoHotkey и проблемы её использования)

Проект перевода документации AutoHotkey: перечень переведённых статей и статей в работе.

Оригинал статьи в AutoHotkey.chm: "MouseMove", в содержании - "Mouse Control" - "MouseMove", v1.0.46.03.

Ник переводчика: YMP.

Настоящее имя переводчика: Юрий Попов.

MouseMove

Двигает курсор мыши.

MouseMove, X, Y [, Speed, R]

Параметры

X, Y Координаты места, куда нужно переместить курсор (могут быть выражениями). Координаты считаются относительно активного окна, если только это не было изменено командой CoordMode.
Speed Скорость движения мыши (может быть выражением). Возможные значения: от 0 (быстро) до 100 (медленно). Если 0, мышь перемещается мгновенно. Если опущен, используется скорость по умолчанию 2, либо скорость, установленная командой SetDefaultMouseSpeed.

Параметр Speed игнорируется для режимов SendInput и SendPlay, они перемещают мышь мгновенно (хотя команда SetMouseDelay имеет параметр, влияющий на SendPlay). Чтобы движения мыши выглядели медленными (например, для скрипта, выполняющего демонстрацию для аудитории) используйте SendEvent {Click 100, 200} или SendMode Event (возможно, в сочетании с BlockInput).
R Относительность координат. Возможное значение: R. Если задан, координаты трактуются как смещения от текущего положения курсора. Отрицательные значения координат задают смещение влево (ось Х) и вверх (ось Y).

Примечания

Команда использует метод посылки, задаваемый командой SendMode.

Режим посылки SendPlay может успешно генерировать события мыши в большем числе игр, чем другие режимы.

Некоторые приложения и игры затрудняются отслеживать движения мыши, если она движется очень быстро. В этом случае можно использовать параметр Speed или команду SetDefaultMouseSpeed для замедления скорости перемещения мыши (но только для режима SendEvent).

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

После каждого движения мыши автоматически делается пауза (за исключением режима SendInput). Используйте команду SetMouseDelay для изменения длины этой паузы.

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

DllCall("SetCursorPos", int, 100, int, 400)
; Первое число - координата Х, второе - Y (относительно всего экрана).

Примеры

; Передвинуть курсор в новую позицию:
MouseMove, 200, 100

; Переместить мышь медленно (скорость 50 вместо 2 по умолчанию) на 20 пикселов вправо
; и 30 вниз от текущего положения.
MouseMove, 20, 30, 50, R

Перейти на главную страничку сайта (список статей, файлы для скачивания)

© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.