I feel like there's a better way. Maybe Custom Objects or some other less messy approach?
The goal would be to track keyPresses separately for each handler.
Any insight is appreciated. Thanks!
Code: Select all
#SingleInstance force
#NoEnv
F1:: ListenForMultiplePresses(func("F1Handler"))
F2:: ListenForMultiplePresses(func("F2Handler"))
ListenForMultiplePresses(pressHandler, listenLength := 400) {
Global keyPresses
If ((A_PriorHotkey = A_ThisHotkey) && (keyPresses > 0)) {
keyPresses += 1
Return
}
keyPresses := 1
SetTimer, %pressHandler%, %listenLength%
}
F1Handler() {
Global keyPresses
If (keyPresses = 1) {
MsgBox, F1 pressed once.
} Else If (keyPresses = 2) {
MsgBox, F1 pressed twice.
} Else If (keyPresses > 2) {
MsgBox, F1 pressed twice+.
}
SetTimer, F1Handler, Off
keyPresses := 0
}
F2Handler() {
Global keyPresses
If (keyPresses = 1) {
MsgBox, F2 pressed once.
} Else If (keyPresses = 2) {
MsgBox, F2 pressed twice.
} Else If (keyPresses > 2) {
MsgBox, F2 pressed twice+.
}
SetTimer, F2Handler, Off
keyPresses := 0
}