I did some testing and put in a few inputs to test. Is there a better way to do it than this?
Code: Select all
#SingleInstance force
SetKeyDelay, 20
qState := 0 ; Used to store current state of Q, so we can filter out repeats when you hold it
wState := 0 ; Used to store current state of W, so we can filter out repeats when you hold it
eState := 0 ; Used to store current state of E, so we can filter out repeats when you hold it
aState := 0 ; Used to store current state of A, so we can filter out repeats when you hold it
sState := 0 ; Used to store current state of S, so we can filter out repeats when you hold it
DState := 0 ; Used to store current state of d, so we can filter out repeats when you hold it
$q:: ; Start spamming on press of Q
if (qState)
return ; Filter key repeats
qState := 1
SetTimer, SpamQ, 100
return
$q up:: ; Stop spamming on release of Q
qState := 0
SetTimer, SpamQ, Off
return
$w:: ; Start spamming on press of W
if (wState)
return ; Filter key repeats
wState := 1
SetTimer, SpamW, 100
return
$w up:: ; Stop spamming on release of W
wState := 0
SetTimer, SpamW, Off
return
$e:: ; Start spamming on press of E
if (eState)
return ; Filter key repeats
eState := 1
SetTimer, SpamE, 100
return
$e up:: ; Stop spamming on release of E
eState := 0
SetTimer, SpamE, Off
return
$a:: ; Start spamming on press of A
if (aState)
return ; Filter key repeats
aState := 1
SetTimer, SpamA, 100
return
$a up:: ; Stop spamming on release of A
aState := 0
SetTimer, SpamA, Off
return
$s:: ; Start spamming on press of S
if (sState)
return ; Filter key repeats
sState := 1
SetTimer, SpamS, 100
return
$s up:: ; Stop spamming on release of S
sState := 0
SetTimer, SpamS, Off
return
$d:: ; Start spamming on press of D
if (dState)
return ; Filter key repeats
dState := 1
SetTimer, SpamD, 100
return
$d up:: ; Stop spamming on release of D
dState := 0
SetTimer, SpamD, Off
return
SpamQ:
Send {q}
return
SpamW:
Send {w}
return
SpamE:
Send {e}
SpamA:
Send {a}
return
SpamS:
Send {s}
return
SpamD:
Send {d}
return
return