Не могу понять, как правильно получить дескриптор изображения из файла?
Есть вот такой код
В таком виде работает и ищет. Если же раскомментировать строки работы с файлом, то уже не находит сохранёное изображение. Подскажите, что не правильно?
Есть вот такой код
Код:
#include <screencapture.au3>
#include <array.au3>
#include <GUIConstantsEx.au3>
#include <Constants.au3>
#include <WindowsConstants.au3>
#include <MsgBoxConstants.au3>
#include "BmpSearch.au3"
#include <WinAPI.au3>
Global $pause = False
Global $exit = False
Global $hFind
HotKeySet('{F4}', '_pause')
Func _pause()
$pause = True
EndFunc
HotKeySet('{Pause}', '_exit')
Func _exit()
$exit = True
EndFunc
Local $hHighlight_Capture = GUICreate('', 20, 20, -1, -1, $WS_POPUPWINDOW, $WS_EX_CONTROLPARENT)
GUISetState(@SW_SHOW)
WinSetOnTop($hHighlight_Capture, '', 1)
GUISetBkColor(0x0000FF, $hHighlight_Capture)
WinSetTrans($hHighlight_Capture, '', 120)
ConsoleWrite('Наведите квадрат на то, что требуется найти и нажмите F4' & @LF)
Do
Sleep(100)
Until $pause
$pause = False
$aPos = WinGetPos($hHighlight_Capture)
GUIDelete($hHighlight_Capture)
Sleep(500)
$answer = '1.bmp'
_ScreenCapture_SetBMPFormat(0)
$hFind = _ScreenCapture_Capture('', $aPos[0], $aPos[1], $aPos[0] + $aPos[2], $aPos[1] + $aPos[3])
;~ _ScreenCapture_Capture($answer, $aPos[0], $aPos[1], $aPos[0] + $aPos[2], $aPos[1] + $aPos[3]) ; Сохранение в файл
;~ $hFind = _WinAPI_LoadImage(0, $answer, $IMAGE_BITMAP, 0, 0, $LR_LOADFROMFILE) ; Похоже, что используется не правильно !!!
Do
Sleep(500)
If $pause Then
_Search()
$pause = False
EndIf
Until $exit
_WinAPI_DeleteObject($hFind)
Func _Search()
_ScreenCapture_SetBMPFormat(0)
Local $hSource = _ScreenCapture_Capture('')
Local $aCords = _BmpSearch($hSource, $hFind)
If Not @error Then
$iTime = @extended / 1000
If $aCords[0][0] > 100 Then
_ArrayDisplay($aCords)
Else
Local $aGUI[$aCords[0][0] + 1]
For $i = 1 To $aCords[0][0]
ConsoleWrite($aCords[$i][0] & ',' & $aCords[$i][1] & ',' & $aCords[$i][2] & ',' & $aCords[$i][3] & @LF)
$aGUI[$i] = GUICreate("", $aCords[$i][0], $aCords[$i][1], $aCords[$i][2], $aCords[$i][3], $WS_POPUPWINDOW, $WS_EX_CONTROLPARENT)
GUISetBkColor(0xFFFF00, $aGUI[$i])
WinSetTrans($aGUI[$i], '', 120)
GUISetState(@SW_SHOW)
Next
Sleep(2000)
;~ MsgBox(0, 'Found', $aCords[0][0] & ' matches found. Time = ' & $iTime & ' ms')
For $i = 1 To UBound($aGUI) - 1
GUIDelete($aGUI[$i])
Next
EndIf
Else
ConsoleWrite('No Matches Found!' & @LF)
EndIf
_WinAPI_DeleteObject($hSource)
EndFunc ;