Что нового

Поиск пикселя и клик мышкой

be4hoctb

Новичок
Сообщения
38
Репутация
0
Допустим имеем 5 строк в которых идет проверка на нужный пиксель. Ищем в 1 строке если пиксель находим то выполняем действие если нет то переходим к поиску пикселя на 2 строке и т.д.
Вот как я сделал, но работает не так как надо. Помогите поправить.

Код:
While 1
    _Func1()

WEnd

Func _Func1()
    MouseClick('Left', 601, 72, 1) 
    MouseClick('Left', 754, 104, 1) 
    MouseClick('Left', 136, 213, 1) 
    MouseClick('Left', 100, 320, 1) 
    Sleep (1000)
    $coord = PixelSearch(250, 313, 266, 325, 0x000000) ; Если поле найдено
    If Not _Func2 () Then
		MouseClick('Left', 610, 318, 1)
		MouseClick('Left', 575, 318, 1)
		MouseClick('Left', 878, 504, 1)

    EndIf
EndFunc


Func _Func2()
	MouseClick('Left', 100, 360, 1) 
     $coord = PixelSearch(250, 392, 266, 366, 0x000000) ; Если поле найдено
	 If Not _Func3() Then
		MouseClick('Left', 610, 358, 1)
		MouseClick('Left', 575, 358, 1)
		MouseClick('Left', 878, 504, 1)
	EndIf
EndFunc
..........
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
be4hoctb
К чему Вам такие макароны?
 
Автор
B

be4hoctb

Новичок
Сообщения
38
Репутация
0
Коршун сказал(а):
be4hoctb сказал(а):
но работает не так как надо

А как надо?
как надо я написал, а по факту сначала проверяет все строки а потом с конца начинает выполнять условия


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

DarWiM сказал(а):
be4hoctb
К чему Вам такие макароны?
Не понял вопроса?
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
be4hoctb
Вызов функции в цикле, которая вызывает другую функцию, которая в свою очередь так же вызывает следующую функцию, которая...
Это невероятный ужас, ИМХО.
 
Автор
B

be4hoctb

Новичок
Сообщения
38
Репутация
0
DarWiM сказал(а):
be4hoctb
Вызов функции в цикле, которая вызывает другую функцию, которая в свою очередь так же вызывает следующую функцию, которая...
Это невероятный ужас, ИМХО.
Поэтому и прошу помочь сделать правильно
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
be4hoctb [?]
Ищем в 1 строке если пиксель находим то выполняем действие если нет то переходим к поиску пикселя на 2 строке и т.д.
Код:
PixelSearch(250, 313, 266, 325, 0x000000) ; Ищем в 1 строке
If Not @error Then ; если пиксель находим то
  Action() ; выполняем действие
Else ; если нет то переходим
  PixelSearch(250, 392, 266, 366, 0x000000) ; к поиску пикселя на 2 строке
  If Not @error Then ; и т.д.
    Action()
  Else
    PixelSearch(250, 471, 266, 407, 0x000000)
    If Not @error Then
      Action()
    ; Else ...
    EndIf
  EndIf
EndIf

Func Action()
  MouseClick('Left', 610, 318, 1)
  MouseClick('Left', 575, 318, 1)
  MouseClick('Left', 878, 504, 1)
EndFunc
 
Верх