Generates a checksum for a region of pixels.
PixelChecksum ( left, top, right, bottom [, step = 1 [, hwnd [, mode = 0]]] )
left | left coordinate of rectangle. |
top | top coordinate of rectangle. |
right | right coordinate of rectangle. |
bottom | bottom coordinate of rectangle. |
step | [optional] Instead of checksumming each pixel use a value larger than 1 to skip pixels (for speed). E.g. A value of 2 will only check every other pixel. Default is 1. It is not recommended to use a step value greater than 1. |
hwnd | [optional] Window handle to be used. Default is the desktop window. See remark. |
mode | [optional] default 0 ADLER checksum, 1 CRC32 Checksum. |
Success: | the checksum value of the region. |
Failure: | 0. |
A checksum only allows you to see if "something" has changed in a region - it does not tell you exactly what has changed.
CRC32 checksum is a little slower than ADLER but detects better pixel variation.
If PixelCoordMode is set to its default SCREEN (1) mode the hwnd parameter is ignored. Only if PixelCoordMode is set to WINDOW (0) or CLIENT (2) will it be honoured.
PixelCoordMode (Option), PixelGetColor, PixelSearch
#include <MsgBoxConstants.au3>
; Wait until something changes in the region 0,0 to 50,50
; Get initial checksum
Local $iCheckSum = PixelChecksum(0, 0, 50, 50)
; Wait for the region to change, the region is checked every 100ms to reduce CPU load
While $iCheckSum = PixelChecksum(0, 0, 50, 50)
Sleep(100)
WEnd
MsgBox($MB_SYSTEMMODAL, "", "Something in the region has changed!")