Что нового

Поиск цвета и клик если не найден

deny

Новичок
Сообщения
50
Репутация
2
Не могу реализовать ,чтоб этот скрипт в скрипте выполнял клик и если цвета нету,то кликал,если найдет то скрипт дальше продолжал работать.
Это кусок скрипта.

Код:
HotKeySet("{F10}","Stop")
Func stop()
	
    Exit
EndFunc
$Color = 0x0000FF ;Это цвет
$hWin = ('Apeha - Хром') ; Окно
 

    
    If PixelGetColor(82, 974,$hWin) = $Color Then 
		  MsgBox(0, "Атата", "Следующ действие!")
	  Else
		    
MouseClick("left",21,970)
	
	EndIf
 

agikon

Знающий
Сообщения
789
Репутация
17
а если вот так?

Код:
HotKeySet("{F10}","Stop")



$Color = 0x0000FF ;Это цвет
$hWin = ('Apeha - Хром') ; Окно
 

while 1  
    If PixelGetColor(82, 974) = $Color Then
          MsgBox(0, "Атата", "Следующ действие!")
	Else
        MouseClick("left",21,970)
    EndIf
wend

Func stop()   
    Exit
EndFunc


но у меня сомнения что вот это правильно
Код:
$hWin = ('Apeha - Хром') ; Окно


может вот так попробовать
Код:
WinActivate("[REGEXPTITLE:.*Apeha - Хром.*])
 
Автор
deny

deny

Новичок
Сообщения
50
Репутация
2
да дело не в окне,даже если оно активно....то он просто тупо кликает в ту точку, а мне надо ,чтоб когда мой основной скрипт выполняется и доходит до этой строчки и чтоб кликал по точке ,если цвета нету в указанной точке. :wacko:
 

agikon

Знающий
Сообщения
789
Репутация
17
мой вариант скрипта работает как и надо. я проверял толькосто.
когда нет пикселя то кликает, когда есть то не кликает.

но я бы сделал не так. я бы поместил это всё в AdlibRegister с частотой секунды б 3. чтобы не так часто кликало.если надо то могу переделать.

или добавмл бы в тот что есть sleep(3000), а то часто кликает.
 
Автор
deny

deny

Новичок
Сообщения
50
Репутация
2
Смотри.
У меня скрипт который выполняет действия и кликания по координатам, потом он доходит до скрипта который я писал выше ,если цвета нету то клик ,пока не будет нужного цвета,если есть , то продолжает выполнять основной скрипт.

Ага помоги ,если можеш, хотя много чего ещё надо доделать с моим скриптом основным)
если можеш напиши аську.

До ужоса не люблю форумы)
пока дождёшся ответа, а спрашиваю элементарное ,просто я не во всю вникаю... вроде все делаю как надо)
 

agikon

Знающий
Сообщения
789
Репутация
17
вот поставил паузу в 3 секунды

Код:
HotKeySet("{F10}","Stop")

$Color = 0x0000FF ;Это цвет
$hWin = ('Apeha - Хром') ; Окно
 

while 1  
    If PixelGetColor(82, 974) = $Color Then
          MsgBox(0, "Атата", "Следующ действие!")
    Else
        MouseClick("left",21,970)
    EndIf
sleep(3000) ;3 секунды
wend

Func stop()  
    Exit
EndFunc


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

а вот второй вариант, перенёс всё в функцию
Код:
HotKeySet("{F10}","Stop")

$Color = 0x0000FF ;Это цвет
$hWin = ('Apeha - Хром') ; Окно
 
 AdlibRegister('_cicle', 3000) ; 3 секунды, можешь изменять на сколько надо

Func _cicle()  
    If PixelGetColor(82, 974) = $Color Then
          MsgBox(0, "Атата", "Следующ действие!")
    Else
        MouseClick("left",21,970)
    EndIf
EndFunc

Func stop()  
    Exit
EndFunc


если у тебя кроме этого есть ещё код, то второй вариант с функцией как раз для тебя, бо он независит от остального кода.

и третий вариант, если тебе надо порсто разового вызвать порверку на цвет с какогото участка кода, или другого цикла.
Код:
HotKeySet("{F10}","Stop")

$Color = 0x0000FF ;Это цвет
$hWin = ('Apeha - Хром') ; Окно
 
 _cicle() ; вызов функции разово, если надо постоянно вызывать то помести в какойто цикл твоего кода.

Func _cicle()  
    If PixelGetColor(82, 974) = $Color Then
          MsgBox(0, "Атата", "Следующ действие!")
    Else
        MouseClick("left",21,970)
    EndIf
EndFunc

Func stop()  
    Exit
EndFunc


ну что хоть что-то подошло?
 

rusreg79

Продвинутый
Сообщения
159
Репутация
57
если цвета нету то клик ,пока не будет нужного цвета,если есть , то продолжает выполнять основной скрипт.

Код:
HotKeySet("{F10}","Stop")

$Color = 0x0000FF 
$hWin = ('Apeha - Хром') 
 
while 1  
    If PixelGetColor(82, 974) = $Color Then
          MsgBox(0, "Атата", "Следующ действие!")
          ExitLoop; если цвет есть , то продолжает выполнять основной скрипт
    Else
        MouseClick("left",21,970);если цвета нету то клик
    EndIf
wend

Func stop()   
    Exit
EndFunc
 
Верх