1 (изменено: sergeant.coolagin, 2011-10-02 23:16:47)

Тема: AHK: Выполнить действие после отпускания хоткея(LOOP)

Нужно чтобы в зависимости от количества выполненных циклов выполнялось определенное действие.

1::

LOOP
{
; Действие зацикливания
sleep, 50
GetKeyState, state, 1, P
if state = U
break
}
Return

1 Up::
if loop = 1
{
; Если только 1 раз прошел цикл, то сделать это
}
if loop = 2
{
; Если 2, то сделать то-то
}
if loop = 3
{
; Если 3, то сделать то-то
}
Return

И еще одно. Нужно чтобы действие было фактически одно и тоже самое, но шло по нарастающей.
Что-то вроде:

1 Up::
if loop = 1
{
send {1*1}
}
if loop = 2
{
send {1*2}
}
if loop = 3
{
send {1*3}
}

Т.е. чтобы если выполнится 100 циклов, то выполнилось действие:

if loop = 100
{
send {1*100}

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

2

Re: AHK: Выполнить действие после отпускания хоткея(LOOP)

имеется ввиду это:

x:=1
loop
{
   i:=0
   while (i<=x)
   {
      i++
   }
   f(x)
   x++
}
return

f(x)
{
   msgbox цикл выполнился %x% раз
}

?
также любой цикл можно прервать оператором break.

3

Re: AHK: Выполнить действие после отпускания хоткея(LOOP)

Да, что-то вроде этого. Но чтобы действие выполнялось только после того, как я отпускаю кнопку:

1::
x:=1
loop
{
sleep, 100
   i:=0
   while (i<=x)
   {
      i++
   }
   f(x)
   x++
}
return

f(x)
{
   msgbox цикл выполнился %x% раз
}

А не каждый раз после окончания цикла.
Если сделать так:

1 up::
f(x)
{
   msgbox цикл выполнился %x% раз
}

То выбивает ошибку.

4

Re: AHK: Выполнить действие после отпускания хоткея(LOOP)

x:=1

1 UP::
   i:=0
   while (i<=x)
   {
      i++
   }
   f(x)
   x++
return

f(x)
{
   msgbox цикл выполнился %x% раз
}

5

Re: AHK: Выполнить действие после отпускания хоткея(LOOP)

Я вот так сделал...

x := 0
1::
LOOP
{
x+=5
GetKeyState, state, 1, P
if state = U
break
}
Return

1 Up::
{
Send %x%
}
Return

Вроде как работает...