MAMP2 Posted April 5, 2021 Report Share Posted April 5, 2021 Bom dia a todos alguem ja usa a leitura de impressao digital pelo FiveWin? podem me dar uma ajuda? Obrigado Quote Link to comment Share on other sites More sharing options...
Ariston Santos Posted April 5, 2021 Report Share Posted April 5, 2021 Tenho esta para o leitor Hamster, da Nitgen. (2) Leitor Biométrico Hamster Dx - Nitgen - Fingkey | Mercado Livre /****************************************************************************** * Nome do PRG: caddigit.prg * * Função.....: Modulo para captura e cadastro da digital (Hamster / Nitgen) * * Autor......: Ariston Santos (Pode contar código de colaboradores) * * Site.......: www.arsoft-ap.com.br * * Contato....: ariston.ap@bol.com.br - MSN: arsoft-ap@hotmail.com * ******************************************************************************/ #include "FiveWin.ch" STATIC cTemplate, oDbrw, aDedo, vDedo FUNCTION ObterBiometria(nQue) LOCAL aDedos := {}, l_Err:=.F., cSql DEFAULT nQue := 1 IF nQue = 1 // Armeiros cSql := "SELECT codigo,"+; // 01 " idarmeiro,"+; // 02 " digital" // 03 cSql += " FROM sgarma_bio_armei WHERE idarmeiro > 0" ELSEIF nQue = 2 // Armeiros cSql := "SELECT codigo,"+; // 01 " idmilitar,"+; // 02 " digital" // 03 cSql += " FROM sgarma_bio_milit WHERE idmilitar > 0" ELSE SysRefresh() ; MsgAlert("Opção não programada.", "Atenção") RETURN "" ENDIF aDedos := SQLArray(cSql, @l_Err, .F.) if l_Err ; RETURN "" ; endif IF LEN(aDedos) == 0 SysRefresh() ; MsgAlert("Nenhuma digital de armeiro foi cadastrada ainda. Cadastre as digitais para habilitar o login protegido e biometria.", "Atenção") RETURN "" ENDIF RETURN TestaDedo(aDedos) FUNCTION TestaDedo(aDedos) LOCAL nId := "", lOerr := .T. CursorWait() TRY objNBioBSP := CreateObject('NBioBSPCOM.NBioBSP') objDevice := objNBioBSP:Device objExtraction := objNBioBSP:Extraction objMatching := objNBioBSP:Matching objExtraction:WindowStyle := 0 objDevice:Open(255) objExtraction:DefaultTimeout := 15000 // Aguardar 15 segundos // SECS("02:00:00") * 1000 // Duas horas convertidas para milliseconds objExtraction:Capture() if objExtraction:ErrorCode <> 0 IF objExtraction:ErrorCode = 261 // Leitor não conectado SysRefresh() ; MsgAlert("Falha na comunicação com o leitor biométrico. Verifique se está conectado.", ValToPrg(objExtraction:ErrorCode)+": "+objExtraction:ErrorDescription) ELSEIF objExtraction:ErrorCode = 516 // Tempo esgotado SysRefresh() ; MsgAlert("Falha na captura ou Tempo esgotado: 15 segundos.", ValToPrg(objExtraction:ErrorCode)+": "+objExtraction:ErrorDescription) ELSE SysRefresh() ; MsgAlert("Ocorreu este erro: : "+objExtraction:ErrorDescription,"Aviso") ENDIF lOerr := .F. // Não mostrar oErr description BREAK endif cTempl := objExtraction:TextEncodeFIR() IF LEN(aDedos) > 0 FOR nDedo := 1 TO LEN(aDedos) objMatching:VerifyMatch(cTempl, aDedos[nDedo,3]) if objMatching:ErrorCode <> 0 CursorArrow() SysRefresh() ; MsgAlert("Ocorreu este erro: : "+ValToPrg(objMatching:ErrorCode)+": "+objMatching:ErrorDescription,"Aviso") lOerr := .F. // Não mostrar oErr description EXIT else if objMatching:MatchingResult = 1 nId := ALLTRIM(STR(aDedos[nDedo,2])) // Atribuido a nOper EXIT endif endif NEXT ENDIF objDevice:Close(255) CATCH oErr CursorArrow() if lOerr SysRefresh() ; MsgAlert( "Não foi possível conectar-se ao leitor biométrioco."+CRLF+"Err: "+oErr:Description, "Aviso") endif END CursorArrow() RETURN( nId ) FUNCTION LerBiometria() LOCAL digital:= "", lOerr := .T. CursorWait() TRY objNBioBSP := CreateObject('NBioBSPCOM.NBioBSP') objDevice := objNBioBSP:Device objExtraction := objNBioBSP:Extraction objMatching := objNBioBSP:Matching objExtraction:WindowStyle := 0 objDevice:Open(255) objExtraction:DefaultTimeout := 15000 // Aguardar 15 segundos // SECS("02:00:00") * 1000 // Duas horas convertidas para milliseconds objExtraction:Capture() if objExtraction:ErrorCode <> 0 IF objExtraction:ErrorCode = 261 // Leitor não conectado SysRefresh() ; MsgAlert("Falha na comunicação com o leitor biométrico. Verifique se está conectado.", ValToPrg(objExtraction:ErrorCode)+": "+objExtraction:ErrorDescription) ELSEIF objExtraction:ErrorCode = 516 // Tempo esgotado SysRefresh() ; MsgAlert("Falha na captura ou Tempo esgotado: 15 segundos.", ValToPrg(objExtraction:ErrorCode)+": "+objExtraction:ErrorDescription) ELSE SysRefresh() ; MsgAlert("Ocorreu este erro: "+objExtraction:ErrorDescription, "Aviso") ENDIF lOerr := .F. // Não mostrar oErr description BREAK endif digital:= objExtraction:TextEncodeFIR() objDevice:Close(255) CursorArrow() CATCH oErr CursorArrow() if lOerr SysRefresh() ; MsgAlert( "Não foi possível conectar-se ao leitor biométrioco."+CRLF+"Err: "+oErr:Description, "Aviso") endif END CursorArrow() RETURN( digital ) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.