Что нового

PixelSearch

modnik

Знающий
Сообщения
138
Репутация
13
Итак, когда то давно неплохо разбирался в AutoIt, но теперь всё забыл. Направьте на путь истинный)


Задача следующая необходимо с помощью пиксельсёрч найти цвет и в случае нахождения или нет выполнить определённые действия

Код:
; Find a pure red pixel in the range 0,0-20,300
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000 )
If Not @error Then
    MsgBox(0, "X and Y are:", $coord[0] & "," & $coord[1])
EndIf


Это пример из учебника, он у меня работает на моём примере, однако я никак не соображу как задать условие, что надо сделать если пиксель не найден.

Самое простое что пришло в голову это:

Код:
$coord = PixelSearch( 823, 777, 831, 781, 0x5A94FD)
If @error Then
    MsgBox("X and Y are:")
EndIf
Exit


Однако выдаёт ошибку:
Код:
==> Incorrect number of parameters in function call.:
MsgBox("X and Y are:")
^ ERROR
 

erlik

Продвинутый
Сообщения
317
Репутация
84
Re: PixelSearch

Когда то давно справку читать не пробовали? Или копипаст - наше все?
Переведи ошибку в google translate - и MsgBox откроет все тайны своего бытия.
клик
 
Автор
M

modnik

Знающий
Сообщения
138
Репутация
13
Re: PixelSearch

Разобрался)

Вот такой скрипт
Код:
While 1
   $coord = PixelSearch( 823, 777, 831, 781, 0x5A94FD)
If Not @error Then
	Sleep(100)
 EndIf
 If @error Then
    Sleep (Random(4500))
	Send("r")
	MouseClick("Left")
 EndIf

WEnd


Но он не работает, по отдельности если проверить то вроде всё ок


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

Если запускаю скрипт вот так:
Код:
While 1
   $coord = PixelSearch( 823, 777, 831, 781, 0x5995FE)
If not @error Then
	Sleep (Random(4500))
	Send("r")
	MouseClick("Left")

 EndIf

WEnd


Тогда я ожидаю следующее, что если пиксель найден то происходят действия, если не найден то ничего (Это работает)


А если запускаю вот так:
Код:
While 1
   $coord = PixelSearch( 823, 777, 831, 781, 0x5995FE)
If @error Then
	Sleep (Random(4500))
	Send("r")
	MouseClick("Left")

 EndIf

WEnd


То ожидаю что если пиксель не найден то выполняются действия, а если найден то ничего. По факту это не работает,т.е начинается нажиматься кнопка даже когда пиксель на месте
 

MrSokol

Новичок
Сообщения
11
Репутация
0
Re: PixelSearch

Код:
While 1
   $coord = PixelSearch( 823, 777, 831, 781, 0x5995FE)
If @error = 1 Then
    Sleep (Random(4500))
    Send("r")
    MouseClick("Left")
 EndIf
WEnd

попробуйте явно обозначить error на ошибку при отсутствии пикселя
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
Re: PixelSearch

modnik [?]
с помощью пиксельсёрч
Предупреждение За нарушение общих правил (пункт В.8):
Так как эта конференция называется "Русское сообщество AutoIt", язык общения на ней - Русский. Названия фирм или программных продуктов, аббревиатуры и т.д. должны быть написаны так, как они пишутся в оригинале, например не следует писать УСБ вместо USB. На форуме крайне не рекомендуется намеренно искажать русский язык и использовать "сетевой жаргон" на подобии "Аффтар выпей йадау!".


С уважением, ваш Глобальный модератор.






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

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"PixelSearch " - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Глобальный модератор.
 
Верх