I currently use a script which uses things like
StepDelay := -9999999999 ; Set the delay to wait between steps
global MessageList := [[0, 1], [2, 3], [4, 5], [6, 7], [8, 9], [10, 11], [12, 13], [14, 15], [16, 17], [18, 19]]
Sequence:
; CustomMessage uses SendMessage. Different values are used depending on Index - see the
; function definition at the end.
CustomMessage(Index)
TimerSet := A_TickCount ; Record when the timer was started. This is used for the countdown
SetTimer, Sequence, % TimerLength := StepDelay ; Set the timer for the next time
Return
Wheelup:: ; Fire the next step
Controlsend,, {LAlt Down}h{LAlt Up}, ahk_exe [login to view URL]
StepDelay := -99999999
settimer, wheeldown, off
gosub, Sequence
;varzz=1
return
Wheeldown::
StepDelay := -99999999
Controlsend,, {LAlt Down}h{LAlt Up}, ahk_exe [login to view URL]
;StepDelay := -99999999
if ((Index -= 2) <= -1)
Index := [login to view URL]() - 1
else if (Index = 0)
Index := [login to view URL]()
gosub, Sequence
Controlsend,, {LAlt Down}h{LAlt Up}, ahk_exe [login to view URL]
;varzz=1
return
WheelOnOff(State := "Off") ; WheelOnOff turns mousewheel hotkeys on and off
{
Hotkey, IfWinActive, Sierra
Hotkey, WheelUp, %State%
Hotkey, WheelDown, %State%
}
CustomMessage(ByRef Index)
{
if (++Index > 10) ; Add one to Index. If Index is > 61...
Index := 1 ; Reset to one
SendMessage, 0x1330, MessageList[Index, 1], 1, SysTabControl321, Sierra ;TCM_SETCURFOCUS = 0x1330
SendMessage, 0x1330, MessageList[Index, 2], 1, SysTabControl321, Sierra ;TCM_SETCURFOCUS = 0x1330
}
So, at the moment I use wheelup and wheeldown to manually toggle between the global messagelist, and I can also use the below two variations to put them on timers, in up or down directions.
Up:
Stepdelay :- 4000
gosub sequence
Down:
gosub sequence
settimer, wheeldown, 4000
What I want to add to this, is a way to use the timer function, but only on specific messagelist entries. I'd also want it to go up and down through them, eg if I want [0, 1], [2, 3], [4, 5], [6, 7], then it will look like
send 0,1
sleep x
send 2,3
sleep x
send 4,5
sleep x
send 6,7
sleep x
send 4,5
sleep x,
sleep 2,3
sleep x
sleep 0,1
sleep x
send 2,3
etc etc
Then I want a way of interrupting this and turning it off immediately, in the same way I change stepdelay, or turn wheeldown timer off in my above scenarios, I want to be able to use that command in different parts of the script.