Что нового

[Автоматизация] Проблема с поиском пикселей

bahtan5

Новичок
Сообщения
2
Репутация
0
собственно проблема вот в чем есть окно flash приложения
в нем появляется новое окно с таким крестиком

появвляется оно в разных местах приложения
поэтому просто кликер не поможет
написал по пикселям но пиксели тоже походу меняются но редко и в небольшом диапазоне
подскажите как сделать чтоб нажимал, или мануал чтоб понять
никак не вьеду, 3 день с autoit знакомлюсь
поэтому сильно не кричите по коду
вот то что наляпил
Код:
HotKeySet ("{1}", "Start")

HotKeySet ("{2}", "_Exit")



While 1

        Sleep(100)

WEnd

Func Start()

        While 1
                $pos = PixelSearch(292,128,984,574,0x413222,0)
				$pos = PixelSearch(292,128,984,574,0x95856F,0)
				$pos = PixelSearch(292,128,984,574,0x857158,0)
				$pos = PixelSearch(292,128,984,574,0x857158,0)
				$pos = PixelSearch(292,128,984,574,0x7B6753,0)
				$pos = PixelSearch(292,128,984,574,0x7B6753,0)
			    $pos = PixelSearch(292,128,984,574,0x7B6753,0)
				$pos = PixelSearch(292,128,984,574,0x3B2F22,0)
				$pos = PixelSearch(292,128,984,574,0x3B2D20,0)
				$pos = PixelSearch(292,128,984,574,0x372A1E,0)
				$pos = PixelSearch(292,128,984,574,0xD4CDCA,0)
				$pos = PixelSearch(292,128,984,574,0x302522,0)
				$pos = PixelSearch(292,128,984,574,0x725B42,0)
				$pos = PixelSearch(292,128,984,574,0x372A1E,0)
				$pos = PixelSearch(292,128,984,574,0x8E7B6F,0)
				$pos = PixelSearch(292,128,984,574,0x6C5D50,0)
				$pos = PixelSearch(292,128,984,574,0x4F3D2E,0)
				$pos = PixelSearch(292,128,984,574,0xA29489,0)
					 IF NOT @ERROR THEN
                        MouseMove($pos[0],$pos[1],1)
                        MouseClick("Left")
					 ENDIF
 
				             	 $pos = PixelSearch(505,670,460,643,0x0E6303,0)
				             	 $pos = PixelSearch(505,670,460,643,0x0B4204,0)
				            	 $pos = PixelSearch(505,670,460,643,0x063400,0)
                                     IF NOT @ERROR THEN
                                         MouseMove($pos[0],$pos[1],1)
                                         Send("{SPACE down}")
					                 ENDIF

        WEnd

EndFunc



Func _Exit()

        Exit

EndFunc
 

Nbv_tim

Новичок
Сообщения
47
Репутация
1
Хм., сам тоже только разбираюсь с autoit(( но вроде ты в цикле задаешь одну переменную и присваиваешь ей разное значение в итоге у тебя переменная имеет последнее значение ? , не проще собрать массив или сделать if pixel then далее как найдет твой пиксель ограничиваешь квадрат и проверяешь на соответствие пикселя в этом квадрате если там ок ищешь пиксель кнопки если находит, жмякаешь.
 
Автор
B

bahtan5

Новичок
Сообщения
2
Репутация
0
поставил вариацию 20 вместо 0
криво но заработало
Код:
Func Start()

        While 1
                $pos = PixelSearch(648,204,931,528,0x413222,20)
				IF NOT @ERROR THEN
                        MouseMove($pos[0],$pos[1],1)
                        MouseClick("Left")
					 ENDIF
				$pos = PixelSearch(648,204,931,528,0x95856F,20)
				IF NOT @ERROR THEN
                        MouseMove($pos[0],$pos[1],1)
                        MouseClick("Left")
					 ENDIF
				$pos = PixelSearch(648,204,931,528,0x857158,20)
				IF NOT @ERROR THEN
                        MouseMove($pos[0],$pos[1],1)
                        MouseClick("Left")
					 ENDIF
				$pos = PixelSearch(648,204,931,528,0x857158,20)
				IF NOT @ERROR THEN
                        MouseMove($pos[0],$pos[1],1)
                        MouseClick("Left")
					 ENDIF
				$pos = PixelSearch(648,204,931,528,0x7B6753,20)
				IF NOT @ERROR THEN
                        MouseMove($pos[0],$pos[1],1)
                        MouseClick("Left")
					 ENDIF
				$pos = PixelSearch(648,204,931,528,0x7B6753,20)
			    IF NOT @ERROR THEN
                        MouseMove($pos[0],$pos[1],1)
                        MouseClick("Left")
					 ENDIF
				$pos = PixelSearch(648,204,931,528,0x7B6753,20)
				IF NOT @ERROR THEN
                        MouseMove($pos[0],$pos[1],1)
                        MouseClick("Left")
					 ENDIF
				$pos = PixelSearch(648,204,931,528,0x3B2F22,20)
				IF NOT @ERROR THEN
                        MouseMove($pos[0],$pos[1],1)
                        MouseClick("Left")
					 ENDIF
				$pos = PixelSearch(648,204,931,528,0x3B2D20,20)
				IF NOT @ERROR THEN
                        MouseMove($pos[0],$pos[1],1)
                        MouseClick("Left")
					 ENDIF
				$pos = PixelSearch(648,204,931,528,0x372A1E,20)
				IF NOT @ERROR THEN
                        MouseMove($pos[0],$pos[1],1)
                        MouseClick("Left")
					 ENDIF
				$pos = PixelSearch(648,204,931,528,0xD4CDCA,20)
				IF NOT @ERROR THEN
                        MouseMove($pos[0],$pos[1],1)
                        MouseClick("Left")
					 ENDIF
				$pos = PixelSearch(648,204,931,528,0x302522,20)
				IF NOT @ERROR THEN
                        MouseMove($pos[0],$pos[1],1)
                        MouseClick("Left")
					 ENDIF
				$pos = PixelSearch(648,204,931,528,0x725B42,20)
				IF NOT @ERROR THEN
                        MouseMove($pos[0],$pos[1],1)
                        MouseClick("Left")
					 ENDIF
				$pos = PixelSearch(648,204,931,528,0x372A1E,20)
				IF NOT @ERROR THEN
                        MouseMove($pos[0],$pos[1],1)
                        MouseClick("Left")
					 ENDIF
				$pos = PixelSearch(648,204,931,528,0x8E7B6F,20)
				IF NOT @ERROR THEN
                        MouseMove($pos[0],$pos[1],1)
                        MouseClick("Left")
					 ENDIF
				$pos = PixelSearch(648,204,931,528,0x6C5D50,20)
				IF NOT @ERROR THEN
                        MouseMove($pos[0],$pos[1],1)
                        MouseClick("Left")
					 ENDIF
				$pos = PixelSearch(648,204,931,528,0x4F3D2E,20)
				IF NOT @ERROR THEN
                        MouseMove($pos[0],$pos[1],1)
                        MouseClick("Left")
					 ENDIF
				$pos = PixelSearch(648,204,931,528,0xA29489,0)
					 IF NOT @ERROR THEN
                        MouseMove($pos[0],$pos[1],1)
                        MouseClick("Left")
					 ENDIF


Send("{SPACE down}")
Sleep(1000)
Send("{SPACE up}")


        WEnd

EndFunc
 
Верх