1

Тема: AHK: таймер

Здравствуйте! Помогите пожалуйста вот в таком деле. Есть некоторая циклическая последовательность действий, которая должна выполняться после нажатия горячей клавиши в течение 3 минут, затем должна выполниться другая последовательность действий, и затем должен произойти переход к первой последовательности и так по кругу. Если что-то непонятно, я прошу прощения. В общем, нужна помощь с таймером, а может быть есть другие варианты.

2

Re: AHK: таймер

Всё-таки в течение 3 минут или "по кругу"?

3 (изменено: serzh82saratov, 2013-03-02 05:54:27)

Re: AHK: таймер

последовательность действий, которая должна выполняться после нажатия горячей клавиши в течение 3 минут, затем должна выполниться другая последовательность действийи затем должен произойти переход к первой последовательности и так по кругу

если в общем цикле - первое выполняется каждый раз по 3 минуты в своём цикле, а второе после этого один раз в последовательности, то наверное так:


Space::
Loop {   
    StartLoop := A_TickCount , Tick := 3  ; Tick это секунды (3 минуты = 180 сек)
    Loop {
        MsgBox, 48, , % "Повторяющиеся действия в течение " 
            . Tick . " секунд:`r`r    осталось  " 
            . Tick - ( A_TickCount - StartLoop ) // 1000
            . "  секунд", 1
    }    Until ( A_TickCount - StartLoop ) / 1000 >= Tick
    MsgBox, 64, , Последовательные действия, 1
}

если просто первое и потом через 3 минуты после начала их выполнения второе, и так по кругу, то:


Space::
    Action1:
        SetTimer, Action2, 180000
        MsgBox, , , 1 последовательность действий, 1
        Return
    Action2:
        SetTimer, Action2, Off 
        MsgBox, , , 2 последовательность действий, 1
        GoTo, Action1
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

4 (изменено: o4kapuk, 2013-03-04 11:02:41)

Re: AHK: таймер

serzh82saratov, спасибо большое! С первым я не очень разобрался. Второй подходит! Теперь у меня другая проблема. У меня в Action1 цикл

Loop 
   { 
     ....
   } 
Return

Как сделать так, чтобы он прерывался при переходе к Action2?

5 (изменено: serzh82saratov, 2013-03-04 18:00:18)

Re: AHK: таймер

С первым я не очень разобрался.

Вы хотя-бы код запускали, алгоритм работы подходит?

Как сделать так, чтобы он прерывался при переходе к Action2?

Для этого как раз первый вариант, а значит второе не подходит...
Может так понятнее будет:

Space::
Loop
{   
StartLoop := A_TickCount , Tick := 3
While, ( A_TickCount - StartLoop ) / 1000 < Tick
{
; Ваши действия 1
MsgBox, 64, , Повторяющиеся действия %A_Index%, 0.75
; Ваши действия 1

}

; Ваши действия 2
MsgBox, 48, , Последовательные действия %A_Index%, 0.75
; Ваши действия 2
}

По старой доброй традиции заменяем MsgBox на своё...
MsgBox, 64, , Повторяющиеся действия %A_Index%, 0.75 заменить на действия в цикле в Action1, и MsgBox, 48, , Последовательные действия %A_Index%, 0.75 заменить на действия в Action2

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

6

Re: AHK: таймер

Вы хотя-бы код запускали, алгоритм работы подходит?

Запускал. Вторая редакция более понятная. То что нужно! Премного благодарен за помощь и терпение!