Disable Your Touchpad When You’re Typing With AutoHotkey

Disable Your Touchpad When You’re Typing With AutoHotkey

Windows: Back in November we highlighted TouchFreeze, a small utility designed to prevent you from accidentally moving your mouse cursor and messing up text what you’re typing while you’re typing. Reader bobbo33 made an improved version with a clever AutoHotkey script.

Photo by Patrick Denker.

From bobbo33 at the Productive Geek forums:

A few months back, LH posted a link to TouchFreeze:

This program was designed to stop you from accidentally hitting your laptop/netbook’s trackpad with your thumbs while you are typing. However, this program didn’t really work for me—I still accidentally jumped the cursor from time-to-time.

So here’s my Autohotkey version, which has been working very well for me for the last couple of weeks since I created it. (Note that you can tweak the timer line if the 500ms default still isn’t quite long enough for you.) I’ve noticed no performance lag at all with method, since it’s a keyboard hook.

I think it’s always better to add little functions like these to my AHK master script, rather than installing YAU (yet another utility) for these small tweaks.

; Script Function:
; Disables trackpad for 500ms any time a key is pressed (prevents accidental mouse clicks)

#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.

;keyboard hook code credit: http://www.autohotkey.com/forum/post-127490.html#127490
OnExit, Unhook

hHookKeybd := SetWindowsHookEx(WH_KEYBOARD_LL := 13, RegisterCallback(“Keyboard”, “Fast”))

BlockInput, MouseMoveOff


Keyboard(nCode, wParam, lParam)
If !nCode
BlockInput, MouseMove
SetTimer, ReenableTrackpad, 500
Return CallNextHookEx(nCode, wParam, lParam)

SetWindowsHookEx(idHook, pfn)
Return DllCall(“SetWindowsHookEx”, “int”, idHook, “Uint”, pfn, “Uint”, DllCall(“GetModuleHandle”, “Uint”, 0), “Uint”, 0)

Return DllCall(“UnhookWindowsHookEx”, “Uint”, hHook)

CallNextHookEx(nCode, wParam, lParam, hHook = 0)
Return DllCall(“CallNextHookEx”, “Uint”, hHook, “int”, nCode, “Uint”, wParam, “Uint”, lParam)

TouchFreeze alternative in AHK [Productive Geek]


Log in to comment on this story!