Func DefinitionPictures(ByRef $StatusPictures)
ConsoleWrite('ФУНКЦИЯ DefinitionPictures НАЧАЛА РАБОТУ, пошёл алгоритм поиска'&@CRLF)
;Наши 11 цветов, которые мы знаем заранее, чтобы увидить картинку, Для более точного совпадения , можно увеличивать
Local $PixelStart=Color
Local $PixelStart1=Color
Local $PixelStartX2=Color
Local $PixelStartX3=Color
Local $PixelStartX4=Color
Local $PixelStartX5=Color
Local $PixelStartY1=Color
Local $PixelStartY2=Color
Local $PixelStartY3=Color
Local $PixelStartY4=Color
Local $PixelStartY5=Color
;Переменная в которую будет записывать результаты поиска стартового пикселя, от сюда будем отталкиваться
Local $PixelStartSearch
;Остальные переменные , в которые будут записывать x and y найденных наших следующих пикселей.
Local $X1,$X2,$X3,$Y1,$Y2,$Y3 ; etc .....
;Размер квадрата в котором ищим
Local $Left=0
Local $Top=0
Local $Right=360
Local $Bottom=0
Local $MaxHeight=480
;Начинаем цикл выйдем из него кода $i = 1
$i=0
Do ; Поиск с помощью PixelSearch нашего стартового пикселя тут $Start дескриптор окна в котором работаем.
$PixelStartSearch=PixelSearch($Left,$Top,$Right,$Bottom,$PixelStart,0,1,$Start)
If Not @error Then
ConsoleWrite('$PixelStartSearch='&$PixelStartSearch[0]&','&$PixelStartSearch[1]&' PixelSearch вернул не ошибку'&@CRLF)
;По скольку вернул не ошибку, значит находим цвет рядом стоящего пикселя и далее сравниваем с заданным.
$X1=PixelGetColor($PixelStartSearch[0]+1,$PixelStartSearch[1],$Start)
If $X1=$ColorDisclosureX1 Then
ConsoleWrite('+1 по x от стартового, равен заданому '&$PixelStartSearch[0]&','&$PixelStartSearch[1]&@CRLF)
;Если и второй равен заданому то идём дальше, и так до конца.
$X2=PixelGetColor($PixelStartSearch[0]+2,$PixelStartSearch[1],$Start)
If $X2=$ColorDisclosureX2 Then
ConsoleWrite('+2 по x от стартового, равен заданому '&$PixelStartSearch[0]&','&$PixelStartSearch[1]&@CRLF)
$X3=PixelGetColor($PixelStartSearch[0]+3,$PixelStartSearch[1],$Start)
If $X3=$ColorDisclosureX3 Then
ConsoleWrite('+3 по x от стартового, равен заданому '&$PixelStartSearch[0]&','&$PixelStartSearch[1]&@CRLF)
$Y1=PixelGetColor($PixelStartSearch[0],$PixelStartSearch[1]+1,$Start)
If $Y1=$ColorDisclosureY1 Then
ConsoleWrite('+1 по y от стартового, равен заданому '&$PixelStartSearch[0]&','&$PixelStartSearch[1]&@CRLF)
$Y2=PixelGetColor($PixelStartSearch[0],$PixelStartSearch[1]+2,$Start)
If $Y2=$ColorDisclosureY2 Then
ConsoleWrite('+2 по y от стартового, равен заданому '&$PixelStartSearch[0]&','&$PixelStartSearch[1]&@CRLF)
$Y3=PixelGetColor($PixelStartSearch[0],$PixelStartSearch[1]+3,$Start)
If $Y3=$ColorDisclosureY3 Then
ConsoleWrite('+3 по y от стартового, равен заданому Нашли кнопку, присваиваем значение переменной '&$CoordButtonDisclosure[0]&','&$CoordButtonDisclosure[1]&@CRLF)
$StatusPictures=1
;Выходим из цикла потомучто всё нашли
$i=$i+1
ElseIf $Y3<>$$PixelStarY3 Then
$Left = $PixelStartSearch[0] + 1
ConsoleWrite('$Y3<>$$PixelStarY3, RETURN IN $PixelStartSearch=PixelSearch'&$PixelStartSearch[0]&','&$PixelStartSearch[1]&@CRLF)
EndIf
ElseIf $Y2<>$$PixelStarY2 Then
$Left = $PixelStartSearch[0] + 1
ConsoleWrite('$Y2<>$$PixelStarY2, RETURN IN $PixelStartSearch=PixelSearch'&$PixelStartSearch[0]&','&$PixelStartSearch[1]&@CRLF)
EndIf
ElseIf $Y1<>$$PixelStarY1 Then
$Left = $PixelStartSearch[0] + 1
ConsoleWrite('$Y1<>$$PixelStarY1, RETURN IN $PixelStartSearch=PixelSearch'&$PixelStartSearch[0]&','&$PixelStartSearch[1]&@CRLF)
EndIf
ElseIf $X3<>$$PixelStarX3 Then
$Left = $PixelStartSearch[0] + 1
ConsoleWrite('$X3<>$$PixelStarX3, RETURN IN $PixelStartSearch=PixelSearch'&$PixelStartSearch[0]&','&$PixelStartSearch[1]&@CRLF)
EndIf
ElseIf $X2<>$$PixelStarX2 Then
$Left = $PixelStartSearch[0] + 1
ConsoleWrite('$X2<>$$PixelStarX2, RETURN IN $PixelStartSearch=PixelSearch'&$PixelStartSearch[0]&','&$PixelStartSearch[1]&@CRLF)
EndIf
;ИСКЛЮЧЕНИЕ НА ОШИБКИ, ЕСЛИ НЕ СВОПАЛИ ЦВЕТА , ТО МЫ УВЕЛИЧИВАЕ $LEFT ДЛЯ ЛДВИГА ПО СТРОКЕ ЛЕВЕЕ ДЛЯ ПОИСКА,
ElseIf $X1<>$$PixelStarX1 Then
$Left = $PixelStartSearch[0] + 1
ConsoleWrite('$X1 <> $$PixelStarX1, RETURN IN $PixelStartSearch=PixelSearch'&$PixelStartSearch[0]&','&$PixelStartSearch[1]&@CRLF)
EndIf
Else
ConsoleWrite('$PixelStartSearch='&$PixelStartSearch&' PixelSearch вернул Ошибку'&@CRLF)
;Если PixelSearch Вернул ошибку, то на строке нет стартового пикселя 100% Значит нужн опереключится на новую строку.
$Top=$Top + 1
ConsoleWrite('$Top=$Top + 1 Переводим поиск на нову строку'&@CRLF)
$Bottom=$Bottom + 1
$Left=0
ConsoleWrite('$Left=0 Начинаем поиск с начала строки'&@CRLF)
Если просканили весь участок, и не нашли совпадений то выхходим из цикла
If $Top=$MaxHeight And $Bottom=$MaxHeight Then $i=$i+1
EndIf
Until $i=1
EndFunc
;Далее запускаем функцию
DefinitionPictures(ByRef $StatusPictures)
If $StatusPictures = 1 Then
;Картинка Определилась, делаем то что надо
EndIf