我有一堆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
并再次按下它。
有没有办法解决这个问题?
答案 0 :(得分: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