Usuario
¿Como optener el valor biometrico de un lector DIGITAL PERSONA y manupular en visual 2012?

Pregunta
-
Public Class EnrollmentForm
Inherits CaptureForm
Public features As DPFP.FeatureSet
Public Event OnTemplate(ByVal template)
Public Enroller As DPFP.Processing.Enrollment
Dim conexion As OracleConnection
Protected Overrides Sub Init()
MyBase.Init()
MyBase.Text = "Fingerprint Enrollment"
Enroller = New DPFP.Processing.Enrollment() ' Create an enrollment.
UpdateStatus()
End Sub
Protected Overrides Sub Process(ByVal Sample As DPFP.Sample)
MyBase.Process(Sample)
features = ExtractFeatures(Sample, DPFP.Processing.DataPurpose.Enrollment)
If (Not features Is Nothing) Then
Try
MakeReport("El conjunto de características de huellas dactilares se creó.")
Enroller.AddFeatures(features) ' Add feature set to template.
Finally
UpdateStatus()
' COMPROBAMOS SI LA PLANTILLA FUE CREADA.
Select Case Enroller.TemplateStatus
Case DPFP.Processing.Enrollment.Status.Ready ' VERIFICA QUE SE CREE UNA BUENA PLANTILLA DE LA HUELLA Y DETENEMOS AL LECTOR
'PROCEDEMOS A GUARDAR LAS HUELLA DACTILAR EN NUESTRA BASE DE DATOS
If conexion.State = ConnectionState.Closed Then
conexion.Open()
End If
Dim cmd As New OracleCommand("INSERT INTO LECTOR (ID,HUELLA,MENSAJE,HUELLAA,HUELLAB,HUELLAC) VALUES(:ID,:HUELLA,:MENSAJE,:HUELLAA,:HUELLAB,:HUELLAC)", conexion)
RaiseEvent OnTemplate(Enroller.Template)
'cmd.CommandType = CommandType.StoredProcedure
' Dim i As String
Dim VARIABLE As String = 0
Dim VARIABLE2 As String = 0
Dim VARIABLE3 As String = 0
Dim VARIABLE4 As String = 0
Dim ab As Integer
For valor As Integer = 0 To 1630
ab = ab + 1
If ab >= 0 And ab <= 450 Then
VARIABLE = VARIABLE & "," & Enroller.Template.Bytes(ab)
End If
If ab >= 451 And ab <= 850 Then
VARIABLE2 = VARIABLE2 & "," & Enroller.Template.Bytes(ab)
End If
If ab >= 851 And ab <= 1250 Then
VARIABLE3 = VARIABLE3 & "," & Enroller.Template.Bytes(ab)
End If
If ab >= 1251 And ab <= 1629 Then
VARIABLE4 = VARIABLE4 & "," & Enroller.Template.Bytes(ab)
End If
Next
cmd.CommandType = CommandType.Text
cmd.Parameters.Add("ID", OracleDbType.Char).Value = 1
cmd.Parameters.Add("HUELLA", OracleDbType.Clob, 1640).Value = VARIABLE
cmd.Parameters.Add("MENSAJE", OracleDbType.Clob, 1640).Value = Enroller.Template.Size
cmd.Parameters.Add("HUELLAA", OracleDbType.Clob, 1640).Value = VARIABLE2
cmd.Parameters.Add("HUELLAB", OracleDbType.Clob, 1640).Value = VARIABLE3
cmd.Parameters.Add("HUELLAC", OracleDbType.Clob, 1640).Value = VARIABLE4
'cmd.Parameters.Add("MENSAJE", OracleDbType.Char).Value = ParameterDirection.Output
'cmd.ExecuteNonQuery()
Try
cmd.ExecuteNonQuery()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
'MessageBox.Show(cmd.Parameters("MENSAJE").Value.ToString())
SetPrompt("Haga clic en Cerrar y, a continuación, haga clic en Verificación de huellas dactilares.")
StopCapture()
'SI EL PROCESO FALLA REINICIAMOS LAS CAPTURAS
Case DPFP.Processing.Enrollment.Status.Failed
Enroller.Clear()
StopCapture()
RaiseEvent OnTemplate(Nothing)
StartCapture()
End Select
End Try
End If
End Sub
Protected Sub UpdateStatus()
'MOSTRAMOS EL NUMERO DE CAPTURAS QUE NECESITAMOS
SetStatus(String.Format("Muestras de huellas dactilares necesarios: {0}", Enroller.FeaturesNeeded))
End Sub
Private Sub EnrollmentForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
conexion = New OracleConnection("Data Source=SIAHSJ;Persist Security Info=True;User ID=instcmzh_dev; password=instcmzh_dev ")
End Sub
Private Sub InitializeComponent()
Me.SuspendLayout()
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.ClientSize = New System.Drawing.Size(581, 354)
Me.Name = "EnrollmentForm"
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
End ClassA QUI LO QUE TENGO ESQUE SAQUE EL VALOR EN UN STRING PERO NECESITO SACARLO EN UN VALOR TIPO BYTE(1630)
Todas las respuestas
-
De esta forma podes obtener un valor en tipo Byte:
Private Sub GuardarHuella(ByVal template As DPFP.Template)
Dim fingerprintData As New MemoryStream
template.Serialize(fingerprintData)
fingerprintData.Position = 0
Dim br As New BinaryReader(fingerprintData)
Dim bytes As Byte() = br.ReadBytes(CInt(fingerprintData.Length))HUELLA = bytes
-