Нужна помощь в написании скрипта? Close

Вы можете задать любой вопрос по программе Autohotkey в нашей группе Вконтакте. Если решение требует более высокой квалификации- можно обратиться непосредственно ко мне.

ВконтактеГруппа Вконтакте Электронная почтаЭлектронная почта Личная страницаСимаков Яков ВК
home icon Все разделы
comunity icon Нужна помощь?

Переназначение клавишь и кнопок мыши -Autohotkey

Встроенное переназначение [v1.0.40+]

Синтаксис для функции встроенного переназначения выглядит следующим образом:

ИсходнаяКлавиша::КонечнаяКлавиша

Например, скрипт, состоящий только из следующий строчки, мог бы использовать клавишу "a" в качестве клавиши "b":

a::b

Как видно из примера, сама клавиша "b" не изменяется. Клавиша "b" будет продолжать посылаться нажатием клавиши "b" до тех пор, пока вы не произведете ее переназначение на какую-нибудь другую клавишу, как это показано в следующем примере:

a::b b::a

В этих примерах используются строчные буквы, так как это имеет существенное значение. Например, в следующей строчке будет выводиться заглавная буква "В" в том случае, когда вы печатаете либо "а" либо "А":

a::B

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

MButton::Shift ; Использует среднюю кнопку мыши в качестве клавиши Shift. XButton1::LButton ; Использует четвертую кнопку мыши в качестве левой кнопки мыши. RAlt::RButton ; Использует левую клавишу Alt в качестве правой кнопки мыши.

Ниже приведено несколько практических примеров переназначения:

Capslock::Ctrl ; Клавиша Capslock становится клавишей Control. Xbutton1::^Lbutton ; Четвертая кнопка мыши производит ;щелчок левой кнопкой мыши при нажатой клавише Control. Ralt::AppsKey ; Правая клавиша Alt становится клавишей Apps ;(которая является клавишей, открывающей контекстное меню). RCtrl::Rwin ; Использует правую клавишу Control в качестве правой клавиши Windows. Ctrl::Alt ; Обе клавиши Control становятся клавишей Alt. См. ниже раздел об Alt-Tab ^x::^c ; Клавиша Control-X имитирует Control-C. ;Также ^!x имитирует ^!c, и ^+x имитирует ^+c и т.д. RWin::Return ; Заменяет правую клавишу Windows простым нажатием return.

Вы можете попробовать скопировать эти примеры в новый текстовой файл, например в "Remap.ahk", и затем запустить его.

Полный список названий клавиш и кнопок мыши см. в статье "Список клавиш и кнопок мыши/джойстика".

Комментарии

Переназначение клавиши или кнопки мыши работает в следующих ситуациях:

Когда скрипт запускается, каждое переназначение преобразуется в пару горячих клавиш. Например, скрипт, содержащий a::b, дает тот же результат, что и скрипт, содержащий следующие две горячие клавиши:

*a:: SetKeyDelay -1 ;Если переназначенной клавишей является кнопка мышки, вместо SetKeyDelay используется SetMouseDelay. Send{Blind}{b down} return *a up:: SetKeyDelay -1 Send {Blind}{b up} return

Однако эти горячие клавиши варьируются в зависимости от следующих обстоятельств:

  1. Когда исходной клавишей является клавиша LCtrl, а конечной клавишей - клавиша Alt, строчка Send {Blind}{Lalt down} заменяется на Send {Blind}{LCtrl up}{Lalt down}. То же самое происходит в случае, если исходной клавишей является RCtrl, за исключением того, что используется {RCtrl up}.
  2. Когда клавиша, будучи переназначенной, становится кнопкой мыши (например, RCtrl::RButton), первая горячая клавиша заменяется на следующее, что предотвращает возможность автоповторов клавиатуры от возникающих повторяющихся кликов мыши:
    *RCtrl:: SetMouseDelay -1 if not GetKeyState("RButton") ; т.е. правая кнопка мыши еще не нажата. Send{Blind}{RButton down} return

С того момента, когда переназначение преобразовалось в горячие клавиши, как описано выше, их активизирует команда Suspend. Подобным образом команда Hotkey может блокировать или модифицировать переназначение. Например, следующие две команды будут блокировать переназначение a::b.

Hotkey, *a, off Hotkey, *a up, off

Несмотря на то, что переназначенная клавиша может запускать обычную горячую клавишу, она не может запускать горячую клавишу мыши или перехваченную горячую клавишу (см. описание команды #UseHook). Например, если задано переназначение a::b, нажатие Ctrl-Alt-A будет запускать горячую клавишу ^!b, если это не перехваченная горячая клавиша. Если это перехваченная горячая клавиша, вы можете определить ^!a как горячую клавишу в том случае, если вы хотите, чтобы клавиши Ctrl-Alt-A выполняли то же действие, что и Ctrl-Alt-B. Например:

a::b ^!a:: ^!b:: ToolTip Вы нажали %A_ThisHotkey%. Return

Проблемы Alt-Tab: в случае, если какая-либо клавиша или кнопка мыши переназначена в Alt, эта клавиша, возможно, не будет работать в Alt-Tab должным образом. Единственным искусственным приемом является добавление горячей клавиши *Tab::Send {Blind}{Tab} - но нужно помнить, что, вероятно, это будет препятствием при реальном использовании клавиши Alt в Alt-Tab. Следовательно, это следует использовать только тогда, когда вы имитируете нажатие Alt-Tab исключительно с помощью переназначенных клавиш и/или с помощью приемов, описанных в статье "Горячие клавиши для мыши, джойстика и клавиатуры".

В добавление к списку клавиш и кнопок мыши в статье "Список клавиш и кнопок мыши/джойстика", исходная клавиша может также быть виртуальной клавишей (VKnn) или скан-кодом (SCnnn), как описано в той же статье. То же самое верно и для конечной клавиши, за исключением того, что она может при желании задавать скан-код после виртуальной клавиши. Например, sc01e::vk42sc030 является эквивалентом a::b в большинстве клавиатурных раскладок.

Для того, чтобы блокировать клавишу, а не производить переназначение, сделайте ее горячей клавишей просто при помощи return. Например, F1::return будет блокировать клавишу F1.

Следующие клавиши не поддерживаются методом встроенного переназначения:

Кроме того, клавиатура может использоваться для перемещения курсора мыши. Например, см. скрипт "Using Keyboard Numpad as a Mouse" в статье "Script Showcase" в оригинале справки.

Автор перевода: semechka
Настоящее имя переводчика: Светлана Семёнова
Источник: http://www.script-coding.com/AutoHotkey/Remapping.html
Под редакцией ahk-wiki.ru от 21.08.19