AHK递归映射?(将RAlt映射到RWin, 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并再次按下它。

有什么办法可以解决这个问题吗?

这是我根据你的问题想到的。这是一个变通的解决方案:

#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

相关内容

  • 没有找到相关文章

最新更新