Что нового

несоответствие Window Info и PixelGetColor ( )

stormovik

Новичок
Сообщения
58
Репутация
1
для того, чтобы определить цвет пикселя, использую данную конструкцию

Код:
Opt('MouseCoordMode', 2)
Opt("PixelCoordMode", 2)

$r = PixelGetColor(477,683)
ConsoleWrite(Hex($r & @CRLF))
ClipPut(Hex($r))


но AutoIt Window Info (x64) с установленными "Coord mode -> window" показывает другой цвет пикселя. Разумеется, скрипт корректно работает со определенным им же значеним пикселя.

Я бы не обратил внимания, но когда визуально белый цвет Window Info определяет как 0xFFFFFF, а сам скрипт как 0х020204... это подозрительно
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
stormovik
при таких настройках скрипта вам в не "Coord mode -> window" нужен, а "Coord mode -> client"
 
Автор
S

stormovik

Новичок
Сообщения
58
Репутация
1
благодарю, заработало :ok: , хотя для меня загадка, почему раньше это все было нормально :shok:
 
Автор
S

stormovik

Новичок
Сообщения
58
Репутация
1
возникла другая проблема:
черный пиксель 0х000000 определяется как белый 0хffffff.

настройки скрипта и window info те же самые:

Код:
Opt('MouseCoordMode', 2)
Opt("PixelCoordMode", 2)

$r = PixelGetColor(477,683)
ConsoleWrite(Hex($r & @CRLF))
ClipPut(Hex($r))


"Coord mode -> client"
 
Автор
S

stormovik

Новичок
Сообщения
58
Репутация
1
уточню суть проблемы:

кусок кода, создаюший проблемы


Код:
While 1 

$color = 0  ; принудительно устанавливаю $color равным нулю

PixelSearch(670,431,670,431,0x000000) ; проверяю фактический цвет пикселя
If @error Then $color = 1

$check= PixelGetColor(670,431) ; 
ConsoleWrite(hex($check)&@CR)
ConsoleWrite("$color= "&$color&@CR)

Wend


ConsoleWrite выдает следующее:
00000000
$color = 1
 
Верх