Что нового

Зациклить выполнение функции

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
n0kk сказал(а):
Да, так же выполняется два раза, а потом считает до 500

Ну и что это значит? Вы хоть понимаете свою функцию? Если цвет пикселя не соответствует полученному тогда выполнение функции прерывается и она начинается заново. Может проблема в условии? Может вообще не нужно останавливать функцию? Может в вашей функции выход из скрипта был лишним с самого начала?

Код:
SplashTextOn("Test Script", "", 100, 50)
For $i = 0 To 500
	ControlSetText("Test Script", "", "Static1", $i)
	_Click()
Next

Func _Click()
	MouseMove(1169, 326, 50)
	$ColorPx = PixelGetColor(1169, 326)
	If $ColorPx = 16777215 Then
		MouseClick("left", 1245, 846)
	ElseIf $ColorPx = 3708912 Then
		Sleep(25000)
		MouseClick("left", 1169, 326)
		MouseClick("left", 1245, 846)
	EndIf

	MouseMove(1169, 338)
	$ColorPx = PixelGetColor(1169, 338)
	If $ColorPx = 16777215 Then
		MouseClick("left", 1245, 846)
	ElseIf $ColorPx = 3708912 Then
		Sleep(25000)
		MouseClick("left", 1169, 338)
		MouseClick("left", 1245, 846)
	EndIf

	MouseMove(1169, 349)
	$ColorPx = PixelGetColor(1169, 349)
	If $ColorPx = 16777215 Then
		MouseClick("left", 1245, 846)
	ElseIf $ColorPx = 3708912 Then
		Sleep(25000)
		MouseClick("left", 1169, 349)
		MouseClick("left", 1245, 846)
	EndIf

	MouseMove(1169, 363)
	$ColorPx = PixelGetColor(1169, 363)
	If $ColorPx = 16777215 Then
		MouseClick("left", 1245, 846)
	ElseIf $ColorPx = 3708912 Then
		Sleep(25000)
		MouseClick("left", 1169, 363)
		MouseClick("left", 1245, 846)
	EndIf
EndFunc
 
Автор
N

n0kk

Новичок
Сообщения
22
Репутация
0
Tempo сказал(а):
Вы хоть понимаете свою функцию?
Видимо нет, теперь понял благодаря вам, и правда прерывание было лишним, я думал что без Else нельзя, ведь конструкция If...ElseIf...Else...EndIf


Добавлено:
Сообщение автоматически объединено:

Благодарю за разъяснение :smile:
 
Верх