1 (изменено: Shigaboot, 2012-10-08 02:42:25)

Тема: AHK: Вкл и выкл loop скрипта одной клавишей

Подскажите как отключить loop либо включить паузу, клавишей которой запускаю скрипт, в данном случае numpad0. Выставленные задержки по "sleep" обязательно должны остаться. Еще интересует вопрос, реально ли сделать числа 1000 и 100 постоянно изменяемыми? Sleep 100(90-130), Sleep 1000(1000-1250), каждую секунду разные числа.

 Numpad0::

loop

{

Send {1 down}
Sleep, 100
Send {1 up}
Sleep, 1000

}

return
numpad1::Pause

2 (изменено: Shigaboot, 2012-10-08 02:56:39)

Re: AHK: Вкл и выкл loop скрипта одной клавишей

Почитал здесь Серый форум
  "Можно ли остановить повторяющееся действие, не закрывая при этом сам скрипт?"
И вот что получилось:


#MaxThreadsPerHotkey 3
numpad0::
#MaxThreadsPerHotkey 1
if KeepWinZRunning = y
{
KeepWinZRunning =
Return
}
KeepWinZRunning = y
loop,
{

Send {q down}
Sleep, 100
Send {q up}
Sleep, 1000
if KeepWinZRunning =
break

}
KeepWinZRunning =
Return

Код работает, может есть еще какие то варианты? Осталось разобраться как сделать две позиции sleep постоянно меняющимися в указанных пределах.

3 (изменено: creature.ws, 2012-10-08 07:12:27)

Re: AHK: Вкл и выкл loop скрипта одной клавишей

Альтернатива первому примеру:

Numpad0::SetTimer, Send1, % (enabled := !enabled)? 1000:"Off"

Send1:
    SetKeyDelay,, 100
    Send {1}
    return

Пример соответствующий описанному поведению:

Numpad0::SetTimer, Send1, % (enabled := !enabled)? 1000:"Off"

Send1:
    SetKeyDelay,, Random(90, 130)
    Sleep Random(0, 250)
    Send {1}
    return

Random(min, max)
{
    Random, rand, min, max
    return rand
}

4 (изменено: seriousstas, 2015-06-03 01:48:17)

Re: AHK: Вкл и выкл loop скрипта одной клавишей

Подскажите с таким вариантом :
Скрипт после PgDn удержиавет Ctrl 10 секунд и выходит .


Send {PgDn}
Setkeydelay,, 10000
Send {Ctrl}
ExitApp

Можно-ли при повторном запуске принудительно закрыть скрипт ,
то-есть отключить удержание Ctrl ?

Другими словами, нужно во время удержания ,
Используя #SingleInstance force
повторным запуском скрипта ставить и снимать с паузы Ctrl  поочерёдно .