1

我有一堆RWin+X => Y映射。我想RAlt映射到RWin这样RWin+X== RAlt+X。例如:

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

效果很好,我可以按住RWin并按下j它会继续发送Left。现在让我们在该地图之前添加以下内容:

RAlt::RWin

如果我按住RAlt然后按j,它将Left正确发送 a ,但如果我继续按住RAltj再次按 ,它将发送 aj而不是Left。我将不得不释放RAlt并再次按下它。

有没有办法解决这个问题?

4

1 回答 1

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
于 2015-10-03T15:31:32.017 回答