Список клавиш и кнопок мыши/джойстика
Мышь (работает только с Windows NT/2000/XP)
LButton — левая кнопка мыши
RButton — правая кнопка мыши
MButton — средняя кнопка мыши (или колесо)
WheelDown — поворот колеса мыши «вниз»
WheelUp — поворот колеса мыши «вверх»
Поддерживается только Windows 2000/XP:
XButton1 — четвертая кнопка мыши, боковая
XButton2 — пятая кнопка мыши, боковая
Клавиатура
Примечание: названия буквенных и цифровых клавиш точно такие же, как и сами символы этих клавиш. То есть, клавиша «b» записывается как b, а клавиша «5» как 5.
Enter (или Return)
Backspace (или BS)
NumpadEnter — клавиша «Numpad-Enter»
Следующие названия клавиш используются, когда Numlock выключен:
NumpadClear — та же кнопка, что и Numpad5 на клавиатуре
Эти названия клавиш используются при включенном Numlock’e:
С F1 по F24 — двенадцать или более функциональных клавиш, на большинстве клавиатур представлены в самом верхнем ряду.
AppsKey — клавиша, вызывающая контекстное меню файла/программы, как при правом клике мышкой.
LWin — левая клавиша «Windows»
RWin — правая клавиша «Windows»
Control (или Ctrl)
Примечание: в большинстве случаев работа со следующими шестью клавишами не поддерживается под Windows 95/98/Me. Используйте в этом случае вариант их записи, приведенный выше, вместо следующего:
LControl (или LCtrl) — левый «Сontrol»
RControl (или RCtrl) — правый «Сontrol»
LAlt — левый «Alt»
RAlt — правый «Alt». Примечание: если на вашей клавиатуре вместо клавиши RAlt сделана клавиша AltGr, вы можете использовать следующую запись данной клавиши: ! Также заметим, что клавишу AltGr можно записать как сочетание клавиш «LControl & RAlt::».
Help — довольно редкая клавиша, присутствует далеко не на всех клавиатурах. И работает совсем не как F1.
Sleep — предупреждаем, что клавиша «Sleep» на некоторых клавиатурах не работает под этой записью.
Клавиши расширенных функций Мультимедийных и Интернет-клавиатур:
Запись вида SCnnn, где nnn — это сканкод клавиши, позволяет нам работать с остальными клавишами, не упоминавшимися выше. Подробнее об этом — см. ниже.
Возможна запись VKnn, где nn является шестнадцатиричным виртуальным кодом клавиши. Несмотря на то, что этот редко используемый метод поддерживается всеми версиями программы, только с версии 1.0.38.02 и выше для некоторых типов горячих клавиш реализовано предотвращение отслеживания их функцией «keyboard hook» (обработчик клавиатурных прерываний). Например, следующая комбинация клавиш не использует обработчик клавиатурных прерываний (keyboard hook), и как следствие может быть запущена нажатием как клавиши Home, так и NumpadHome:
Джойстик
Joy1 — Joy32: кнопки джойстика. Для удобства определения номеров кнопок вашего джойстика был создан специальный тест-скрипт (см. ссылку в оригинале статьи). Обратите внимание, что такие префиксы, как ^ (control) и + (shift) здесь не поддерживаются (тем не менее, команда GetKeyState может использоваться). Также обратите внимание, что нажатия клавиш джойстика всегда обращены напрямую в активное окно, поддерживающее приём таких сигналов.
Несмотря на то, что следующие управляющие элементы джойстика не могут использоваться как горячие клавиши, их можно использовать при помощи команды GetKeyState:
JoyX, JoyY, и JoyZ: где X (горизонтальная), Y (вертикальная), и Z (высота/глубина) — оси координат джойстика.
JoyR: руль джойстика или 4-ая ось джойстика.
JoyU и JoyV: 5-ая и 6-ая оси джойстика.
JoyPOV: the point-of-view (hat) control (POV control, «шляпка» или «переключатель видов»; например, вид глазами игрока).
JoyName: название джойстика.
JoyButtons: количество кнопок, поддерживаемых джойстиком (не всегда точное).
JoyAxes: количество направлений, поддерживаемых джойстиком.
JoyInfo: генерирует строку, состоящую из нуля или более знаков, иллюстрирующих возможности джойстика: Z (имеется Z направление), R (имеется R направление), U (имеется U направление), V (имеется V направление), P (имеется POV control), D (POV control имеет ограниченное количество дискретных/промежуточных настроек), C (POV control передает непрерывные/точные данные). Пример строки: ZRUVPD.
Несколько джойстиков: если вы используете несколько джойстиков одновременно, то для более точной адресации команды используйте при записи номер джойстика перед именем клавиши джойстика. Например запись 2joy1 будет обозначать первую кнопку второго джойстика.
Примечание: если у вас возникли проблемы с определением скриптами вашего джойстика, вы можете попробовать изменить номер джойстика с 1 на что-нибудь другое, даже несмотря на то, что к компьютеру у вас подключен всего один. Неизвестно, по каким мистическим причинам, но иногда это вместе с использованием нашего тестового скрипта даёт положительный результат.
Использование джойстика как мыши: специальный скрипт превращает ваш джойстик в мышь (см. ссылку в оригинале статьи).
Дистанционные пульты управления
Получение сигналов от дистанционных пультов управления с помощью специального клиентского скрипта WinLIRC — см. ссылку в оригинале статьи.
Специальные клавиши
Если ваши клавиатура или мышь имеют клавиши, не перечисленные выше, вы всё равно имеете возможность использовать их в качестве горячих клавиш, используя следующий метод (необходимы Windows NT/2000/XP или выше):
- Вначале убедитесь, что у вас проинсталлирован обработчик клавиатурных прерываний (keyboard hook) — #InstallKeybdHook.
- Запускаем этот скрипт, и затем двойным кликом по его иконке в системном трее открываем его главное окно.
- Затем нажимаем ту самую клавишу, которую пытаемся определить.
- Далее открываем меню окошка скрипта «View — Key history and script info» и прокручиваем записи до самого низа.
- Где-то внизу этого лога должны быть записи по нажатию-отпусканию нашей искомой клавиши. Сам лог обновляется нажатием клавиши F5. Примечание: если после нажатия искомой клавиши никаких записей в логе не появилось, значит такая клавиша не распознаётся данной программой. В этом случае вы не можете использовать данную клавишу как горячую, т.к. либо драйвер вашей клавиатуры, либо сама её «железная» составляющая даёт сигнал слишком низкого уровня, недоступного для AutoHotkey. В случае со «злобными» драйверами, вы можете попробовать либо перенастроить сами «родные» драйвера, либо заменить их на другие, более дружественые, например такие, как дефолтные клавиатурные драйвера Windows.
- Если ваша клавиша успешно определилась, обратите внимание на трехзначное шестнадцатеричное число во второй колонке лога (например, 159).
- Теперь, чтобы использовать данную клавишу как горячую, следуйте данному примеру:
Как альтернативный способ или в добавление к описанному выше: для переназначения какой-либо клавиши в нашу «искомую» клавишу, используйте запись вида #c::Send . Замените 159 на индекс вашей клавиши, определённый вышеописанным методом. При необходимости замените буквы FF на те, что отображены в первой колонке лога «View-Key history» (код вашей виртуальной клавиши).
Hotkeys -Autohotkey
Горячие клавиши иногда называют «быстрыми клавишами» из-за их способности без труда активировать операции (например, запускать программу или клавиатурную макрокоманду). В примере, приведенном ниже, горячая клавиша Win+Т настроена на то, чтобы запускать Блокнот (Notepad). Знак решетки [#] обозначает клавишу Windows:
В последней строке команда return служит для того, чтобы завершить работу горячей клавиши. Однако, если горячей клавише нужно выполнить только одну строку, эту строку можно поместить справа от двойного двоеточия, в то время как команда return будет подразумеваться:
Чтобы с горячей клавишей использовать несколько модификаторов, необходимо поместить их в строке друг за другом. В следующем примере для обозначения Control+Alt используются символы ^!:
Чтобы задавать горячие клавиши, вы можете использовать следующие символы:
Символ | Описание | |
---|---|---|
# | Win (клавиша Windows) | |
! | Alt | |
^ | Control | |
+ | Shift | |
& | Амперсанд ставится между любыми двумя клавишами или кнопками мыши для того, чтобы объединить их в специальную горячую клавишу. Дополнительную информацию см. ниже. | |
Использует правую клавишу пары. | ||
! | AltGr (alternate graving). Если у вас на клавиатуре вместо правой клавиши Alt находится клавиша AltGr, данное сочетание символов как правило означает AltGr. Например: | |
* | Групповой символ: запускает горячую клавишу, даже если удерживаются дополнительные модификаторы. Обычно этот символ используется в сочетании с переназначением клавиш или кнопок. Например: | В момент запуска обработчика этой горячей клавиши нельзя подавить системную обработку этого действия. В обоих примерах, приведенных ниже, щелчок кнопки мыши, сделанный пользователем, будет послан активному окну, чего не произошло бы при обработке иных горячих клавиш, о которых идёт речь в данной статье: RButton::MsgBox Вы щелкнули правой кнопкой мыши. RButton & C::MsgBox Вы нажали клавишу C, удерживая правую кнопку мыши. Примечание: специальные горячие клавиши, заменяющие alt-tab, всегда игнорируют эту настройку |
$ | Префикс $ обычно необходим, если в скрипте используется команда Send для имитации нажатий клавиш, входящих в состав самой горячей клавиши, иначе такая горячая клавиша может запустить сама себя. Действие префикса $ различается в разных операционных системах. В NT4/2k/XP или более поздних версиях Windows: префикс $ использует обработчик клавиатурных прерываний (keyboard hook) для реализации этой горячей клавиши, что мешает команде Send запустить горячую клавишу повторно. Префикс $ является эквивалентом использования команды #UseHook в тексте скрипта где-нибудь выше определения этой горячей клавиши. | |
UP | Слово UP может следовать вслед за именем горячей клавиши. В этом случае горячая клавиша сработает при ее отпускании, а не при нажатии. В следующем примере нажатие левой клавиши Windows (LWin) подменяется на нажатие левой клавиши Control (LControl): Данная возможность не работает для кнопок джойстика. |
(Чтобы ознакомиться с полным списком названий клавиш клавиатуры и кнопок мыши/джойстика, см. соответствующий раздел.)
Метки горячих клавиш можно использовать как обычные метки: вы можете использовать команды Gosub/Goto и задать несколько меток горячих клавиш, чтобы выполнить одну и ту же процедуру. Например:
Можно запретить клавишу или комбинацию клавиш для всей системы, если заставить ее бездействовать. В следующем примере будет запрещена правая клавиша Windows:
Дополнительные возможности горячих клавиш:
Вы можете задать произвольную комбинацию из двух клавиш (кроме кнопок джойстика), если поставите между ними символ «&». В следующем примере для того, чтобы запустить горячую клавишу, удерживая Numpad0, нажмите вторую клавишу:
В приведенном примере клавиша Numpad0 становится префиксной клавишей. Для префиксных клавиш также можно задать выполнение собственных операций, как показано в следующем примере, однако эти операции будут запущены только после того, как такая клавиша уже отпущена, и если в тот момент, когда вы начали ее нажимать, не были нажаты другие клавиши:
Прокрутка колесика мыши назад и вперед также может стать горячей клавишей, как в этих примерах:
Еще одной функцией является возможность задавать клавишам Numlock, Capslock, и Scrolllock режимы AlwaysOn или AlwaysOff. Например:
Встроенные горячие клавиши Windows, такие, как Win-E (#e) и Win-R (#r), можно по отдельности отменить, просто задав им выполнение какой-нибудь операции в скрипте. Чтобы получить дополнительную информацию, см. соответствующий раздел.
Замена для Alt-Tab: AltTab и ShiftAltTab — специальные команды, которые распознаются только тогда, когда используются с горячими клавишами. Они позволяют вам создавать альтернативные пути для переключения между программами. Например, если следующий скрипт активен, удерживайте левую клавишу Alt нажатой и вращайте колесико мыши в любом направлении, чтобы продвигаться взад-вперед по меню:
Подобным образом можно полностью заменить Alt-Tab колесиком мыши. При нажатии кнопки появится меню, навигация по которому будет осуществляться вращением колесика:
Чтобы без труда переключаться между программами правой рукой на клавиатуре, попытайтесь сделать следующее:
AltTab: если меню отображено на экране, проходит по нему вперед. В противном случае, если горячая клавиша представляет собой &-комбинацию из двух клавиш, вызывает меню. В остальных случаях не делает ничего.
ShiftAltTab: те же действия, что и в предыдущем пункте, только проходит по меню назад.
AltTabAndMenu: если меню отображено на экране, проходит по нему вперед. В противном случае, вызывает меню.
AltTabMenuDismiss: закрывает меню Alt-tab.
Чтобы закрыть меню Alt-Tab, не активизируя выбранное окно, используйте скрипты, приведенные ниже:
Соглсно первой строке скрипта нажатие Ctrl + CapsLock приводит к появлению меню Alt-Tab. Поскольку это меню было вызвано не «настоящим» нажатием Alt+Tab, а командой скрипта, его невозможно убрать просто любым щелчком мыши или нажатием любой клавиши. Объясняется это тем, что меню «принадлежит» другому процессу (порожденному программой AutoHotkey). Вот здесь и может оказаться полезным код обработчика нажатия средней кнопки мыши (!MButton ::), который убирает это меню.
Здесь обработчик нажатия средней кнопки мыши убирает меню Alt-Tab, вызванную «настоящим» нажатием Alt+Tab. Безусловно, в данной ситуации это меню можно убрать и без такого обработчика (например, тем же самым нажатием средней кнопки мыши). Однако, при наличии обработчика щелчок средней кнопки мыши получает и обрабатывает исключительно программа AutoHotkey, а не то окно, которое в этот момент находится под указателем мыши (для этого окна щелчка существовать не будет, что может быть по каким-то причинам удобно для пользователя).
В настоящее время все операции Alt-Tab должны быть присвоены непосредственно горячим клавишам, как показано в примерах выше (т.е. их нельзя использовать как самостоятельные команды). Обратите внимание, что присутствие меню Alt-Tab на экране может быть обнаружено при помощи IfWinExist ahk_class #32771.
Чтобы получить дальнейшее представление о том, как с наибольшей эффективностью использовать вашу клавиатуру, мышь и джойстик, см. соответствующие разделы.
Некоторые замечания по горячим клавишам
Для каждой клавиши на цифровой клавиатуре в зависимости от состояния клавиши Numlock можно определить запуск двух различных процедур горячих клавиш. Или запуск одной и той же процедуры вне зависимости от режима клавиши Numlock. Например:
) хоть раз будет использована как префикс, все клавиши всегда будут посылаться в активное окно. Например, в обеих из приведенных ниже горячих клавишах активное окно получит все правые клики, даже если только в одном определении есть тильда:
RButton & LButton::MsgBox Вы нажали левую клавишу мыши, удерживая при этом правую в нажатом положении. RButton & WheelUp::MsgBox Вы повернули вперед колесо мыши, удерживая при этом правую клавишу в нажатом положении.
Команда Suspend может временно запретить все горячие клавиши, кроме тех, которые вы исключили.
Посредством команды Hotkey можно создавать горячие клавиши в процессе исполнения скрипта. Также команда Hotkey может модифицировать, запрещать или разрешать отдельные горячие клавиши скрипта.
Горячие клавиши джойстика в настоящее время не поддерживают модификаторы, такие, как ^ (Control) и # (Win). Однако, чтобы воспроизвести этот эффект, вы можете использовать команду GetKeyState, как показано в примере, приведенном ниже:
Программа является псевдо-многопоточной, что позволяет запускать новую горячую клавишу, даже если процедура предыдущей горячей клавиши еще до конца не отработала. Например, можно запустить другие горячие клавиши, в то время как текущая горячая клавиша выводит на экран MsgBox.