Приветствую Вас, Странник
Главная » Статьи » Как пользоваться AutoHotkey » Как пользоватся AutoHotkey

Имитация нажатия клавиш и щелчков мыши на AutoHotKey
Этот урок так же покажет, как использовать AutoHotkey для печати текста в окнах приложений и назначать регистровые клавиши и кнопки мыши.
Для отправки сигнала о нажатии клавиши в активное окно используется команда Send(переводится, как отправить). В первом примере, комбинация Win+пробел назначается горкнопкой для ввода фразы "Здрасти, Добрый день!» (убедитесь, что окно, в котором вы хотите увидеть этот текст, открыто и нажмите Win+S)

#space::
Send Здрасти,{Enter}Добрый день!
return

В этом примере все нажатия клавиш отправляются в активное окно в буквальном виде кроме набора символов {Enter} поскольку такой синтаксис эмитирует нажатие клавиши Enter благодаря фигурным скобкам, обрамляющим слово Enter.

В следующем примере показан другой пример часто используемых символов. Чтоб он сработал, откройте сразу два Блокнота.

#space::
Send ^с!{tab}Вставить:^м
return

Строка выше посылает Ctrl+C вместе Alt+Tab сопровожденное строчкой "Вставить" и комбинацией Ctrl+V. Символ "^" обозначает клавишу Ctrl, символ "!" обозначает клавишу ALT , {tab} это кнопка tab. Дальше за место английской "c" используется наша "с" и вместе латинской "v" мы использовали кириллическую "м" поскольку эти клавиши совпадают расположением и не вызывают глюков в автохоткее. Смотри полный список специальных символов и клавиш для команды Send.

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

В примере ниже сокращение "ог» (или любое другое на ваше усмотрение) используется для вывода длинной фразы, например такой "осторожно граната разбегайся, а то каюк, и простите те, кто не успеет, ваша смерть будет не напрасной, я отомщу!". Гор. Сокращение "ог" в примере обрамлено двумя парами двойных кавычек (это обязательное условие для работы скрипта) Важно, скрипт сработает, если только в окне чата игры (или другой программы) после "ог" пропечатать пробел или запятую, которые так же выводятся вместе с текстом. Что вполне логично.
ПРИМЕР
::ог::осторожно граната, разбегайся, а то каюк, простите те, кто не успел, ваша смерть была не напрасной поверьте{!}

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Как использовать AutoHotkey для имитации кликов мышки
В этом уроке мы нарисуем с помощью AutoHotkey домик в стандартной программе MSpaint
Для того чтоб отправить клик мышки в активное окно, необходимо для начала уметь определят координаты X и Y места на экране куда нужно отправить наше событие вызванное нажатием клика мышки. Это делается при помощи специальной программы, включенной в состав AutoHotkey - AutoIt3 Window Spy. И так начнем учиться, работе с этой утилитой, для этого вам потребуется выполнить следующие шаги.

1. Для начала запустите саму AutoIt3 Window Spy из трэя на запущенном скрипте или из меню Пуск -> все программы -> AutoHotkey -> AutoIt3 Window Spy. Окно Window Spy всегда будет находиться поверх остальных запущенных окон эту нужно для удобства работы, что весьма полезно, например, в играх которые, запускаясь разворачиваются на весь экран поверх всех программ.
2. Активизируйте подопытное окошко программы, щелкнув для этого по его заголовку, или используя комбинацию клавиш alt+tab или другим способом.
3. Переместите курсор мыши в ту часть окна, где должно произойти интересующее вас событие с мышью и посмотрите в окно AutoIt3 Window Spy. Запишите координаты показанные в нем ,их видно в строчке On Screen:(на ней отображаются координаты на рабочем столе) и\или из строчки In Active Window: (где отображаются координаты активного окна) в зависимости от того какая область вас интересует на данный момент. На Windows XP можно воспользоваться комбинацией Shift-Alt-Tab чтобы заморозить Window Spy и перейти в него для копирования цифр.
4. Подставите ваши координаты в скрипте после команды MouseClick(команда переводится как МышьЩелчек) через запятую и после обозначения кнопки мыши. Например, как в следующем примере мышка щелкает левой кнопкой в указанные координаты:

Пример:
MouseClick, Left, 30, 20
второй пример записи той же команды с сокращённой командой
MouseClick, L, 30, 20

Разбор полета. MouseClick это команда, используемая для задания щелчков мыши имеющей три параметра прописываемые через запятую. Первый параметр обозначает кнопку мыши(L и Left обозначают левую кнопку, для правой кнопки служит параметр Right или R, Middle или M для средней кнопки с колёсиком, X2 пятая, X1 четвёртая). Второй и третий параметр являются координатами места, где производится щелчок мышки.

