Что нового

Получение изображения курсора с помощью _ScreenCapture_Capture

grayswandir

Новичок
Сообщения
7
Репутация
0
Доброго времени суток!
Что пытаюсь добиться: необходимо отслеживать изменения вида курсора, который меняется при наведении на определенные объекты.
В данный момент для этого использую переделанную, под свои нужны, функцию из темы: "PixelCheckSum: сравнение области экрана с картинкой . "
Однако
Код:
_ScreenCapture_Capture
после определенной итерации (4983 в моем случае) перестает корректно работать и возвращает "0".

Код:
#Include <APIConstants.au3>
#Include <ScreenCapture.au3>
#Include <WinAPIEx.au3>

func getpointer()
$mPos = mousegetpos()
$hBitmap = _ScreenCapture_Capture('',$mPos[0]+1, $mPos[1]+1, $mPos[0]+3, $mPos[1]+3, true)
$tSize = _WinAPI_GetBitmapDimension($hBitmap)
$hDC = _WinAPI_CreateCompatibleDC(0)
$hDib = _WinAPI_CreateDIB(DllStructGetData($tSize, 1), DllStructGetData($tSize, 2), 24)
$pBit = _WinAPI_GetExtended()
$hSv = _WinAPI_SelectObject($hDC, $hDib)
_WinAPI_DrawBitmap($hDC, 0, 0, $hBitmap, $MERGECOPY)
_WinAPI_SelectObject($hDC, $hSv)
_WinAPI_DeleteDC($hDC)
$crc = _WinAPI_ComputeCrc32($pBit, DllStructGetData($tSize, 1) * DllStructGetData($tSize, 2) * 3)
ConsoleWrite('CRC = ' & $crc & @CR)
return $crc
endfunc


Буду рад подсказкам, как это можно вылечить.
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Верх