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 #Persistent OnExit, Unhook

hHookKeybd := SetWindowsHookEx(WH_KEYBOARD_LL := 13, RegisterCallback("Keyboard", "Fast")) Return

ReenableTrackpad: BlockInput, MouseMoveOff Return

Unhook: UnhookWindowsHookEx(hHookKeybd) ExitApp

Keyboard(nCode, wParam, lParam) { Critical 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) }

UnhookWindowsHookEx(hHook) { 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]


    How do I install/run this AutoHotKey script on my winxp laptop?

Join the discussion!

Trending Stories Right Now