Jozelia 11/10/2016, 02:24
Dê uma olhada nesse codigo.
***********************************************************************************************************************
Primeiro voce captura a Impressao Digital (ID) e salva no banco de dados.
Depois disso voce tem que fazer o loop nos registro do banco de dados jogando todas as digitais que voce possui para um "banco" na memoria do computador usando uma biblioteca da propria fabricante.
Este código abaixo vai ajudar voce a entender melhor como isso funciona:
Code Block
Private Sub Form_Load()
Set objNBioBSP = New NBioBSPCOMLib.NBioBSP
Set objDevice = objNBioBSP.Device
Set objExtraction = objNBioBSP.Extraction ' Extraction object
Set objIndexSearch = objNBioBSP.IndexSearch
Set objMatching = objNBioBSP.Matching
' Detecta se esta utilizando leitor de impressão digital
Call objDevice.Open(NBioAPI_DEVICE_ID_AUTO_DETECT)
If objDevice.ErrorCode = 0 Then
FingerPrintDetected = True
Else
FingerPrintDetected = False
End If
objDevice.Close (NBioAPI_DEVICE_ID_AUTO_DETECT)
' Uma função minha para abrir o banco de dados (SQL Server)
AbreBancoDeDados
' Esta é a função principal que carrega as digitais para serem comparadas
CarregaDigitais
End Sub
Function CarregaDigitais()
Dim User_Id As Long
Dim szFinger As String
Dim Conta As Integer
Conta = 0
Call objIndexSearch.ClearDB
' Carrega as Digitais
rst.Open "SELECT USU_ID, USU_FINGERPRINT FROM USUARIOS WHERE USU_FINGERPRINT <> ''"
If RstOK Then
Do While Not rst.EOF
User_Id = rst("USU_ID")
szFinger = rst("USU_FINGERPRINT")
Call objIndexSearch.AddFIR(szFinger, User_Id)
Conta = Conta + 1
rst.MoveNext
Loop
End If
rst.Close
End Function
Function VerificaDigital()
Dim szTextEncodedFIR As String
Dim szPayload As String
Call objDevice.Open(NBioAPI_DEVICE_ID_AUTO_DETECT)
Set objExtraction = objNBioBSP.Extraction
Call objExtraction.Capture(NBioAPI_FIR_PURPOSE_VERIFY)
If objExtraction.ErrorCode = NBioBSPERROR_NONE Then
szTextEncodedFIR = objExtraction.TextEncodeFIR
Else
MsgBox "Falha na leitura da Impressão Digital"
VerificaDigital = ""
Call objDevice.Close(NBioAPI_DEVICE_ID_AUTO_DETECT)
Exit Function
End If
Call objDevice.Close(NBioAPI_DEVICE_ID_AUTO_DETECT)
VerificaDigital = objExtraction.TextEncodeFIR
End Function
No form_load eu inicio os objetos e verifico se o Leitor esta ligado e funcionando;
A função CarregaDigitais() é a que mais voce precisa. É ela que carrega todas as digitais do seu banco de dados para o banco de dados do FingerPrint. É desse banco de dados e NÃO DO SEU BANCO DE DADOS que ele vai fazer a comparação para validar as Digitais.
E por fim a função que faz a busca a partir de uma leitura feita no leitor.
******************************************************************************************
Esse e do Frederico.