¿ Es el activeX de Fivewin el que no recoge el valor de ese dato ?
En el manual dice: rawImage As Variant
Es posible si se recoge el dato, hacer luego la llamada con 6 parametros o con 9 con la otra llamada a biometricdisplay:
oFingerX:Do("CapRawImageToHandle", raw:img, raw:width, raw:height, oWnd:hDC, @handle )
Tiene alguien una solución para lectura de huella digital con algun lector similar.
Saludos
- Code: Select all Expand view
#include "FiveWin.ch"
STATIC oWnd
STATIC oFingerX
FUNCTION Main()
IF IsActiveX("GrFingerX.GrFingerXCtrl")
DEFINE WINDOW oWnd TITLE "FiveWin ActiveX Support"
@ 10 , 10 BITMAP oFoto RESOURCE "LOGOIPG" OF oWnd SIZE 100,50 PIXEL NOBORDER
oFingerX = TActiveX():New( oWnd, "GrFingerX.GrFingerXCtrl", 1,1,10,10)
*oWnd:oClient = oFingerX
oFingerX:Do("Initialize")
contextId:= 0
oFingerX:Do("CreateContext",contextId)
oFingerX:Do("CapInitialize")
oFingerX:bOnEvent = { | event, aParams, pParams | EventInfo( event, aParams, pParams, oFingerX ) }
ACTIVATE WINDOW oWnd
oFingerX:Do("CapFinalize")
oFingerX:Do("Finalize")
ELSE
MsgStop("TIENE QUE ESTAR INSTALADO GRFINGER","ATENCION")
ENDIF
RETURN nil
***
FUNCTION EventInfo( event, aParams, pParams, oFingerX )
Local cEvent := cValToChar( event )
Local cMsg := "Event: " + cValToChar( event ) + CRLF
Local n
cMsg += "Params: " + CRLF
FOR n = 1 to Len( aParams )
cMsg += cValToChar( aParams[ n ] ) + CRLF
NEXT
IF cEvent == "SensorPlug" .or. cEvent == "1"
IF aParams[1] != "File"
oFingerX:Do("CapStartCapture","DPMSA077A3")
ENDIF
ELSE
IF cEvent == "SensorUnplug"
oFingerX:Do("CapStopCapture","DPMSA077A3")
ELSE
IF cEvent == "FingerDown" .or. cEvent = "4"
ELSE
IF cEvent == "FingerUp" .or. cEvent = "3"
ELSE
IF cEvent == "ImageAcquired" .or. cEvent = "5"
MsgInfo(Valtype(aParams[4]))
*raw:img = aParams[ 4] //rawImage
*raw:height = aParams[ 3] //height
*raw:width = aParams[ 2] //width
*raw:res = aParams[ 5] //res
*PrintBiometricDisplay( .F. , 0 )
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
RETURN NIL
***
STATIC FUNCTION PrintBiometricDisplay(biometricDisplay, context )
Local nRet, Handle
If biometricDisplay
*oFingerX:Do("biometricdisplay", template:tpt, raw:img, raw:width, raw:height, raw:res, oWnd:hDC, @handle, context)
Else
oFingerX:Do("CapRawImageToHandle", raw:img, raw:width, raw:height, oWnd:hDC, @handle )
End If
MsgInfo(handle)
*IF !(handle ==NIL)
* oFoto:Picture = handle
* oFoto:Update()
*ENDIF
RETURN NIL