keyserSoze15 Posted June 3, 2010 Share Posted June 3, 2010 Hello all. My problem is this: When I search my screen for a particular color of a pixel and then check the surrounding values to verify that I have indeed found the correct pattern, my program gets stuck re-checking the same pixel over and over. How do I make it skip over that pixel and find the others on the screen? Thanks PixelSearch(0,0,@DesktopWidth,@DesktopHeight,$colorSearch) while @error = 0 $var = PixelSearch(0,0,@DesktopWidth,@DesktopHeight,$colorSearch) $sumcheck = PixelChecksum($var[0]-2,$var[1]-2,$var[0]+2,$var[1]+2) MsgBox(0,"Sum is ",$sumcheck) if $sumcheck = $sumcalc Then MsgBox(0,"found one",$var[0]&","&$var[1]) EndIf WEnd Link to comment Share on other sites More sharing options...
BitByteBit Posted June 3, 2010 Share Posted June 3, 2010 (edited) Change the area you are searching according to the results of your first search; to do this use the coordinates found from the first search for the second search. Example: $FirstWhiteFound = PixelSearch(0, 0, @DesktopWidth, @DesktopHeight, 0xFFFFFF) ;Search for white pixel. If Not @error Then If PixelGetColor($FirstWhiteFound[0] + 1, $FirstWhiteFound[1]) <> 0xFFFFFF Then ;If the pixel to the right it isn't white. $SecondWhiteFound = PixelSearch($FirstWhiteFound[0] + 1, $FirstWhiteFound[1], @DesktopWidth, @DesktopHeight, 0xFFFFFF) ;Start search one pixel to the right. If not @Error Then MsgBox(0, "Success", "Found second instance of 0xFFFFFF") EndIf Else MsgBox(0, "Error", "Couldn't find 0xFFFFFF") EndIf Edited June 3, 2010 by BitByteBit Link to comment Share on other sites More sharing options...
keyserSoze15 Posted June 3, 2010 Author Share Posted June 3, 2010 Change the area you are searching according to the results of your first search; to do this use the coordinates found from the first search for the second search. Example: $FirstWhiteFound = PixelSearch(0, 0, @DesktopWidth, @DesktopHeight, 0xFFFFFF) ;Search for white pixel. If Not @error Then If PixelGetColor($FirstWhiteFound[0] + 1, $FirstWhiteFound[1]) <> 0xFFFFFF Then ;If the pixel to the right it isn't white. $SecondWhiteFound = PixelSearch($FirstWhiteFound[0] + 1, $FirstWhiteFound[1], @DesktopWidth, @DesktopHeight, 0xFFFFFF) ;Start search one pixel to the right. If not @Error Then MsgBox(0, "Success", "Found second instance of 0xFFFFFF") EndIf Else MsgBox(0, "Error", "Couldn't find 0xFFFFFF") EndIf Thank you very much. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now