Autohotkey - 长按发送左控制,否则发送回车

时间:2017-07-28 01:39:31

标签: autohotkey

这是我的脚本。 Capslock被映射为长按时发送Left控件,否则发送一个转义。这是按预期工作的。

SetCapsLockState, alwaysoff
Capslock::
    Send {LControl Down}
    KeyWait, CapsLock
    Send {LControl Up}
    if ( A_PriorKey = "CapsLock" ){
        Send {Esc}
    }
    return

; Send left control when long pressed, otherwise behave a normal enter key
Enter::                
    send {LControl Down}
    KeyWait, Enter, T5
    Send {LControl Up} 
    if ( A_PriorKey = "Enter" ){
        Send {Enter}
    }
    return

然而,输入键不等待长按,它很快就会超时。这不是我的期望。它应该像上面的代码片段

1 个答案:

答案 0 :(得分:1)

如果我正确理解了这个问题,这应该符合您的要求:

Enter:: 
SendInput, {LCtrl Down}
Sleep, 100
KeyWait, Enter
SendInput, {LCtrl Up}
if ( A_PriorKey = "Enter" ){
    Send {Enter}
}
return

另外,我假设您在最后通过一次Enter键击中。如果情况并非如此,并且您想要通过所有这些(按住Enter键),则以下操作将完成。

~Enter:: 
SendInput, {LCtrl Down}
Sleep, 100
KeyWait, Enter
SendInput, {LCtrl Up}
return