Что нового

PixelSearch и PixelGetColor в одних координатах имеют разный НЕХ пикселя.

Статус
Закрыто для дальнейших ответов.

ddrugoii

Новичок
Сообщения
2
Репутация
0
Здравствуйте!

У меня вопрос по програмке.
В ней я нахожу точку экрана через PixelSearch, навожу курсор на пиксель
затем делаю PixelGetColor - на те же координаты - которые выдал PixelSearch.
Почему в первом случае всё ок, а в последующих данные PixelSearch неверные,
т.е. PixelSearch находит координаты hex пикселя, а PixelGetColor говорит что на тех координатах другой hex.

(в msgbox на вопрос Завершить? надо отвечать "нет" )

Код:
global $hex

   $clip = ClipGet() 
   If StringLen($clip) = 6 then $hex = $clip
;сначала через inputbox вводим HEX цвета и ищем его координаты цветового пикселя, 
;потом на найденный hex-пиксель наводим мышкой

$hex = inputbox("Введиде HEX:", "HEX код цвета 6 знаков", $hex)
If StringLen($hex) = 6 then
$px = PixelSearch(0, 0, @DesktopWidth, @DesktopHeight, "0x" & $hex)
IF NOT @ERROR THEN
MouseMove($px[0], $px[1])
;в следующей строке берем hex-цвет пикселя с того места, куда неведен курсор
;(согласно PixelSearch а затем MouseMove это должен быть пиксель нашего цвета)
;и в первой части кода всё ок, перейдем в GETPIX2 ->
$txt = Hex(PixelGetColor($px[0], $px[1]))
$msg = MsgBox(4, "Найден #1# "  & $px[0] & ", " & $px[1], $hex & " = " & $txt & @LF & "Завершить?"  )
if $msg = 7 then  GETPIX2()
Else
MsgBox(0, "Не найден", $hex)
EndIf
Else
MsgBox(0, "Выход", $hex)   
Endif


;функция делает то же самое, только с другого угла, hex у неё из предыдущего inputbox
func GETPIX2()
$px = PixelSearch(@DesktopWidth, @DesktopHeight, 0, 0, "0x" & $hex)
IF NOT @ERROR THEN
MouseMove($px[0], $px[1])
$txt = Hex(PixelGetColor($px[0], $px[1]))
;ВОПРОС - почему $hex НЕ РАВНО $txt ?
;PixelSearch находит координаты hex пикселя, а PixelGetColor говорит что на тех координатах другой hex.
$msg = MsgBox(4, "Найден #2# " & $px[0] & ", " & $px[1], $hex & " = " & $txt & @LF & "Завершить?"  )
if $msg = 7 then  GETPIX3()
EndIf
EndFunc

func GETPIX3()
$px = PixelSearch(@DesktopWidth,  0, 0, @DesktopHeight, "0x" & $hex)
IF NOT @ERROR THEN
$txt = Hex(PixelGetColor($px[0], $px[1]))
MouseMove($px[0], $px[1])
$msg = MsgBox(4, "Найден #3# " & $px[0] & ", " & $px[1], $hex & " = " & $txt & @LF & "Завершить?"  )
if $msg = 7 then  GETPIX4()
EndIf
EndFunc

func GETPIX4()
$px = PixelSearch(0, @DesktopWidth, @DesktopHeight, 0, "0x" & $hex)
IF NOT @ERROR THEN
$txt = Hex(PixelGetColor($px[0], $px[1]))
MouseMove($px[0], $px[1])
$msg = MsgBox(0, "Найден #4# " & $px[0] & ", " & $px[1], $hex  & " = " & $txt & @LF & "Поиск окончен"  )
EndIf
EndFunc


Вся разница между функциями GETPIX() / GETPIX2() /GETPIX3() в том с какого направления ведется поиск
PixelSearch(@DesktopWidth, @DesktopHeight, 0, 0, "0x" & $hex)
(в справке прочитал)

http://autoit-script.ru/index.php?action=downloads;sa=downfile&id=185

Цель моего скрипта в том что бы определить является ли hex точки на экране уникальным или есть ещё.
Уж простите пока только так научился.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: PixelSearch не работает в скрипте, помогите разобраться.

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


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

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

С уважением, ваш Модератор.
 
Автор
D

ddrugoii

Новичок
Сообщения
2
Репутация
0
Моё предупреждение!
На мой взгляд своими предупреждениями, только вы спамите, портите форум и мешаете нормальному общению.
Я сознательно старался назвать свою тему содержательно относительно моего вопроса, и считаю предыдущий топик отражал мои потребности.

Такое ощущение что вы придираетесь от нечего делать или от недостатка внимания.
Роль модератора не быть в центре внимания, а аккуратно поддерживать порядок на форуме.

И ещё! сервисный запрос на изменение темы НЕ ДОЛЖЕН БЫТЬ ярче чем сообщения по теме.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Тема закрыта.
 
Статус
Закрыто для дальнейших ответов.
Верх