Сопоставить 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. Надеюсь, кто-нибудь решит это.

Другие вопросы по тегам