Autohotkey 自动热键-使用箭头键进行L换档和R换档,未按预期工作

Autohotkey 自动热键-使用箭头键进行L换档和R换档,未按预期工作,autohotkey,Autohotkey,上面的代码是我试图实现的(但失败)。 然而,下面的代码,这是一个测试,工作。。。但没有我想象的那么顺利 >+Right:: Send % GetKeyState("LShift", "p") ? "+{End}" : "{End}" return 它有一些延迟,有时没有给我任何东西。这太奇怪了 这可能是制造商的问题,但我想确定一下。是否有任何优雅的解决方案可以实现第一个代码?似乎这就是您想要的

上面的代码是我试图实现的(但失败)。
然而,下面的代码,这是一个测试,工作。。。但没有我想象的那么顺利

>+Right::
    Send % GetKeyState("LShift", "p") ? "+{End}" : "{End}"
    return
它有一些延迟,有时没有给我任何东西。这太奇怪了


这可能是制造商的问题,但我想确定一下。是否有任何优雅的解决方案可以实现第一个代码?

似乎这就是您想要的:

*Right::
    If (GetKeyState("RShift", "p") && GetKeyState("LShift", "p"))
        MsgBox Both Shift Keys
    Else
        MsgBox meh
    return
++Right::End
>+右::SendInput,{End}
它使用的是simple,您的shift键被传递,因为重新映射语法

第二个热键不使用重映射语法,而只是一个普通的send命令,因此shift键将被使用


另一个选项,因为第一个在OP端由于某种原因不起作用

+<>+Right::End
>+Right::SendInput, {End}
+右::

++右::SendInput,%(InStr(A_ThisHotkey),“+谢谢你的回复!我想我应该搜索更多关于重新映射的信息。不幸的是,你的解决方案不起作用。RShift和Right arrow既不能作为结束,也不能作为LShift,RShift和Right arrow键没有任何作用。这可能是我的计算机的问题。你能给我更详细的解释吗?”++右::结束"这样我就可以从中得到一些提示了?嗯,对我来说很好。你在用什么程序来试呢?比如说,如果你还没有试过的话,试一下普通的记事本。只是为了确认一下,这是你想要的行为,对吗?
++
是右移。其余的应该在文档链接中解释。如果有更具体地说,您在理解上有困难,请告诉我,我可以解释。我也在使用普通记事本。我想将RShift+Right重新映射为纯端,这意味着LShift+RShift+Right必须像Shift+End一样。遗憾的是,您的解决方案没有实现前一个(纯端),并将其设为Shift+End。LSIFT+RSIFT+Right不再是一回事了。如果我的英语太差,很抱歉,谢谢你的友好回复。好的,编辑了答案。现在我认为它符合要求。
>+Right::
+<>+Right::SendInput, % (InStr(A_ThisHotkey, "+<") ? "+" : "") "{End}"
>+Right::SendInput, {End}
+<>+Right::SendInput, +{End}