问题描述
我希望空格键在按下 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 获取了输入部分。