; wheel up/down check ; use AutoHotKey v1.1.24.05 #SingleInstance, Force #InstallMouseHook appliname=wheelupdown_check_01 appliver=0.0.1 wtitle=%appliname% %appliver% ; GUI settings ; Gui, +Owner +AlwaysOnTop +Resize -SysMenu -MinimizeBox -MaximizeBox -Disabled -Caption -Border +ToolWindow Gui, +Owner +AlwaysOnTop +Resize -MinimizeBox -MaximizeBox Gui, Color, 336699 Gui, Font, CFFFFFF S26 W700 Q2, Arial Gui, Add, Text, Vkeystext, Alt+Q ... Exit Gui, Show, NoActivate, %wtitle% ; GuiControl, , keystext, WinSet, Transparent, 220, %wtitle% cwheeldown = 0 cwheelup = 0 check_cwheeldown = 0 check_cwheelup = 0 ks=WheelDown WheelUp Space Up Down Left Right BS keyslist := Object() nowstate := Object() oldstate := Object() Loop, Parse, ks, %A_Space% { k=%A_LoopField% v=%k% keyslist.Insert(k, v) nowstate.Insert(k, 0) oldstate.Insert(k, 0) } Loop, { For k, v in keyslist { n := nowstate[k] oldstate[k] := n nowstate[k] := 0 If k=WheelDown { If cwheeldown<>%check_cwheeldown% { check_cwheeldown := cwheeldown nowstate[k] := 1 } } Else If k=WheelUp { If cwheelup<>%check_cwheelup% { check_cwheelup := cwheelup nowstate[k] := 1 } } Else { nowstate[k] := GetKeyState(k) } } keys= For k, v in keyslist { If (nowstate[k] + oldstate[k])=1 If nowstate[k]<>0 keys=%keys% %k% } keys := Trim(keys, " ") If keys<> GuiControl, , keystext, %keys% Sleep, 16 } EXIT: GuiClose: ExitApp ~*WheelDown:: cwheeldown += 1 return ~*WheelUp:: cwheelup += 1 return ~!Q Up:: ; Alt + Q ... Exit Goto, EXIT