Visual Basic.NET - ayuda como capturar huella digital

 
Vista:
sin imagen de perfil

ayuda como capturar huella digital

Publicado por zetaaster (2 intervenciones) el 12/09/2015 21:34:42
Buenos dias a todos, espero me puedan dar ayudar pues tengo un problema en cuanto a programacion en visual basic 2010 soy nuevo en esto por lo que ay algunas cosas que no logro entender como es el caso de el procedimiento property estoy tratando de hacer un registro de asistencia mediante huella digital pero, esta parte se me esta dificultando un poco.Pongo parte del codigo que no logro entender aun.

Estoy trabajando con el lector digital persona modelo 4500 y visual basic 2010 tengo el sdk, y un ejemplo de su funcionamiento,en el ejemplo estoy tratando de comprenderlo depurandolo pero resulta complicado pues utiliza algunas palabras que no comprendo al 100% showdialog es una de ellas,asi como property, function y demas.
Pongo aqui un fragmento de codigo que su funcion es seleccionar un lector ,al dar click en selecccionar, me mandar al Form Main.




Private _readerSelect As ReaderSelect <--- por lo que eh investigado aqui se declara una variable del tipo de la clase
If _readerSelect Is Nothing Then <-- se compara su contenido
_readerSelect = New ReaderSelect <---- reserva espacio en memoria
_readerSelect.Sender = Me <--Haciendo una depuración veo que me manda al formulario principal pero no entiendo porque con el procedimiento "Sender" pero esto teniendo un dolor de cabeza al tratar de entender eso de property en gran parte del codigo se utiliza q
End If




_readerSelect.ShowDialog()

_readerSelect.Dispose()
_readerSelect = Nothing



cualquier ayuda o comentario les estare muy agradecido
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

ayuda como capturar huella digital

Publicado por David (45 intervenciones) el 13/09/2015 18:29:47
No es por desalentarte, y sin ánimo de ofender, pero te aconsejo que hagas por lo menos un curso de programación y uno de VB.NET, puesto que el código que pones parece bastante sencillo.
Aunque si estás aprendiendo te aconsejo que aprendas C#
Dicho esto, la línea que indicas con la property Sender supongo que es para indicar el padre del diálogo que dices que se muestra, que no se muestra en esa línea, sino al llamar a ShowDialog() que es el método que lo muestra de forma modal; eso quiere decir que la ejecución de código espera a que se cierre el diálogo para continuar, liberando los recursos utilizados (dispose()) al cerrarse dicho diálogo.

La información que necesitas está en _readerSelect justo después de ShowDialog() y antes del Dispose()

No sé si aclara tus dudas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

ayuda como capturar huella digital

Publicado por zetaaster (2 intervenciones) el 13/09/2015 21:03:13
Gracias por tu respuesta y por tu sugerencia, he trabajado con visual se las bases, solo que para manipular un lector de huellas nunca lo he hecho de ahi viene mi dificultad por entenderlo.

Estoy tratando de hacer que el formulario al momento de que cargue ya me seleccione el lector de huellas por defecto, pues el codigo que puse me abre un formulario para que yo lo haga manualmente.Para evitar el siguiente codigo que me esta mandando un error al ejecutarlo.


Private _lectores As ReaderCollection

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click


_lectores = ReaderCollection.GetReaders() "en este apartado tengo la duda de si le estoy pasando los lectores actuales a la instacia llamada _lectores o si solo crea un tipo de valor que indica que si existe alguno "



For Each Lector As Reader In _lectores "en este pequeño for busco si encuentra lectores con ayuda de la instancia creada y del procedimiento llamado Lector, con el cual aun no estoy muy familiarizado "
MsgBox("Lector Encontrado OK")

MsgBox(lector.Description.SerialNumber)

Next

If _lectores.Equals("") Then "aqui intente probar si la variable tiene algun dsponible de ser asi"
If Not AbrirLector() Then " paso a la funcion AbrirLector de ahi me ada a la funcion"
Me.Close()
End If
End If
End Sub


Private _lector As Reader
Public Property Lector() As Reader
Get
Return _lector
End Get
Set(ByVal value As Reader)
_lector = value
End Set
End Property

Public Function AbrirLector() As Boolean
Reset = False
Dim resultado As Constants.ResultCode = Constants.ResultCode.DP_DEVICE_FAILURE

resultado = _lectoractual.Open(Constants.CapturePriority.DP_PRIORITY_COOPERATIVE) "Aqui es donde me marca un error el cual dice "Referencia a objeto no establecida como instancia de un objeto." y de ahi no pasa"

If resultado <> Constants.ResultCode.DP_SUCCESS Then
MessageBox.Show("Error: " & resultado.ToString())
Reset = True
Return False
End If

Return True

End Function


Gracias por su ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

ayuda como capturar huella digital

Publicado por David (45 intervenciones) el 14/09/2015 00:36:30
Te da error porque no estás asignando valor en ningún sitio a la variable _lectoractual, por lo que su valor es Nothing.
Por otro lado, el Field _lector es distinto de la Property asociada Lector, puedo que uno es un array y el otro no.
Supongo que ReadersCollection es una clase del SDK. Si es así, con esta línea
1
_lectores = ReaderCollection.GetReaders()
Lo que estás haciendo es recuperar los lectores (hardware) instalados en el equipo, y guardando la información de todos ellos en el array _lectores. Lo que no sé decirte es si no hay ninguno instalado, si te devolverá un array vacío o Nothing.
Dicho esto, yo lo haría así (puede que haya algún fallo; lo he hecho de cabeza ):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
 
Dim _lectores As ReaderCollection = ReaderCollection.GetReaders()
 
If _lectores = Nothing Then
    MsgBox("No hay lectores de huella instalados en el equipo! ")
    Exit Sub
End If
 
If _lectores.Length = 0 Then
    MsgBox("No hay lectores de huella instalados en el equipo! ")
    Exit Sub
End If
 
Dim lector As Reader = _lectores(1)
 
If Not AbrirLector(lector) Then
    Me.Close()
End If
End Sub
 
Public Function AbrirLector(ByVal lector As Reader) As Boolean
Reset = False
Dim resultado As Constants.ResultCode = Constants.ResultCode.DP_DEVICE_FAILURE
 
resultado = lector.Open(Constants.CapturePriority.DP_PRIORITY_COOPERATIVE)
 
If resultado <> Constants.ResultCode.DP_SUCCESS Then
    MessageBox.Show("Error: " & resultado.ToString())
    Reset = True
    Return False
End If
 
Return True
 
End Function
Lo haría así teniendo en cuenta que solo hay un lector de huellas instalado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar