我正在尝试使用 AHK 实现自动换档
脚本等待按键释放,当经过一定时间后,热键会发送一个移位字符。
问题是,当我快速键入键时,输入会被交换:
我输入 ab - 输出为 ba 我输入 ba - 输出为 ab
有没有办法在等待状态下“刷新”前一个热键,或者在使用 KeyWait 时实现有序键?
脚本:
PushDuration := 250
$a::
time := A_TickCount
KeyWait, a
var := A_TickCount - time
if(var < PushDuration)
SendEvent, a
else
SendEvent, A
return
$b::
time := A_TickCount
KeyWait, b
var := A_TickCount - time
if(var < PushDuration)
SendEvent, b
else
SendEvent, B
return
答案1
您可能会(或可能不会)更好地使用单独的“向上”热键来处理键盘向上事件并摆脱 KeyWait 调用。
您还可以结合使用 A_ThisHotkey 来为一系列按键定义单个(通用)函数,并为触发该函数调用的按键发送移位版本。并且/或者,我相信最新版本的 AutoHotkey 有一种通用的方法来捕获输入,而不必为每个字母定义热键。