修复重复的击键而不破坏 AutoHotkey 脚本

修复重复的击键而不破坏 AutoHotkey 脚本

我有一个机械键盘问题,有时一个键被注册为两个。我通过安装解决了这个问题修复键盘抖动问题并设置按键之间至少 50 毫秒的延迟要求。

问题是这毁了我的自动热键需要快速打字能力的脚本。

那么还有其他方法可以解决我的键盘问题吗?

答案1

如果你在 AutoHotkey 中修复抖动问题(而不是使用修复键盘抖动问题,大概是一个单独的实用程序),那么您就不会破坏 AutoHotkey 中运行的任何其他程序。

我做过类似的事情,只是定义了一堆热键来限制检测或发送它们的速度。您的情况可能会有所不同。

热键定义

Space::ti92_rateLimit(needBrackets:=True)
a::rateLimit()
b::rateLimit()
...
z::rateLimit()

您可以看到,使用修饰符时,这可能会崩溃。您也可以尝试使用热键的变体来检测修饰符,并在热键定义中使用,但我不确定您需要多大的修复。如果您采用这种方式并想要调试,请在调用时在例程中*添加ToolTip或显示。MsgBoxrateLimit()A_ThisHotkey

代码

rateLimit(needBrackets:=False) {
    static lastHotkey
    static lastCall

    if ((lastHotkey=A_ThisHotkey) && (lastCall-A_TickCount)>50))
        SendInput % needBrackets ? "{" A_ThisHotkey "}" : A_ThisHotkey

    ;Sleep 20   ; output rate limit

    lastHotkey:=A_ThisHotkey
    lastCall:=A_TickCount
}

相关内容