Celeb Glow
general | March 02, 2026

Fix repeated keystrokes without destroying AutoHotkey scripts?

I have a mechanical keyboard problem where sometimes 1 keypress registers as 2. I solved this by installing Keyboard Chattering Fix and setting a minimum 50ms delay requirement between key presses.

The issue is that this ruins my AutoHotkey scripts which require the ability to type really quickly.

So is there another way to fix my keyboard issue?

2

1 Answer

If you do the chattering fix in AutoHotkey itself (instead of using Keyboard Chattering Fix, which presumably is a separate utility), then you wouldn't break anything else you have running in AutoHotkey.

I have done something similar to this by just defining a bunch of hotkeys to rate limit how fast they can be detected or sent. Your mileage may vary.

Hotkey Definitions

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

You can see that this might break down when using modifiers. You could also try variations on the hotkey to detect the modifiers and use * in the hotkey definition instead, but I'm not sure how extensive of a fix you need. If you go this route and want to debug, add a ToolTip or MsgBox into the rateLimit() routine to display A_ThisHotkey when called.

Code

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
}

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy