Сопоставить Windows + JILK с клавишами со стрелками, используя AutoHotKey?
Я не могу найти, как связать X + Y => Z
, Большинство ссылок онлайн показывают, как сделать обратное. Я пытаюсь добиться этого отображения:
RWin + j :: Left
RWin + l :: Right
RWin + i :: Up
RWin + k :: Down
Я пробовал этот синтаксис RWin&l::Right
но это не скомпилировано.
Есть идеи?
Edit: я также хотел бы, чтобы он хорошо играл с другими клавишами-модификаторами. Так что когда жму RWin+j
а потом shift
он посылает shift+left
(и то же самое с ctrl
а также alt
)
Редактировать: Благодаря @AleOtero93 вот что у меня есть:
; Arrows
>#j::Send,{LEFT}
>#l::Send,{RIGHT}
>#i::Send,{UP}
>#k::Send,{DOWN}
; Shift modifier
>#+j::Send,+{LEFT}
>#+l::Send,+{RIGHT}
>#+i::Send,+{UP}
>#+k::Send,+{DOWN}
; Ctrl modifier
>#^j::Send,^{LEFT}
>#^l::Send,^{RIGHT}
>#^i::Send,^{UP}
>#^k::Send,^{DOWN}
; Ctrl+Shift
>#^+j::Send,^+{LEFT}
>#^+l::Send,^+{RIGHT}
>#^+i::Send,^+{UP}
>#^+k::Send,^+{DOWN}
; Alt modifier
>#!j::Send,!{LEFT}
>#!l::Send,!{RIGHT}
>#!i::Send,!{UP}
>#!k::Send,!{DOWN}
; Alt+Ctrl
>#^!j::Send,^!{LEFT}
>#^!l::Send,^!{RIGHT}
>#^!i::Send,^!{UP}
>#^!k::Send,^!{DOWN}
; Alt+Shift
>#!+j::Send,!+{LEFT}
>#!+l::Send,!+{RIGHT}
>#!+i::Send,!+{UP}
>#!+k::Send,!+{DOWN}
; Alt+Ctrl+Shift
>#!^+j::Send,!^+{LEFT}
>#!^+l::Send,!^+{RIGHT}
>#!^+i::Send,!^+{UP}
>#!^+k::Send,!^+{DOWN}
; Insert/Delete
>#q::Send,{Insert}
>#a::Send,{Delete}
; Ctrl+Insert/Delete
>#^q::Send,^{Insert}
>#^a::Send,^{Delete}
; Shift+Insert/Delete
>#+q::Send,+{Insert}
>#+a::Send,+{Delete}
; Home/End
>#w::Send,{Home}
>#s::Send,{End}
; Ctrl+Home/End
>#^w::Send,^{Home}
>#^s::Send,^{End}
; Shift+Home/End
>#+w::Send,+{Home}
>#+s::Send,+{End}
; Ctrl+Shift+Home/End
>#^+w::Send,^+{Home}
>#^+s::Send,^+{End}
; PageUp/PageDown
>#e::Send,{PgUp}
>#d::Send,{PgDn}
; Ctrl+PageUp/PageDown
>#^e::Send,^{PgUp}
>#^d::Send,^{PgDn}
; Shift+PageUp/PageDown
>#+e::Send,+{PgUp}
>#+d::Send,+{PgDn}
; Escape
>#CapsLock::Send,{Escape}
Мне пришлось отключить Win+L, что можно сделать через реестр (или карту #l::return
? не проверялось) Мне было бы интересно узнать, есть ли у кого-нибудь лучшее решение без необходимости переназначения клавиш-модификаторов.
1 ответ
Мне удалось решить это:
>#j:: SendInput,{LEFT}
>#l:: SendInput,{RIGHT}
>#i:: SendInput,{UP}
>#k:: SendInput,{DOWN}
>: В клавишах-модификаторах (таких как Alt, Shift...) разрешена только правая из них. (Используйте < для левого)
#: Ярлык Win в AHK.
И после горячей клавиши, которую вы хотите использовать, без пробелов, используйте сразу :
Кроме того, + это сочетание клавиш Shift.
А в AHK & требуется только для немодифицированных клавиш (вроде a & k
), для сдвига, alt и т. д. нет необходимости в &
После этого, прочитав справку AutoHotkey, я обнаружил, что вам также нужно переопределить стрелку Win+, поэтому вы добавляете это:
>#left:: return
>#right:: return
>#up:: return
>#down:: return
Кроме того, если вы отключите ярлыки Win, если хотите, внесите следующие изменения в реестр:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
NoWinKeys REG_DWORD 0x00000001 (1)
Но имейте это в виду, Win+L и Win+U не могут быть переопределены, согласно помощи AHK. Надеюсь, кто-нибудь решит это.