1

Тема: AHK: Синхронная работа двух циклов

Есть такой код:


;F3 посылает "1-5" с рандомной задержкой
F3:: 
For k, v in [1, 2, 3, 4, 5]
{
    SendNumFn := Func("SendNum").Bind(v)
    SetTimer % SendNumFn, % "-" rnd(1, 100)
}
 
SendNum(n) {
    Send % n
}
rnd(min, max) {
        random, ran, min, max
        return ran
}
return
;F1 начинает спамить "8" каждые 300 мс
F1::
{
SendInput, {8}
sleep, 300
}
GoTo, F1
return
;F2 Перезагружает скрипт
F2::Reload
return

Задача зациклить F3 пробовал делать так:


F3:: 
For k, v in [1, 2, 3, 4, 5]
{
    SendNumFn := Func("SendNum").Bind(v)
    SetTimer % SendNumFn, % "-" rnd(1, 100)
}
 
SendNum(n) {
    Send % n
}
rnd(min, max) {
        random, ran, min, max
        return ran
}
return
sleep, 5000
GoTo, F3

Но скрипт работает не корректно, 8-ка спамится но 1-5 нет.