#Include <APIConstants.au3>
#Include <ScreenCapture.au3>
#Include <WinAPIEx.au3>
$Bitmap1 = _ScreenCapture_Capture('', 0, 0, 99, 99)
$Bitmap2 = _ScreenCapture_Capture('', 0, 0, 99, 99);_WinAPI_LoadImage(0, @ScriptDir & '\origin.bmp', $IMAGE_BITMAP, 0, 0, $LR_LOADFROMFILE)
MsgBox(0, 'CompareBitmap', CompareBitmap($Bitmap1, $Bitmap2))
Func CompareBitmap($Bitmap1, $Bitmap2)
Dim $pBit[2], $hDib[2], $hBitmap[2], $iCRC[2]
$hBitmap[0] = $Bitmap1
$hBitmap[1] = $Bitmap2
$tSize = _WinAPI_GetBitmapDimension($hBitmap[0])
$hDC = _WinAPI_CreateCompatibleDC(0)
For $i = 0 To 1
$hDib[$i] = _WinAPI_CreateDIB(DllStructGetData($tSize, 1), DllStructGetData($tSize, 2), 24)
$pBit[$i] = _WinAPI_GetExtended()
$hSv = _WinAPI_SelectObject($hDC, $hDib[$i])
_WinAPI_DrawBitmap($hDC, 0, 0, $hBitmap[$i], $MERGECOPY)
_WinAPI_SelectObject($hDC, $hSv)
$iCRC[$i] = _WinAPI_ComputeCrc32($pBit[$i], DllStructGetData($tSize, 1) * DllStructGetData($tSize, 2) * 3)
Next
_WinAPI_DeleteDC($hDC)
If $iCRC[0] = $iCRC[1] Then
Return 1
Else
Return 0
EndIf
EndFunc