Для того чтобы просто переместить мышь не щелкая, применяется команда MouseMove (переводится как МышьДвижение) с указанием начальных и конечных координат.
#space::
MouseMove, 30, 20

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

#space::
MouseClickDrag,L,40,15,111,250
return

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

Скрипт снизу запустит рисовалку Майкрософт и нарисует в нем домик. В нем присутствует важная команда WinWaitActive, которая говорит автохоткею дождаться активации указанного вами окна, чтобы продолжить действия скрипта, это очень часто используемая команда обычно прописывается после команды Run. Теперь вам надо узнать, как определять название той программы, которую нужно дождаться. Для этого применяют программу AutoIt3 Window Spy. Научимся искать в ней название требуемой программы, для этого запустите и активизируйте требуемую программу-пациента и посмотрите в окне AutoIt3 Window Spy строку ahk_class. После ahk_class идет название активной программы. Пропишите эту строку через запятую после команды WinWaitActive и затем добавьте ,, 2 и с новой строки if ErrorLevel затем с новой строки return. Дальше уже можете писать то, что требуется выполнить в этой программе.

#space::
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
return

Другие FAQ по AutoHotKey здесь 

Категория: Как пользоватся AutoHotkey | Добавил: neohonar (06.10.2012)
Просмотров: 41517 | Комментарии: 15
Всего комментариев: 151 2 »
LonelyPsycho написал 19.03.2013 в 10:37
Почему скрипт чертит линии только при очередном нажатии #space???
0
LonelyPsycho написал 19.03.2013 в 10:38
и при этом каждый раз новом окне
0
neohonar написал 19.03.2013 в 18:08
Может вы return прописали после каждой команды MouseClickDrag?
0
Ice написал 27.08.2014 в 16:42
помогите!!! в autohotkey пишу +d:: send -10{shift:5}/18,8{enter}  
для калькулятора (цену ставить удобно) а он вместо 10 процентов отнемает 17.8% что сделать ?? как он считает ? пример вручную 892 - 10% / 18,8 = 42,7 а если через скрипт 892 -10{shift:5}/18,8{enter} = 46,7
0
LonelyPsycho написал 21.03.2013 в 08:59
код точно такой же как в примере
0
neohonar написал 21.03.2013 в 15:08
поставьте тайм-аут вместо двойки 99
помогло?
или попробуйте так:

Код
#space::  
{  
if !winexist("ahk_class MSPaintApp")  
{  
Run, mspaint.exe  
WinWaitActive, ahk_class MSPaintApp,, 2  
if ErrorLevel  
return  
}  
else if winexist("ahk_class MSPaintApp")
{  
WinActivate, ahk_class MSPaintApp  
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  
}  
return
0
GUGASHAR написал 07.05.2013 в 16:33
у меня такой к вам вопрос: можно написать скрипт на повторение клика клавиши 1 ?дело вот в чем ,в игре ворлд оф танкс если знаете есть огнетушитель за кредиты ,который нужно активировать в ручную нажатием клавиши,но пока в пылу боя заметишь и нажмешь можно уже раза 3 прогореть,можно ли прописать скрипт на имитацию постоянного нажимания на клавишу 1 ,чтобы он сработал автоматически?
0
GUGASHAR написал 07.05.2013 в 16:38
если не сложно напишите скрипт буду очень благодарен
0
neohonar написал 30.07.2013 в 17:36
у меня нет танчиков
0
Eithery написал 06.10.2013 в 10:51
Здравствуйте... у меня возник вопрос по поводу переназначения клавиш:
Как определить боковую клавишу мыши?
0
neohonar написал 12.10.2013 в 03:11
Дополнительные клавиши мыши обозначаются XButton1 и XButton2
Я предлагаю вам написать небольшой сценарий, который делает что-то простое и назначит ему одну из этих кнопок. Затем запустите сценарий и нажмите на кнопки, чтобы увидеть, какая кнопка, реагирует.
0
PUMAZAVR написал 10.04.2014 в 13:49
подскажи пожалуста какой командой в  autohotkey отключить правую клавишу мышки ну или чтобы срабатывала как левая?
0
zodiac написал 29.10.2014 в 15:28
RButton::send {lButton}
Команда заставляет ПКМ работать как ЛКМ.
Команда не сложная, по этому кнопка будет срабатывать только на нажатие, без зажатия. Т.е. если попробовать перетащить какой-либо значек на рабочем столе, то произвести это действие ПКМ не выйдет.
0
1-10 11-12
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
eXTReMe Tracker
Каталог-Молдова - Ranker, Statistics