АХК рекурсивная карта? (Сопоставьте RAlt с RWin, который сопоставлен с другими ключами)

У меня есть куча RWin+X => Y отображения. мне бы хотелось RAlt быть сопоставленным с RWin чтобы RWin+X == RAlt+X, Например:

; RWin+J => Left
>#j::SendInput,{LEFT}

Который работает нормально, я могу удерживать RWin и нажмите j и это будет продолжать отправку Left, Теперь давайте добавим перед этой картой следующее:

RAlt::RWin

Если я держу RAlt затем нажмите jПослать Left правильно, но если я продолжу держать RAlt и нажмите j Опять j и не Left, Я бы отпустил RAlt и нажмите его снова.

Есть ли способ это исправить?

1 ответ

Это то, что я придумал, основываясь на вашей проблеме. Это обходное решение:

#J::
If (GetKeyState("RAlt", "P") Or GetKeyState("RWin", "P")) {
    SendInput,{LEFT}
}
Return

RAlt::
While GetKeyState("RAlt", "P") {
        ; Add any Key in {Key} format followed by Period . that you want to act as an EndKey.
        Input, Key, L1 M T1, {space}.{esc}.{shift}.{enter}
                         .{tab}.{backspace}.{alt}.{home}
                         .{delete}.{pgup}.{pgdn}.{end}
                         .{up}.{down}.{left}.{right}
            If (Key <> "") {
                SendInput, {RWin down}{%Key%}{Rwin Up}
                }
            If InStr(ErrorLevel, "EndKey:") 
                Send % "{" . StrReplace(ErrorLevel, "EndKey:") . "}"
    }
Return
Другие вопросы по тегам