如何将空格加倍作为 ctrl 键?

问题描述

我希望空格键在按下 200 毫秒后像 Ctrl 一样工作。所以,理论上它应该是这样工作的:

while space key is press down {
    for first 200 ms {
        if another key is pressed or space key released {
            work like normal space
            go no further
        }
    }
    after first 200 ms {
        if another key <Key> is pressed {
            Send Ctrl+Key
        }
    }
}

是否可以使用 AutoHotKey?

解决方法

AutoHotkey 至少可以实现部分功能,除了“如果按下另一个键”之外,下面的内容可以满足所有要求。如果您将每个键都设为热键,然后使用 A_PriorHotkey,则可能是可行的。或者也许还有另一种我没有想到的方法。

$Space::
KeyWait,Space,T2

if(ErrorLevel) {
    Input,SingleKey,L1,{LControl}{RControl}{LAlt}{RAlt}{LShift}{RShift}{LWin}{RWin}{AppsKey}{F1}{F2}{F3}{F4}{F5}{F6}{F7}{F8}{F9}{F10}{F11}{F12}{Left}{Right}{Up}{Down}{Home}{End}{PgUp}{PgDn}{Del}{Ins}{BS}{CapsLock}{NumLock}{PrintScreen}{Pause}
    Send {Ctrl down}%SingleKey%{Ctrl up}
} else {
    Send {Space}
}
return

我从 here 获取了输入部分。