#Requires AutoHotkey v2 /* KeyboardClean.ahk ------------------ Temporarily disables keyboard input to allow cleaning while plugged in. Version History: v2.2 - 2025-02-24 (Re-enable keyboard on exit as a precaution) v2.1 - 2025-02-22 (Merged enable/disable functions into a toggle) v2.0 - 2025-01-14 v1.0 - 2025-01-02 */ Global AppName := "Keyboard Cleaner" Global AppVersion := "2.2" Global IsKeyboardEnabled := True ; Tracks keyboard state #SingleInstance InstallKeybdHook GuiWindow := Gui("+AlwaysOnTop -MinimizeBox -MaximizeBox -SysMenu -Resize", AppName . " " . AppVersion) ToggleButton := GuiWindow.Add("Button", "y+10", "Disable Keyboard") ToggleButton.OnEvent("Click", ToggleKeyboard) GuiWindow.Add("Button", "x+10", "Quit").OnEvent("Click", QuitApp) GuiWindow.Show() ToggleKeyboard(*) { Global IsKeyboardEnabled := !IsKeyboardEnabled ; Toggle global state Loop 512 { Hotkey Format("SC{:X}", A_Index), IsKeyboardEnabled ? "Off" : BlockKey, "On" } ToggleButton.Text := IsKeyboardEnabled ? "Disable Keyboard" : "Enable Keyboard" } QuitApp(*) { if not IsKeyboardEnabled { ToggleKeyboard } ExitApp } BlockKey(ThisHotkey) { Return }