1 (изменено: Алексей Марч., 2012-05-21 02:19:18)

Тема: AHK: цикл

Подскажите как сделать цикл чтобы он работал определенное время (примерно 3 секунды)


 While, 
   {
    mousemove, 0, 1,100,R
    sleep, 35
   }

спасибо.

2 (изменено: YMP, 2012-05-21 05:31:03)

Re: AHK: цикл

time := A_TickCount
While (A_TickCount - time < 3000)
{
    mousemove, 0, 1,100,R
    sleep, 35
}

3

Re: AHK: цикл

Как запустить и остановить цикл сочетанием клавишь?

^!::
{
    mousemove, 0, 1,100,R
    sleep, 35
}

И этой же комбинацией остановить.

4

Re: AHK: цикл

^!::SetTimer, Cycle, % (IsEnable:=!IsEnable) ? 35:"Off"

Cycle:
   MouseMove, 0, 1, 100, R
   Return

5

Re: AHK: цикл

Спасибо за помощь.:)

6 (изменено: DD, 2018-06-14 04:35:11)

Re: AHK: цикл

Как начать цикл с ноля и получить три перебора: 0, 1, 2?

Cnt = 2
loop %Cnt%
   msgbox % A_Index

7

Re: AHK: цикл

Увеличить одну переменную и уменьшить другую.

8

Re: AHK: цикл

Пробовал варианты типа:

Cnt := 2 + 1
loop %Cnt% - 1
   msgbox % A_Index

Не реагирует.

9

Re: AHK: цикл

Cnt := 2 + 1
msgbox %Cnt% - 1

10

Re: AHK: цикл

Но так вроде счёт начинается с единицы —

Cnt := 2 + 1
loop %Cnt%
   msgbox % A_Index

а мне надо с ноля до двух.

11

Re: AHK: цикл

Malcev пишет:

и уменьшить другую.

+ DD

12 (изменено: DD, 2018-06-14 06:03:42)

Re: AHK: цикл

А, спасибо!))

Cnt := 2 + 1
loop %Cnt% - 1
{
   n := A_Index - 1
   msgbox % n
}

13

Re: AHK: цикл

Cnt := 2
loop % Cnt + 1
   msgbox % A_Index - 1

14 (изменено: DD, 2018-06-18 02:32:36)

Re: AHK: цикл

Интересует, как начать цикл с определенного числа? Задача в том, чтобы уменьшить стартовое число (к примеру: 13) на 5, и соответственно, начать цикл с цифры 8 —

Count := 13
;Count := Count - 5
loop % Count
{
   MsgBox % A_Index
}

15

Re: AHK: цикл

Судя по всему, как работает предыдущий код вы не поняли?

16 (изменено: DD, 2018-06-18 02:56:18)

Re: AHK: цикл

Вроде что-то получилось, но не удается сделать наглядный перебор с цифрами:

Count := 13
Count := Count - 5
loop % Count
{
   n := Count - 5
   MsgBox % A_Index
}

17

Re: AHK: цикл

У вас count в цикле не уменьшается и не увеличивается поэтому нет и перебора.

18

Re: AHK: цикл

А, исправил.

19 (изменено: DD, 2018-06-18 02:59:19)

Re: AHK: цикл

Но всё равно — с восьми перебор не начинается.

20

Re: AHK: цикл

А что делает выделенное выражение в цикле?

Count := 13
Count := Count - 5
loop % Count
{
  n := Count - 5
   MsgBox % A_Index
}

21 (изменено: DD, 2018-06-18 03:03:43)

Re: AHK: цикл

Ну да, лишнее, получается. Всё равно это не подходит, так как перебор начинается не с восьми (до 13-ти).

22

Re: AHK: цикл

Сколько нужно прибавить к единице, чтобы получилось 8?

23

Re: AHK: цикл

7, а что?

24 (изменено: Malcev, 2018-06-18 03:11:55)

Re: AHK: цикл

В первой итерации цикла A_Index равно единице, во второй 2, в третьей 3.
А вам надо в первой 8, во второй 9...

loop
   MsgBox % A_Index+7

Либо:

n := 8
loop
{
   MsgBox % n
   n++ 
}
+ DD

25

Re: AHK: цикл

Спасибо за науку, надеюсь впрок пойдёт)).

26 (изменено: DD, 2018-06-18 13:19:27)

Re: AHK: цикл

Всё-таки, озадачил такой момент: как сделать, чтобы в выделенном участке (пример отрабатывает на нём) перебор заканчивался на 15-ти — то есть, на стартовом значении Count? В целом, суть в том, чтобы по некоему условию (в примере "больше — меньше") отчёт начинался либо с ноля по Count, либо с Count — за вычетом 5 — по Count.

Count := 15          ; 15 или 40
loop % Count
{
   if Count > 30     ; Count больше 30-ти
   {
      n := A_Index - 1
      tooltip 1)`nCount: %Count%`n%n%
      sleep 1000
   }
   else              ; Count меньше 30-ти
   {
   ;-------------------------------------------------
      n := A_Index - 1 + Count - 5
      tooltip 2)`nCount: %Count%`n%n%
      sleep 1000
   ;-------------------------------------------------
   }
}

27

Re: AHK: цикл

Я уже не знаю, как объяснить.
Почитайте про циклы и выражения в справке.

28

Re: AHK: цикл

Почитал, но картина все равно не складывается. Уже не представляю, что надо прибавить или отнять, чтобы работало)). Как же это сделать, желательно не прописывая ничего вне loop?

29

Re: AHK: цикл

Count := 15
If Count < 30
{
   loop
   {
      msgbox % a_Index -1
      if (A_Index = count+1)
         break
   }
}
Else
...
+ DD