【问题标题】:Toggle Shift for Single Keypress切换单个按键的 Shift
【发布时间】:2016-03-18 17:19:13
【问题描述】:

我正在尝试将我的 shift 键变成 CapsLock 之类的。目标是,当按下 Shift 时,它会移动下一个要按下的键(无需按住 shift 键),类似于 StickyKeys 的功能,但仅适用于 Shift 键。我可以使用以下方法切换 Shift 键:

LShift:: Send % "{Blind}{LShift " . ((lshift:=!lshift) ? "Down}" : "Up}")

但这需要我再次按下 Shift 键,基本上把它变成了 CapsLock。我怎样才能让这个动作只持续一次按键?

【问题讨论】:

    标签: autohotkey


    【解决方案1】:

    应该这样做:

    $LShift:: 
        SendInput, {LShift Down}
        KeyWait, LShift
        SendInput, {LShift Down}
        Input, Key, L1 V
        SendInput, {LShift Up}
    Return
    

    编辑:

    $*LShift:: 
        SendInput, {LShift Down}
        Input, Key, L1 M V
        If GetKeyState("LShift", "P")
            KeyWait, LShift
        SendInput, {LShift Up}
    Return
    

    【讨论】:

    • 谢谢!这绝对有效,但是有没有办法检测在按住 Shift 时是否按下了一个键,而不是移动下一个键?
    • 嗯,是的,您可以使用GetKeyState("LShift", "P") 执行此操作,如果按键被物理按下,则返回True
    猜你喜欢
    • 1970-01-01
    • 2013-09-08
    • 2021-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多