Использование автоматической горячей клавиши для замены Ctrl & Alt и применения Ctrl Tab
При использовании AutoHotKey я хотел настроить правило для замены левой и левой клавиш. Я могу сделать это, выполнив:
LAlt::LCtrl
LCtrl::LAlt
Затем я хотел, чтобы функциональность "alt tab" привязывалась к этим физическим клавишам, поэтому я попробовал
LCtrl & Tab::AltTab
В дополнение к двум uptop, но это не сработает. Если я так выразился:
LCtrl & Tab::AltTab
LAlt::LCtrl
LCtrl::LAlt
Затем вкладка будет работать, однако ctrl alt swap будет сломан. Любые предложения?
Ответы
Ответ 1
Документация по горячим клавишам рассказывает о подстановочных знаках
Подстановочный знак: загорайте горячую клавишу, даже если удерживаются дополнительные модификаторы. Это часто используется в сочетании с переназначением клавиш или кнопок. Например:
* # c:: Run Calc.exe; Win + C, Shift + Win + C, Ctrl + Win + C и т.д. Все вызовут эту горячую клавишу.
* ScrollLock:: Запустить блокнот; Нажатие кнопки Scrolllock вызывает эту горячую клавишу, даже если клавиши (и) модема опущены.
Итак, попробуйте это
*tab::
{ if(GetKeyState("LAlt", "P"))
{ Send {LControl up}{Alt down}{tab}
KeyWait, tab
}else
{ send {tab}
}
return
}
~LAlt Up::
{ send {lalt up}
return
}
LAlt::LCtrl
LCtrl::LAlt
Ответ 2
Я немного улучшил эту настройку, чтобы не сдвинуть вкладку shift, теперь вы можете использовать Shift + tab, как и ожидалось, где, как и раньше, вы не могли (затруднялось пытаться исправить отступы (outdent) при кодировании). Я могу улучшить это больше и получите Shift + Alt + tab working
*tab::
{
if(GetKeyState("LAlt", "P")){
Send {LControl up}{Alt down}{tab}
KeyWait, tab
} else if(GetKeyState("LShift", "P")){
Send {LShift down}{tab}
KeyWait, tab
}else
{ send {tab}
}
return
}
~LAlt Up::
{ send {lalt up}
return
}
LAlt::LCtrl
LCtrl::LAlt