Что нового

нахождение неверных координат. BMPSearch.au3

mr.Gbabak

Осваивающий
Сообщения
257
Репутация
23
Во время работы бота, происходит нахождение неверных координат функцией
Код:
;$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


Проблема заключается в том, что данная функция работает нормально первые несколько сотен раз, потом выдает неверные координаты (фатальные для бота) .
 

dotsik

Новичок
Сообщения
1
Репутация
0
Тоже замечал что вренемами фигню вычисляет
 
Верх