1

Тема: AutoHotkey: организация циклов

Этот топик сделан по мотивам ответов нашего разработчика YMP на часто задаваемые вопросы по поводу организации циклов в AutoHotkey.

Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.

2

Re: AutoHotkey: организация циклов

Пример скрипта. При нажатии клавиши "1" начинает печатать в активное окно "222" с интервалом в секунду. Приостановка по F11, возобновление - по F12.

1::
Loop
{
  Send 222
  Sleep 1000
}
Return

F11::                 ; Приостановка по F11.
  If not Stop
  {
    Stop := True
    Pause
  }
Return

F12::                 ; Возобновление по F12.
  If Stop
  {
    Stop := False
    Pause
  }
Return
Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.

3

Re: AutoHotkey: организация циклов

Пример посылает в неактивное окно "Блокнота" сочетание клавиш Ctrl+А со случайной задержкой от 3 до 10 секунд:

Loop
{
  ControlSend, Edit1, ^{vk41}, ahk_class Notepad
  Random, t, 3, 10
  Sleep, t * 1000
}
Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.

4

Re: AutoHotkey: организация циклов

Пример перемещает указатель мыши по координатам MyVar1 и MyVar2 с приращением 10 каждую секунду:

MyVar1 = 10
MyVar2 = 10

Loop
{
  MyVar1 := MyVar1+10
  MyVar2 := MyVar2+10
  MouseMove, MyVar1, MyVar2
  sleep 1000
}
Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.

5

Re: AutoHotkey: организация циклов

Пример скрипта с "зацикливанием". При нажатии клавиши "1" начинает печатать в активное окно "222" с интервалом в секунду. После 10 таких действий печатает в активное окно один раз "333", а затем начинает всё заново.

1::
  Loop, 10
  {
    Send 222
    Sleep 1000
  }
  Send 333
GoTo, 1
Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.

6

Re: AutoHotkey: организация циклов

Имитация массива. Перебор значений ряда переменных, идентификаторы которых имеют общую часть и порядковый номер.

var1 = file_43
var2 = file_23
var3 = file_367
var4 = file_16
var5 = file_90

Loop 5
{
  MsgBox % var%A_Index%
  Sleep, 1000
}
Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.