Перейти на главную страничку сайта (список статей, файлы для скачивания)
Проект перевода документации AutoHotkey: перечень переведённых статей и статей в работе.
Оригинал статьи в AutoHotkey.chm: "MouseClickDrag", в содержании - "Mouse Control" - "MouseClickDrag", v1.0.46.03.
Ник переводчика: YMP.
Настоящее имя переводчика: Юрий Попов.
Перетаскивание мышью. Нажимает указанную кнопку в месте, заданном начальными координатами, и, удерживая её, перемещает мышь в заданное конечными координатами место и там отпускает кнопку.
MouseClickDrag, WhichButton, X1, Y1, X2, Y2 [, Speed, R]
WhichButton | Имя кнопки. Возможные значения: Left (левая), Right (правая), Middle (средняя), X1 (четвёртая), X2 (пятая). У первых трёх вместо полного имени можно указывать только первую букву (L, R, M), четвёртая и пятая поддерживаются для Windows 2000/XP и более поздних. Чтобы автоматически компенсировать возможную взаимозамену пользователем левой и правой кнопок мыши через панель управления операционной системы, вместо MouseClickDrag нужно использовать команду Click. |
X1, Y1 | Начальные координаты (могут быть выражениями). Мышь будет перемещена в эту точку перед тем как будет нажата кнопка. Координаты считаются относительно активного окна, если только это не было изменено командой CoordMode. Если опущены, используются текущие координаты курсора. |
X2, Y2 | Конечные координаты (могут быть выражениями). В этой точке кнопка будет отпущена. Координаты считаются относительно активного окна, если только это не было изменено командой CoordMode. |
Speed | Скорость движения мыши (может быть выражением). Возможные значения: от 0 (быстро) до 100 (медленно). Если 0, мышь перемещается мгновенно. Если опущен, используется скорость по умолчанию 2, либо скорость, установленная командой SetDefaultMouseSpeed. Параметр Speed игнорируется для режимов SendInput и SendPlay, они перемещают мышь мгновенно (хотя команда SetMouseDelay имеет параметр, влияющий на SendPlay). Чтобы движения мыши выглядели медленными (например, для скрипта, выполняющего демонстрацию для аудитории) используйте SendEvent {Click 100, 200} или SendMode Event (возможно, в сочетании с BlockInput). |
R | Относительность координат. Возможное значение: R. Если задан, начальные координаты трактуются как смещения от текущего положения курсора, а конечные - как смещения от начальных. Отрицательные значения координат задают смещение влево (ось Х) и вверх (ось Y). Пример ниже смещает курсор на 5 пикселов вправо и вниз, нажимает левую кнопку и, удерживая её, двигает курсор на 10 пикселов вправо и вниз, где отпускает кнопку: MouseClickDrag, Left, 5, 5, 10, 10, , R |
Эта команда использует метод посылки, задаваемый командой SendMode.
Перетаскивание также можно осуществлять различными вариантами команды Send. Это более гибкий метод, т.к. режим посылки может быть задан через имя команды. Например:
SendEvent {Click 6, 52, down}{click 45, 52, up}
Другое преимущество указанного метода состоит в том, что в отличие от команды MouseClickDrag он автоматически компенсирует возможную взаимозамену пользователем левой и правой кнопок через панель управления операционной системы.
Режим посылки SendPlay может успешно генерировать события мыши в большем числе игр, чем другие режимы. Однако перетаскивание в режиме SendPlay может не работать в контролах RichEdit (и, возможно, в других), таких как в WordPad и Metapad.
Некоторые приложения и игры затрудняются отслеживать движения мыши, если она движется очень быстро. В этом случае можно использовать команду SetDefaultMouseSpeed для замедления скорости перемещения мыши (но только для режима SendEvent).
Команда BlockInput может использоваться для предотвращения помех генерируемым событиям мыши со стороны реальных движений и щелчков мыши, производимых в это время пользователем. Однако это не требуется для режимов SendInput и SendPlay, т.к. в этих режимах действия пользователя запоминаются и выполняются позже.
После каждого нажатия и каждого отпускания кнопки мыши автоматически делается пауза (за исключением режима SendInput). Эта пауза также присутствует после каждого шага при движении мыши во время перетаскивания. Используйте команду SetMouseDelay для изменения длины этой паузы.
MouseClickDrag, left, 0, 200, 600, 400 ; Код ниже открывает MS Paint и рисует в нём домик: Run, mspaint.exe WinWaitActive, ahk_class MSPaintApp,, 2 if ErrorLevel return MouseClickDrag, L, 150, 250, 150, 150 MouseClickDrag, L, 150, 150, 200, 100 MouseClickDrag, L, 200, 100, 250, 150 MouseClickDrag, L, 250, 150, 150, 150 MouseClickDrag, L, 150, 150, 250, 250 MouseClickDrag, L, 250, 250, 250, 150 MouseClickDrag, L, 250, 150, 150, 250 MouseClickDrag, L, 150, 250, 250, 250
Перейти на главную страничку сайта (список статей, файлы для скачивания)
© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.