TouchFreeze Alternative in AutoHotkey

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:
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)