1 (изменено: Foxtrot, 2018-11-25 03:12:53)

Тема: Цикл нажатий клавиш на экране

Доброго всем времени суток.

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

В игре есть кодовый замок, надо в цикле эмулировать перебор набора различных комбинаций цифр. Я сделал 10 функций, каждая из которых эмулирует нажатие на экране в точке определенной цифры.  Теперь стоит вопрос, как их в цикле вызывать от 000000 до 999999 для перебора варианты.

Помогите, пожалуйста идеей такого цикла

2 (изменено: Foxtrot, 2018-11-26 04:42:15)

Re: Цикл нажатий клавиш на экране

Спасибо за ответ, я вчера немного не так сформулировал вопрос видимо.

Вот у меня пока что-то такое получается. Программа нажимает на окно для ввода комбинации сейфа, далее вводит комбинацию и нажимает кнопку её проверки. Но компилятор ругается, чую что я неправильно разместил функции или?

F11::pause
F12::
{
Reload
Return
}

Mouse(x) ; Клик по цифре
{	If (x=0) MouseClick, left,  140,  602
	If (x=1) MouseClick, left,  64,  522
	If (x=2) MouseClick, left,  141,  521
	If (x=3) MouseClick, left,  242,  519
	If (x=4) MouseClick, left,  49,  427
	If (x=5) MouseClick, left,  131,  430
	If (x=6) MouseClick, left,  221,  428
	If (x=7) MouseClick, left,  68,  356
	If (x=8) MouseClick, left,  139,  347
	If (x=9) MouseClick, left,  231,  345 
}


MouseOk() ; Проверка комбинации
{ 
 	MouseClick, left,  304,  983
  	MouseClick, left,  304,  983
  	sleep 900 
}

MouseNew() ; Новая комбинация
{
	MouseClick, left,  392,  267
	sleep 500
}


~F2::
{
CoordMode, Mouse, Window

a=1
b=0
c=0
d=0
e=0
f=0

Loop
{
	MouseNew()
		Loop 9
		{ 
		Loop 9
		{
		Loop 9
		{
		Loop 9
		{
		Loop 9
		{
		Loop 8
		{
		Mouse(a)
		Mouse(b)
		Mouse(c)
		Mouse(d)
		Mouse(e)
		Mouse(f)
		MouseOk()
		}
		a++
		}
		a:=1
		b++
		}
		a:=1		
		b:=0
		c++
		}
		a:=1		
		b:=0
		c:=0
		d++
		}
		a:=1		
		b:=0
		c:=0
		d:=0
		e++
		}
		a:=1		
		b:=0
		c:=0
		d:=0
		e:=0
		f++
		}
}

3

Re: Цикл нажатий клавиш на экране

Спасибо за ответ, заработало. Осталось отладить тело цикла.