Перейти на главную страничку сайта (список статей, файлы для скачивания)
Проект перевода документации AutoHotkey: перечень переведённых статей и статей в работе.
Оригинал статьи в AutoHotkey.chm: "Remapping Keys and Buttons", в содержании "Remapping keys and buttons".
Ник переводчика: semechka.
Настоящее имя переводчика: Светлана Семёнова, г.Реутов Московской обл.
Примечание: нижеописанная возможность не поддерживается в Windows95/98/Me или для джойстиков. Для того, чтобы осуществить переназначение в Windows 9x, см. последний раздел данной статьи. Для того чтобы осуществить переназначение для джойстиков, см. ссылку в оригинале данной статьи.
Синтаксис для функции встроенного переназначения выглядит следующим образом:
ИсходнаяКлавиша::КонечнаяКлавиша
Например, скрипт, состоящий только из следующий строчки, мог бы использовать клавишу "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", и затем запустить его.
Полный список названий клавиш и кнопок мыши см. в статье "Список клавиш и кнопок мыши/джойстика".
Переназначение клавиши или кнопки мыши работает в следующих ситуациях:
b::a ; Имитирует Control-A, если нажать на Control-B.
Когда скрипт запускается, каждое переназначение преобразуется в пару горячих клавиш. Например, скрипт, содержащий a::b, дает тот же результат, что и скрипт, содержащий следующие две горячие клавиши:
*a:: SetKeyDelay -1 ;Если переназначенной клавишей является кнопка мышки, вместо SetKeyDelay используется SetMouseDelay. Send{Blind}{b down} return *a up:: SetKeyDelay -1 Send {Blind}{b up} return
Однако эти горячие клавиши варьируются в зависимости от следующих обстоятельств:
*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" в оригинале справки.
Рекомендованным методом является использование Send и KeyWait. Например, следующая горячая клавиша делает "A" клавишей "стрелка влево":
a:: Send {Left down} ; Нажать клавишу "стрелка влево". KeyWait a ; Подождать, пока пользователь отпустит клавишу. Send {Left up} ; Отпустить клавишу "стрелка влево". return
Перейти на главную страничку сайта (список статей, файлы для скачивания)
© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.