Я пытался создать скрипт, который выполнял бы действие при обнаружении цвета, но у меня возникли проблемы с PixelSearch.
Я использую PixelSearch, а не соответствие с PixelGetColor, так как цвет прозрачный и поэтому требует PixelSearchФункция вариации.
После проблем с отсутствием цвета, который определенно был там, я попытался создать скрипт для поиска цвета с помощью PixelGetColor, затем передать его в PixelSearch и найти его с 0 вариациями.
Это гарантирует, что цвет был на самом деле, скрипт работал большую часть времени, но часто отвечал ErrorLevel 1 (не найден, что должно быть невозможно).
Я работал как на неактивных, так и на активных окнах, но иногда терпел неудачуна обоих.
Сценарий, размещенный ниже, может кто-нибудь объяснить, почему может возникнуть эта проблема. Все тестовые цвета были статическими и не меняли изображения без прозрачности.
Почему возникает эта ошибка и ее можно исправить?
CoordMode, Pixel,Screen
CoordMode,Mouse,Screen
*$PGDN::
MouseGetPos, PosX, PosY
PixelGetColor, cRGB , %PosX%, %PosY%,RGB
PixelGetColor, cBGR , %PosX%, %PosY%
PixelSearch,Colour_SearchX,Colour_SearchY,PosX+10,PosY+10,PosX-10,PosY-10,cRGB,RGB Fast
If ErrorLevel = 0
{
Search_Result:= "Found"
}
Else
{
Search_Result:= "Not Found"
}
MsgBox,% PosX ", " PosY "`nRGB: (" cRGB " ) - BGR: (" cBGR ")" "`n" Search_Result ":" cRGB " at: " Colour_SearchX "," Colour_SearchY
Return