Что нового

Если не нашел второй пиксель, выполнить клик, и вернутся к первому поиску

dwm18

Новичок
Сообщения
27
Репутация
0
Как правильно сделать условие в скрипте, - если не нашел второй пиксель, то сделать действия ( клик и т.д), после - вернутся к поиску первого т.е. в начало скрипта.
Это у меня получается :
первый пиксель нашел - сделал клик.

второй поиск пикселя, если нашел - сделал клик - то тоже вернулся в начало - это получается.

а вот когда не нашел ( ВТОРОЙ пиксель ) - сделать тоже клики, и вернутся в начало.

как сделать ??? :stars:, голову сломал :scratch:

Вот, что работает :
Код:
#include <AutoItConstants.au3>

$PixelExist = False
$MyClick = False
$SoundPlay = True
; Время выполнения дополнительных кликов
$Hour = 0
$Min = 0
While 1
    $coord = PixelSearch(2211, 111, 2211, 603, 0xFF0000, 50, 2) ; координаты области, цвет, допущение оттенка, шаг поиска
    If Not @error Then
        $Color = PixelGetColor($coord[0], $coord[1])
        $PixelExist = True
        For $i = 0 To 7 ;Количество циклов, за которое точка не должна потухнуть
            If $Color <> PixelGetColor($coord[0], $coord[1]) Then
                $PixelExist = False
                $SoundPlay = True
                ExitLoop
            EndIf			
            Sleep(100) ;Небольшая пауза
        Next
        If $PixelExist And $SoundPlay Then
            $SoundPlay = False
            SoundPlay("C:\c\zvuk.mp3", 0)
Sleep(100)
MouseClick("left", 106, 753, 1, 0) ;нажатие на Opera 
Sleep(10000)
PixelSearch(1629, 255, 1769, 258, 0xDF553A, 50, 3)
If Not @error Then
MouseClick("left", 1782, 103, 1, 0) ; нажатие на бегунок - возврат окна
Sleep(10000)


EndIf
EndIf
    Else
        $SoundPlay = True
        $PixelExist = False
    EndIf
    Sleep(100)
    If @HOUR = $Hour And @MIN = $Min And Not $MyClick Then
        ;Устанавливаем флаг срабатывания по времени , что-бы исключить повторное срабатывание кликов несколько раз за минуту
        $MyClick = True
        ;Дальше перечисляете - куда кликать хотите
        ;MouseClick($MOUSE_CLICK_LEFT, 1340, 11) ; клик - закрыть Opera
   EndIf
    ;Возвращаем флаг срабатывания по времени
    If @HOUR <> $Hour And @MIN <> $Min Then $MyClick = False
WEnd
 

hedji

Продвинутый
Сообщения
409
Репутация
94
Если я правильно понял, второй пиксель здесь ищется:
Код:
PixelSearch(1629, 255, 1769, 258, 0xDF553A, 50, 3)
If Not @error Then ;если нашли
    MouseClick("left", 1782, 103, 1, 0) ; нажатие на бегунок - возврат окна
    Sleep(10000)
Else ;если не нашли
    MouseClick("left", 123, 123, 1, 0)
EndIf
 
Верх