Во время работы бота, происходит нахождение неверных координат функцией
Проблема заключается в том, что данная функция работает нормально первые несколько сотен раз, потом выдает неверные координаты (фатальные для бота) .
Код:
;$picture = путь до картинки - шаблона
Func _search($picture)
$__g_iBMPFormat = $GDIP_PXF04INDEXED
_GDIPlus_Startup()
;$hSource = _ScreenCapture_Capture($win)
$hBitmap = _ScreenCapture_CaptureWnd('', WinGetHandle($Win))
$hImage = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap)
$iX = _GDIPlus_ImageGetWidth($hImage)
$iY = _GDIPlus_ImageGetHeight($hImage)
$hClone = _GDIPlus_BitmapCloneArea($hImage, 0, 0, $iX, $iY, $__g_iBMPFormat)
$hSource = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hClone)
$hBmp = _GDIPlus_BitmapCreateFromFile($picture)
$hFind = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBmp)
$aCoords = _BmpSearch($hSource, $hFind, 1)
If @error Then
ConsoleWrite(@CR & "Ne naydeno " & $picture)
_WinAPI_DeleteObject($hBitmap)
_WinAPI_DeleteObject($hFind)
Return SetError(-1)
Else
Local $coord[2]
$coord[0] = $aCoords[1][2] - 4 ; просчет клиентских координат окна
$coord[1] = $aCoords[1][3] - 23 ;
ConsoleWrite(@CR & $picture & @CR)
ConsoleWrite("X:" & $coord[0] & " Y:" & $coord[1] & " time:" & @extended & @CRLF)
_WinAPI_DeleteObject($hBitmap)
_WinAPI_DeleteObject($hFind)
Return $coord
EndIf
EndFunc ;==>_search
Проблема заключается в том, что данная функция работает нормально первые несколько сотен раз, потом выдает неверные координаты (фатальные для бота) .