I found and have been using this script, which rotates through the set of keys well, but will always continue through the sequence, even if another key is pressed:
Code: Select all
^0::Send, % CycleAnnotate("^1,^2,^3")
CycleAnnotate(p_Input,p_Step=1,p_Delim=",",p_Omit=" `t") {
static l_Idx := 0
StringSplit, l_Arr, p_Input, %p_Delim%, %p_Omit%
Return (!l_Arr0)OR((l_Idx:=Abs(1+Mod(l_Idx+p_Step-1,l_Arr0)))=0)
? "" : l_Arr%l_Idx%
}