sacando datos de reloj ZkTeco

13,698 views
Skip to first unread message

elkin dario uribe torres

unread,
Jun 14, 2013, 12:49:10 PM6/14/13
to publice...@googlegroups.com
Buenos dias

Hace poco compraron un dispositivo de Zk Software (ahora ZKTeco para reemplazar el sistema de huellero que se habia implementado, ya que este permite el acceso por medio de huellas, clave de acceso y tarjetas.

Por ahora me he podido conectar al dispositivo utilizando el SDK, pero no he logrado sacar la informacion de los registros.  Agradeceria mucho si alguien me da una luz al respecto.

Tengo los manuales y llevo dos dias leyendo y haciendo pruebas y errores, me he bajado unos ejemplos en Visual Basic  y he convertido algunos comandos a Vfp (lo basico creo) pero nada he logrado.

Saludos


Elkin Uribe

Jairo Miranda

unread,
Jun 14, 2013, 2:08:13 PM6/14/13
to publice...@googlegroups.com

Es el manual en ingles

JM

Manual.pdf

elkin dario uribe torres

unread,
Jun 14, 2013, 2:17:18 PM6/14/13
to publice...@googlegroups.com
Muchas Gracias Jairo

El software para bajar la informacion del Reloj a una base de datos ya la tengo instalada (en español), por defecto trae la base instalada en Acces pero ya la puse a funcionar con SqlServer, pero lo que realmente necesito son los comando utilizados con el SDK para poder bar la informacion ya sea en linea o no, para poder procesarlos en mi programa de nomina tal como lo venia haciendo con el lector de Griaule.

Saludos

Elkin Uribe

narcizo norzagaray

unread,
Jun 14, 2013, 2:17:51 PM6/14/13
to publice...@googlegroups.com
si , ya lo cheque.. esta version.. la del manual .. maneja los 2 tpos.. sqlserver y access ...

Narcizo Norzagaray S.
Desarrollo De Sistemas Computacionales.
www.facebook.com/nzysoft
Cel 622 118 1324
Nextel 129 9426



El 14 de junio de 2013 20:15, narcizo norzagaray <narcizo.n...@gmail.com> escribió:
cual es el problema si el mismo sistema trae la opcion de exportar datos.. ? exportalo, checa la estructura del archivo generado y adecuala a tus necesidades ,,, no se si sea la version que maneja acces ..

Narcizo Norzagaray S.
Desarrollo De Sistemas Computacionales.
www.facebook.com/nzysoft
Cel 622 118 1324
Nextel 129 9426

elkin dario uribe torres

unread,
Jun 14, 2013, 2:19:06 PM6/14/13
to publice...@googlegroups.com
Si Narciso, ya baje los registro y los puedo procesar, pero la idea es ir bajando los registros de forma automatica ( se que se puede).

Saludos

Elkin uribe


El 14 de junio de 2013 13:15, narcizo norzagaray <narcizo.n...@gmail.com> escribió:
cual es el problema si el mismo sistema trae la opcion de exportar datos.. ? exportalo, checa la estructura del archivo generado y adecuala a tus necesidades ,,, no se si sea la version que maneja acces ..

Narcizo Norzagaray S.
Desarrollo De Sistemas Computacionales.
www.facebook.com/nzysoft
Cel 622 118 1324
Nextel 129 9426



El 14 de junio de 2013 20:08, Jairo Miranda <sandrae...@gmail.com> escribió:

narcizo norzagaray

unread,
Jun 14, 2013, 2:32:41 PM6/14/13
to publice...@googlegroups.com
en que esta hecho tu sistema de nomina ? no necesitas los comandos sdk

Narcizo Norzagaray S.
Desarrollo De Sistemas Computacionales.
www.facebook.com/nzysoft
Cel 622 118 1324
Nextel 129 9426



elkin dario uribe torres

unread,
Jun 14, 2013, 2:45:24 PM6/14/13
to publice...@googlegroups.com
Esta Hecho en Vfp 9.0 y SqlServer.  Lo que sucede es que para bajar los registros se debe conectar al programa que se instala con el reloj y de ahi bajarlos a otro formato (excel, plano, dbase, etc) y de ahi procesarlos (subirlos a mi aplicacion) como puedes ver hay manipulacion de al menos un usuario y eso es lo que no se desea.

Intentamos liquidar con el programa que trae, pero los turnos en esta empresa de la que estoy hablando son tan especiales que se debio desarrollar una planilla estilo Excel (pero en Vfp) para cuadrar los turno por dia (en todo el mes), se lo mostre a la empresa que es distribuidora de esa marca y ellos recomnedaron que mejor nos daban los SDK para que nos conectaramos al reloj y bajaramos las marcaciones.

Saludos

Elkin Uribe

Armando Rodríguez Bermúdez

unread,
Jun 14, 2013, 3:06:51 PM6/14/13
to publice...@googlegroups.com

Algo parecido se me presentó hace un tiempo y en aplicación que trae el reloj, viene una opción de descarga automática, cada cierto tiempo. Entonces cada hora se actualizan los registros en la DB de Access y leo desde mi aplicación hecha en VFP esos registros.

 

Saludos

Armando

Juan Bonilla

unread,
Jun 14, 2013, 7:16:06 PM6/14/13
to publice...@googlegroups.com
entre los archivos del sdk esta el zkemkeeper.dll..
si es asi te puedo ayudar..
me avisas..

Angel Dario Rodriguez

unread,
Jun 14, 2013, 7:21:02 PM6/14/13
to publice...@googlegroups.com
El manual no se descarga.


2013/6/14 Juan Bonilla <jbon...@hotmail.com>

elkin dario uribe torres

unread,
Jun 14, 2013, 9:09:26 PM6/14/13
to publice...@googlegroups.com
Buenas noches Juan

Si esa DLL esta entre los archivos del SDK, estuve revisando algunos comentarios dados por ti en el foro pero sigo igual.  Te agradezco yoda la ayuda que me puedas brindar.

Saludos


Elkin Uribe

Juan Bonilla

unread,
Jun 15, 2013, 8:47:39 AM6/15/13
to publice...@googlegroups.com
muestrame el codigo para conectar y para descarga de datos para revisarlo..
el detalle, es que ellos tienen varias versiones del sdk y algunos modelos de relojes nuevos, conectan pero no descargan la informacion correcta con las instrucciones que di en otro hilo, hay q usar otras q tambien estan en el sdk..

Jairo Miranda

unread,
Jun 17, 2013, 2:50:59 PM6/17/13
to publice...@googlegroups.com

Tenemos en la empresa un reloj Tft que usa  el softw<re Biometric.  Voy a probar a ver  que pasa

 

JM

 

De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] En nombre de elkin dario uribe torres
Enviado el: lunes, 17 de junio de 2013 12:06
Para: publice...@googlegroups.com
Asunto: Re: [vfp] Re: sacando datos de reloj ZkTeco

 

Buenos dias

 

En el fin de semana me puse a revisar mas detalladamente los manuales que baje y resulta que el SDK sirve para tres tipos de dispositivos:

 

1. Los B&W

2. Los IFace

3. Los TFT

 

Cada uno de ellos utiliza una serie de comandos propios para poder manipularlos.  Ya teniendo un poco mas claro esto los comando a utilizar por mi parte serian los terceros.

 

La forma de conectarme y de llamar los registros es la siguiente y la tengo en una case si me voy a conectar por TCP-IP o por USB

 

DO CASE

            CASE ALLTRIM(UPPER(thisform.conNTYPE1.DisplayValue)) = "TCP / IP" AND !EMPTY(thisform.conNCODE1.Value )

                        IF thisform.finger1.connect_Net(ALLTRIM(thisform.conNCODE1.Value),4370)

 

                                   sdwEnrollNumber  = ""

                                   sName  = ""

                                   sPassword  = ""

                                   iPrivilege  = 0

                                   bEnabled  = .F.

                                   idwFingerIndex = 0

                                   sTmpData  = ""

                                   iTmpLength = 0

                                   iFlag = 0

 

                                   iMachineNumber = 1

 

                                   Thisform.lvDownload.listItems.clear

 

                                   thisform.finger1.EnableDevice(iMachineNumber, .F.)

 

                                   thisform.finger1.ReadAllUserID(iMachineNumber) &&Lee toda la informacion de los usuarios

                                   thisform.finger1.ReadAllTemplate(iMachineNumber) &&&Lee todas las plantillas de huellas digitales de los usuarios

 

                                   DO WHILE thisform.finger1.SSR_GetAllUserInfo(iMachineNumber, sdwEnrollNumber, sName, sPassword, iPrivilege, bEnabled) = .T.  &&&obtiene información sobre los usuarios

                                               FOR idwFingerIndex = 0 TO 9

                                                           IF thisform.finger1.GetUserTmpExStr(iMachineNumber, sdwEnrollNumber, idwFingerIndex, iFlag, sTmpData, iTmpLength) &&&obtiene la correspondiente cadena de plantillas y la longitud

                                                                       pp = thisform.lvDownload.listItems.add(,sdwEnrollNumber.ToString())

                                                                       pp.text =  xx.documentoempleado

                                                                       pp.subitems(1) = sName

                                                                       pp.subitems(2) = idwFingerIndex.ToString()

                                                                       pp.subitems(3) = sTmpData

                                                                       pp.subitems(4) = iPrivilege.ToString()

                                                                       pp.subitems(5) = sPassword

                                                                       IF bEnabled = .T

                                                                                  pp.subitems(6) = "Activo"                            

                                                                       ELSE 

                                                                                  pp.subitems(6) = "Inactivo"              

                                                                       ENDIF 

                                                                       pp.subitems(7) = iFlag.ToString()

                                                           ENDIF 

                                               NEXT

                                   ENDDO 

                                   =MESSAGEBOX("proceso terminado exitosamente")

                                   thisform.finger1.EnableDevice(iMachineNumber, .T.)

 

                        ELSE

                                   MESSAGEBOX("No se pudo Conectar al sistema")

                        ENDIF

            CASE ALLTRIM(UPPER(thisform.conNTYPE1.DisplayValue)) = "USB" AND !EMPTY(thisform.conNCODE1.Value )

                        IF thisform.finger1.COnnect_USB(NVAL(ALLTRIM(thisform.conNCODE1.Value)))

                                   MESSAGEBOX("Conexion Realizada Exitosamente")

                                   thisform.finger1.disconnect()

                        ELSE

                                   MESSAGEBOX("No se pudo Conectar al sistema")

                        ENDIF

ENDCASE

 

 

La conexion la hace perfecta pero al llamar los datos de los usuario no trae nada.

 

 

saludos

 

 

Elkin Uribe

elkin dario uribe torres

unread,
Jun 18, 2013, 8:51:58 AM6/18/13
to publice...@googlegroups.com
Buenos dias

Ya pude sacar los datos inicialmente de los usuarios, pero me esta dando problema una sola linea la cual funciona bien en .NET ( Convert.ToInt32 ) pero en Vfp no se cual es la equivalente si alguno me pudiera decir cual es le agradeceria mucho.


Saludos


Elkin Uribe



elkin dario uribe torres

unread,
Jun 18, 2013, 9:29:50 AM6/18/13
to publice...@googlegroups.com
Buenos dias

Asunto resuelto gracias a todos

Saludos

Elkin Uribe
ZK.png

Jairo Miranda

unread,
Jun 18, 2013, 2:58:12 PM6/18/13
to publice...@googlegroups.com

Poque no indicas como lo hiciste? . la verdad copie lo que enviaste , pero no me funciona,  ..(el software que tengo es el Biometric)

 

JM

 

De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] En nombre de elkin dario uribe torres
Enviado el: martes, 18 de junio de 2013 8:30
Para: publice...@googlegroups.com
Asunto: Re: [vfp] Re: sacando datos de reloj ZkTeco

 

Buenos dias

elkin dario uribe torres

unread,
Jun 18, 2013, 3:33:31 PM6/18/13
to publice...@googlegroups.com
Hola Jairo

Lo primero que debes determinar que tipo de dispositivo posees para saber cuales son las instrucciones que vas a utilizar.  si no tienes claro si es IFcae, TFT o B&W preguntale al proveedor.

Te voy a indicar como lo logre.

1. Cree un formulario con los siguientes controles
    a. Combo para tipo de conexion (RS232, TCP-IP, USB)
    b. TextBox para digitar direccion IP del equipo (192.168.1.201)
    c. Un LIstView Para poder mostrar los registros
    d. Un commandbutton
    e. Inserta u Olecontrol del zkemkeeper.dll

En el INIT del formulario pon estas instrucciones

Thisform.lvDownload.columnheaders.add( , ,"Consecutivo",100)
Thisform.lvDownload.columnheaders.add( , ,"Documento",175)
Thisform.lvDownload.columnheaders.add( , ,"Nombre Usuario",275)
Thisform.lvDownload.columnheaders.add( , ,"Verificacion",75)
Thisform.lvDownload.columnheaders.add( , ,"Entrada",75)
Thisform.lvDownload.columnheaders.add( , ,"Salida",75)
Thisform.lvDownload.columnheaders.add( , ,"Fecha Marcacion",175)
Thisform.lvDownload.columnheaders.add( , ,"Codigo",75)

Ya con todo eso en el click del Command solo coloca estas instrucciones y listo

DO CASE
CASE ALLTRIM(UPPER(thisform.conNTYPE1.DisplayValue)) = "TCP / IP" AND !EMPTY(thisform.conNCODE1.Value )
IF thisform.finger1.connect_Net(ALLTRIM(thisform.conNCODE1.Value),4370)
sdwEnrollNumber  = "          "
idwVerifyMode   = 0
idwInOutMode   = 0
idwYear   = 0
idwMonth   = 0
idwDay   = 0
idwHour   = 0 
idwMinute  = 0 
idwSecond  = 0 
idwWorkcode  = 0 
idwErrorCode  = 0 
iGLCount = 0
iMachineNumber = 4370

Thisform.lvDownload.listItems.clear
thisform.finger1.EnableDevice(iMachineNumber, .F.)
IF thisform.finger1.ReadGeneralLogData(iMachineNumber) &&leer todas las marcaciones
DO WHILE thisform.finger1.SSR_GetGeneralLogData(iMachineNumber, @sdwEnrollNumber, @idwVerifyMode, @idwInOutMode, @idwYear, @idwMonth, @idwDay, @idwHour, @idwMinute, @idwSecond, @idwWorkcode)
iGLCount = iGLCount + 1
pp = thisform.lvDownload.listItems.add(,'K'+alltr(str(iGLCount)))
pp.text =  alltr(str(iGLCount))
pp.subitems(1) = sdwEnrollNumber
SELECT * FROM empleados WHERE VAL(documento) = VAL(sdwEnrollNumber) INTO CURSOR tmpnombre
IF _tally > 0
LcNombre = PROPER(ALLTRIM(primerapellido) + " " +ALLTRIM(segundoapellido) + " " +ALLTRIM(primernombre) + " " + ALLTRIM(segundonombre))
pp.subitems(2) = LcNombre
ELSE
IF VAL(sdwEnrollNumber) = 43142144
LcDocumento = '43792144'
LcNombre = "Cardona Motoya Rubiela Maria"
pp.subitems(2) = LcNombre
ELSE
LcNombre = "Nombre No Matriculado"
pp.subitems(2) = LcNombre
ENDIF
ENDIF
pp.subitems(3) = idwVerifyMode
IF idwInOutMode = 0
pp.subitems(4) = idwInOutMode
ELSE
pp.subitems(5) = idwInOutMode
ENDIF
LcFechaLog = DATETIME(idwYear,idwMonth,idwDay,idwHour,idwMinute,idwSecond)
LcFecha = DATE(idwYear,idwMonth,idwDay)
LcHora = PADL(ALLTRIM(STR(idwHour)),2,"0") + ":" + PADL(ALLTRIM(STR(idwMinute)),2,"0") + ":" + PADL(ALLTRIM(STR(idwSecond)),2,"0")
pp.subitems(6) = (ALLTRIM(STR(idwYear)) + "-" + PADL(ALLTRIM(STR(idwMonth)),2,"0") + "-" + PADL(ALLTRIM(STR(idwDay)),2,"0") + " " + ;
PADL(ALLTRIM(STR(idwHour)),2,"0") + ":" + PADL(ALLTRIM(STR(idwMinute)),2,"0") + ":" + PADL(ALLTRIM(STR(idwSecond)),2,"0"))
pp.subitems(7) = idwWorkcode
***Verifico si ya existe una marcacion con esa fecha para ese usuario
SELECT * FROM marcaciones WHERE VAL(documento) = VAL(sdwEnrollNumber) AND fecha = LcFechaLog INTO CURSOR tempMarca
IF _tally <= 0 &&&Si el cursor esta en blanco procedemos a insertar el registro
INSERT INTO marcaciones VALUES (PADL(alltr(str(iGLCount)),10,"0"), sdwEnrollNumber, LcNombre, ;
ALLTRIM(STR(idwVerifyMode)), ALLTRIM(STR(idwInOutMode)), LcFechaLog, ALLTRIM(STR(idwWorkcode)), ;
0, 0, LcFecha, LcHora, '0')
ENDIF
ENDDO
ELSE 
thisform.finger1.GetLastError(idwErrorCode)
IF idwErrorCode <> 0
MESSAGEBOX("No se pueden leer datos del dispositivo, Codigo de error: " + idwErrorCode, "Error")
ELSE
MESSAGEBOX("No existen datos en el dispositivo!", "Error")
ENDIF
ENDIF
=MESSAGEBOX("Proceso terminado exitosamente")
thisform.finger1.EnableDevice(iMachineNumber, .T.)

ELSE
MESSAGEBOX("No se pudo Conectar al sistema")
ENDIF
CASE ALLTRIM(UPPER(thisform.conNTYPE1.DisplayValue)) = "USB" AND !EMPTY(thisform.conNCODE1.Value )
IF thisform.finger1.COnnect_USB(NVAL(ALLTRIM(thisform.conNCODE1.Value)))
MESSAGEBOX("Conexion Realizada Exitosamente")
thisform.finger1.disconnect()
ELSE
MESSAGEBOX("No se pudo Conectar al sistema")
ENDIF
ENDCASE

Te doy un consejo no trates de buscar informacion en ZK. Me pase fue leyendo casi todos los hilos (y no te exagero) y solo encontraras soporte para .NET y C++, pues los ejemplos son en esos dos lenguajes y a las personas que como yo trabajamos en VFP ni nos paran bolas (muy pocas personas trabajan en ese lenguaje).

Con los datos que te pongo ya podrias bajar los registros y trabajar a tu gusto, esta es una forma rudimentaria en estos momento la estoy mejorando para ir sacando los registros en linea.  Eso te lo dejo a ti.

Te adjunto los pantallazos del formulario en tiempo de diseño y en ejecucion.


Saludos

Elkin uribe
Formulario.png
marcaciones_reloj.png

Jairo Miranda

unread,
Jun 18, 2013, 3:49:59 PM6/18/13
to publice...@googlegroups.com

Esto me ayuda mucho .  Voy a probarlo.. porque lo que estaba haciendo era leer la Data de acces que genera automáticamente por ODBC.

 

Gracias

Jairo Miranda

unread,
Jun 14, 2013, 1:59:21 PM6/14/13
to publice...@googlegroups.com

Casualmente estoy en lo mismo , y los relojes de la empresa trabajan con un software llamado Biometric , que permite conectarse al reloj y exportar los archivos a XLS.  En el reloj se definen  la IP del reloj y una IP que debe ser igual a  la IP de la computadora donde esta instalado el Biometric de esta manera es como lo reconoce .. estoy buscando los manuales después los envio..

 

192.168.0.25 Ip del Reloj en la red

192.168.0.245  es la IP del equipo donde tengo instalado el Biometric

 

JM

narcizo norzagaray

unread,
Jun 14, 2013, 2:15:43 PM6/14/13
to publice...@googlegroups.com
cual es el problema si el mismo sistema trae la opcion de exportar datos.. ? exportalo, checa la estructura del archivo generado y adecuala a tus necesidades ,,, no se si sea la version que maneja acces ..

Narcizo Norzagaray S.
Desarrollo De Sistemas Computacionales.
www.facebook.com/nzysoft
Cel 622 118 1324
Nextel 129 9426



El 14 de junio de 2013 20:08, Jairo Miranda <sandrae...@gmail.com> escribió:

narcizo norzagaray

unread,
Jun 14, 2013, 2:18:41 PM6/14/13
to publice...@googlegroups.com
exporta la informacion y manejala sobre el archivo exportado.. mas facil---

Narcizo Norzagaray S.
Desarrollo De Sistemas Computacionales.
www.facebook.com/nzysoft
Cel 622 118 1324
Nextel 129 9426



elkin dario uribe torres

unread,
Jun 17, 2013, 1:06:23 PM6/17/13
to publice...@googlegroups.com

leonardo trujillo

unread,
Mar 28, 2014, 3:51:50 PM3/28/14
to grupo google vfp
perdón que resucite este post
ando en la misma con este marcador, cuyo sistema es fingerprint attendance system

¿saben en qué tabla del acces guarda los registros de entrada salida? porque me enviaron el acces, pero se ve que no está con las marcas, porque ninguna tabla de las que abrí tiene los registros de tiempo.
primero quiero hacer pruebas con el acces y luego conectarme por la ip del aparato, como lo hace elkin.
muchas gracias

Jorge DG

unread,
Apr 12, 2016, 1:03:06 PM4/12/16
to Comunidad de Visual Foxpro en Español
Hola Elkin Darío,
quiero agradecerte ya que soy también programador en VFP9, como en object pascal, pero el fox tiene su corazoncito.
Excelente el tema planteado, ya que tengo un desarrollo en instituciones educativas, y justamente se presenta el problema
del control de horarios de los docentes y planta funcional.
Había un reloj, pero para consultarlo había que bajar desde una pc, y hacer toda la perorata para poder volcarlo a mi aplicación.
"googleando" encontré la punta del hovillo justamente con tu planteo.
MUCHAS GRACIAS por tu aporte, me ha servido muchísimo.
En lo que pueda servirte con las experiencias en programación, más de 30 años en el tema, especializado en educación, desarrollo
en administración pedagógica y en redes, con gusto lo haré.
Gracias!!!
Jorge.

epalpa

unread,
May 1, 2016, 4:29:37 PM5/1/16
to Comunidad de Visual Foxpro en Español
Buenas tardes Elkin, muchas gracias por tu código. lo baje e intento utilizarlo pero no trae datos
    por favor me ayudarías a resolverlo o indicarme que estoy haciendo mal 


muchas gracias

elkin dario uribe torres

unread,
May 2, 2016, 7:42:42 PM5/2/16
to publice...@googlegroups.com
Buenas noches

El codigo que expuse es el que utilizo con el reloj y funciona.  No se, mira la conexion y el tipo de reloj.  Cada reloj trae un manual y por lo general muestras de programa en Vb.


Saludos

Edwin Duran

unread,
Jun 6, 2016, 8:07:44 AM6/6/16
to Comunidad de Visual Foxpro en Español
Buen dia Elkin

Voy a probar este código que enviaste, cuando quiero agregar la dll, me da el siguiente error anexo imagen, 
zkerror.png

Edwin Duran

unread,
Dec 1, 2016, 8:06:15 AM12/1/16
to Comunidad de Visual Foxpro en Español
Buen Dia

Con el ejemplo expuesto aquí ya pude conectarme y ver los datos del reloj. lo que no he podido es después de bajar los datos que se borre el historial tengo el siguiente código

Thisform.finger1.CLEArData(iMachineNumber,1)
Thisform.finger1.REFReshData(iMachineNumber)

Anexo información encontrada con ejemplos
UserInfoMain.cs.txt

Sue Pazmiño

unread,
Apr 20, 2017, 6:27:13 PM4/20/17
to Comunidad de Visual Foxpro en Español
Estimado Edwin:

Escribo desde Ecuador, he copiado el codigo dejado en este blog para descargar las timbradas del reloj biometrico pero tengo unos errores que no entiendo, por favor si me pueden ayudar:
-No se donde definen FINGER1 ya que me da error ese objeto no existe
-Todo lo que se define en el INIT del formulario también me da error.
-Pregunta: Solo funciona en VFP9.0 o desde el vfp6.0

Muchas Gracias por su gentil respuesta.

Edwin Duran

unread,
Apr 21, 2017, 3:32:32 PM4/21/17
to Comunidad de Visual Foxpro en Español
Saludos, el codigo lo he probado con vfp9.

Sue Pazmiño

unread,
Apr 25, 2017, 10:19:03 PM4/25/17
to Comunidad de Visual Foxpro en Español
Hola Edwin:
Nuevamente necesito de su ayuda, he creado el formulario y he copiado todo el código que se adjunta, pero me salen un montón de errores.  Por favor me pueden indicar aparte de crear el formulario, debo instalar algún driver? o dll y donde los pongo.  Además no se a que se refiere THISFORM.FINGER1..... ya que en el form no hay nada que tenga el nombre de FINGER1.
Disculpa si son muchas preguntas pero no logro hacer que funcione y debo entregar esto en funcionamiento lo mas pronto.
El reloj que manejo es de tipo TFT, pero no se que debo instalar del equipo y donde.
De nuevo muchas gracias por su colaboración.
Saludos cordiales

Edwin Duran

unread,
Apr 25, 2017, 11:47:59 PM4/25/17
to Comunidad de Visual Foxpro en Español
hola tienes que instalar las dll

Sue Pazmiño

unread,
Apr 27, 2017, 12:53:48 PM4/27/17
to Comunidad de Visual Foxpro en Español
Hola buenos días:

Por favor me puede confirmar si esta aplicación funciona para un reloj de lectura facial?  Porque le probé pero no conecta.
gracias

Sue Pazmiño

unread,
Apr 27, 2017, 1:08:28 PM4/27/17
to Comunidad de Visual Foxpro en Español
Buenos días Edwin:

Muchas gracias, ya se eliminaron unos errores con la instalación de las dll.

Sue Pazmiño

unread,
Apr 27, 2017, 1:11:57 PM4/27/17
to Comunidad de Visual Foxpro en Español
Buenos días Elkin:

Me puede indicar donde se definen los columnheaders.add que estan en el INIT del form, ya que me genera error.
Disculpas pero estoy iniciando mi programación en este tipo de conexiones con biometricos.
Gracias por la ayuda.

Sue Pazmiño

unread,
May 2, 2017, 6:31:37 PM5/2/17
to Comunidad de Visual Foxpro en Español
Buenos días Edwin:

Me puede indicar donde se definen los columnheaders.add que estan en el INIT del form, ya que me genera error.
Disculpas pero estoy iniciando mi programación en este tipo de conexiones con biometricos.
Gracias por la ayuda.

El martes, 25 de abril de 2017, 22:47:59 (UTC-5), Edwin Duran escribió:

Sue Pazmiño

unread,
May 2, 2017, 7:11:42 PM5/2/17
to Comunidad de Visual Foxpro en Español
Buenas tardes:

Gracias ya no hace falta, ya entendí como se arma el control del listview.
Saludos

Oscar Guerrero

unread,
Jul 13, 2017, 6:01:53 PM7/13/17
to Comunidad de Visual Foxpro en Español
Estimado me puedes indicar como insertaste el control , no encuentro la libreria, hay un archivo com el que indicas pero sale error, 

Richard Quelali Mollinedo

unread,
Jul 29, 2017, 4:51:37 PM7/29/17
to Comunidad de Visual Foxpro en Español
buenas mi dispositivo es zkteco iclock 260 no se si alguien tuviera un ejemplo de conexion y consulta con los usuarios registrados....gracias

Brunhilde Sibeth

unread,
Aug 4, 2017, 12:04:46 PM8/4/17
to Comunidad de Visual Foxpro en Español
Buenas a todos! 

Disculpen que quiero reactivar este caso ya cerrado, pero necesito ayuda!
Soy novata en programación JAVA (sé que este tema es vfp, llegué a programar en vb6 así que entendí lo que estuvieron haciendo). 
Necesito hacer lo mismo para que por cada captura de huella en el biométrico, (desconozco el software que tiene el mismo; sé que es ZK el dispositivo) ,pasar ese registro en tiempo real a una bd SQL y de esta a una postgresql (que puedo si es directo a la postgresql mejor) y no sé ni por donde empezar.
A diferencia de ustedes que necesitaban mostrar los datos a un formulario, yo lo único que necesito lograr es, tomar los registros (fecha-hora, id usuario o nro. de documento de identidad del usuario que resgistró su marca) y cargarlos en una tabla de donde generaré mis informes.

Al ver este SDK, creo que tal vez para la conexión puedo tratar de recrearlo en java. En caso de que sepan más o menos como puedo encontrar mi camino o iluminarme un poquito, les estaré sumamente agradecida. Si conocen algún sitio donde puedo informarme, me será de mucha ayuda.(he buscado bastaaante!)

Estaré aguardando alguna sugerencia de ustedes si conocen algo, muchas gracias desde ya!  

Facundo Costantino

unread,
Nov 1, 2017, 2:35:08 PM11/1/17
to Comunidad de Visual Foxpro en Español
Tengo el archivo zkemkeeper.dll, traté de copiarlo en/windows/system y registrarlo y en /windows/system32 y me da error el comando regsvr32 en VFP9.
¿Alguien que me pueda dar mano?

Ing. Bernardo José Martínez Pérez

unread,
Nov 1, 2017, 4:01:26 PM11/1/17
to publice...@googlegroups.com
Registralo pero abriendo la ventana de comandos como administrador.


From: publice...@googlegroups.com <publice...@googlegroups.com> on behalf of Facundo Costantino <fac...@gmail.com>
Sent: Wednesday, November 1, 2017 12:35:08 PM
To: Comunidad de Visual Foxpro en Español
Subject: [vfp] Re: sacando datos de reloj ZkTeco
 

Facundo Costantino

unread,
Nov 2, 2017, 7:39:04 AM11/2/17
to publice...@googlegroups.com
Lo probé así tambien y no funcionó.
¿Alguna otra idea?
Muchas gracias por responder!

El 1 de noviembre de 2017, 17:01, Ing. Bernardo José Martínez Pérez<bj...@hotmail.com> escribió:
Registralo pero abriendo la ventana de comandos como administrador.


Facundo Costantino

unread,
Nov 2, 2017, 8:05:34 AM11/2/17
to Comunidad de Visual Foxpro en Español
Me faltaban copiar las otras dlls y lo volvi a registrar como admin y funcionó aparentemente.
Voy a probar con parte del código que compartieron acá.
:)

Facundo Costantino

unread,
Nov 2, 2017, 8:11:17 AM11/2/17
to publice...@googlegroups.com
¿Alguien sabe como sería el CREATEOBJECT() si no quiero hacerlo en un formulario?

Facundo Costantino

unread,
Nov 2, 2017, 4:16:28 PM11/2/17
to Comunidad de Visual Foxpro en Español
Ya pude conectarme al reloj.
El problema que tengo ahora, es que en la variable sdwEnrollNumber, me devuelve todos caracteres raros.

¿Alguna idea que puedo probar?

Carlos Alfaro

unread,
Nov 3, 2017, 2:57:45 PM11/3/17
to publice...@googlegroups.com

Tenes algun manual que te guie?, por lo menos asi sabrias si representan estados en binario.

Has convertido esos caracteres en binario para ver si tienen algun sentido?

 

Buen dia.

 

 

Carlos Alfaro

Facundo Costantino

unread,
Nov 3, 2017, 3:16:17 PM11/3/17
to Comunidad de Visual Foxpro en Español
Hola Carlos, la verdad no tengo idea como convertirlo.
Entiendo que en esa variable debería venir el número de Id con el cual fue dado de alta la persona al momento de registrar su fichada, ¿verdad?
Te agradezco cualquier dato que me pueda ayudar, gracias por tomate el tiempo de responder!
Saludos
Facundo

Carlos Alfaro

unread,
Nov 3, 2017, 5:01:10 PM11/3/17
to publice...@googlegroups.com

Entonces no te da los resultados que mencionan en los links buscados en Google, extractando lo que dice uno de ellos:

En el siguiente código dice que esa variable es carácter y la convierte a numero, es mas especifica el numero 43142144

Relacionado a esa variable.

 

Perdona, pero no yo no he trabajado con equipos biométricos, solo tomo de la experiencia que tengo en comunicaciones con periféricos conectados a las computadoras.

 

DO CASE

                CASE ALLTRIM(UPPER(thisform.conNTYPE1.DisplayValue)) = "TCP / IP" AND !EMPTY(thisform.conNCODE1.Value )

                               IF thisform.finger1.connect_Net(ALLTRIM(thisform.conNCODE1.Value),4370)

                                               sdwEnrollNumber  = "          "

                                               idwVerifyMode   = 0

                                               idwInOutMode   = 0

                                               idwYear   = 0

                                               idwMonth   = 0

                                               idwDay   = 0

                                               idwHour   = 0 

                                               idwMinute  = 0 

                                               idwSecond  = 0 

                                               idwWorkcode  = 0 

                                               idwErrorCode  = 0 

                                               iGLCount = 0

                                               iMachineNumber = 4370

 

                                               Thisform.lvDownload.listItems.clear

                                               thisform.finger1.EnableDevice(iMachineNumber, ..F.)

                                               thisform.finger1.EnableDevice(iMachineNumber, ..T.)

 

                               ELSE

                                               MESSAGEBOX("No se pudo Conectar al sistema")

                               ENDIF

                CASE ALLTRIM(UPPER(thisform.conNTYPE1.DisplayValue)) = "USB" AND !EMPTY(thisform.conNCODE1.Value )

                               IF thisform.finger1.COnnect_USB(NVAL(ALLTRIM(thisform.conNCODE1.Value)))

                                               MESSAGEBOX("Conexion Realizada Exitosamente")

                                               thisform.finger1.disconnect()

                               ELSE

                                               MESSAGEBOX("No se pudo Conectar al sistema")

                               ENDIF

ENDCASE

 

 

Beeker Aarón Valdéz Mattos

unread,
Jan 30, 2018, 4:43:23 PM1/30/18
to Comunidad de Visual Foxpro en Español
Buenas Tardes, podría ayudarme como solucionó lo del Listview ..?

Oscar Castillo

unread,
Mar 9, 2018, 9:26:55 PM3/9/18
to Comunidad de Visual Foxpro en Español
Muy bueno a mi me funciono

por puerto USB
 ThisForm.Olecontrol1.Connect_USB(0) 

Por IP
ThisForm.Olecontrol1.Connect_Net(RELOJES.IP,RELOJES.PUERTO)

micky khan

unread,
Mar 15, 2018, 2:48:45 PM3/15/18
to publice...@googlegroups.com
Create Cursor Datos( Codigo c(6), Fecha c(10), Hora c(8))
Reloj = CREATEOBJECT("zkemkeeper.zkem")
Reloj.Connect_Net("192.168.0.10","4370")
Reloj.EnableDevice(1, .F.)
Reloj.ReadAllUserID(1)

m_enrollNumber = ""
m_verifyMode = 0
m_inOutMode = 0
m_year = 0
m_month = 0
m_day = 0
m_hour = 0
m_minute = 0
m_second = 0
m_workCode = 0

          
Do WHILE ( Reloj.SSR_GetGeneralLogData(1,@m_enrollNumber,@m_verifyMode,@m_inOutMode,@m_year,@m_month,@m_day,@m_hour,@m_minute,@m_second,@m_workCode))
oDia = PADL(ALLTRIM(STR(m_day)), 2, "0") + "/" + PADL(ALLTRIM(STR(m_month)), 2, "0") + "/" + ALLTRIM(STR(m_year))
oHor = PADL(ALLTRIM(STR(m_hour)), 2, "0") + ":" + PADL(ALLTRIM(STR(m_minute)), 2, "0")+ ":" + PADL(ALLTRIM(STR(m_second)), 2, "0")
oEnr = PADL(ALLTRIM(m_enrollNumber), 6, "0")
INSERT INTO Datos values(oEnr, oDia, oHor)

ENDDO 
            
Reloj.EnableDevice(1, .T.)
*************
--
  <_>
 (o o)
 (  °  )
<>-<>
Micky Khan

Mary

unread,
Mar 16, 2018, 12:19:25 PM3/16/18
to Comunidad de Visual Foxpro en Español
visisten mi pagina ay un enlace que hay como sacar datos de biometricos tiene que pagar 60 anuales 



El viernes, 14 de junio de 2013, 11:49:10 (UTC-5), elkin dario uribe torres escribió:
Buenos dias

Hace poco compraron un dispositivo de Zk Software (ahora ZKTeco para reemplazar el sistema de huellero que se habia implementado, ya que este permite el acceso por medio de huellas, clave de acceso y tarjetas.

Por ahora me he podido conectar al dispositivo utilizando el SDK, pero no he logrado sacar la informacion de los registros.  Agradeceria mucho si alguien me da una luz al respecto.

Tengo los manuales y llevo dos dias leyendo y haciendo pruebas y errores, me he bajado unos ejemplos en Visual Basic  y he convertido algunos comandos a Vfp (lo basico creo) pero nada he logrado.

Saludos


Elkin Uribe
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted

JuanK

unread,
Jun 8, 2018, 7:12:10 PM6/8/18
to Comunidad de Visual Foxpro en Español
disculpen pero vi varias respuestas sin contestar, primero finger1, asi hay que nombrar al olecontrol, despues en el codigo en el case de USB hay un NVAL, hay que quitar la N, solo dejar VAL, luego el tema de los DLL, vere como subirlas al grupo
 
por ultimo solo me falta preguntar o mas bien pedir las dos tablas que se mencionan dentro del codigo del boton, si alguien las tiene porfa pasenlas. 

JuanK

unread,
Jun 8, 2018, 7:38:28 PM6/8/18
to Comunidad de Visual Foxpro en Español

toramaru utsunomiya

unread,
Jul 30, 2018, 5:53:33 PM7/30/18
to Comunidad de Visual Foxpro en Español
Buenas tardes, a mi me esta presentando este problema (foto anexa), el cual me dice que no existe el grupo
as.PNG

desarrollo...@multiflora.com

unread,
Sep 3, 2018, 11:43:39 AM9/3/18
to Comunidad de Visual Foxpro en Español

como hizo para obtener los datos del dispositov sin el sdk? en que lenguaje lo desarrollo?





On Friday, June 14, 2013 at 1:17:18 PM UTC-5, elkin dario uribe torres wrote:
Muchas Gracias Jairo

El software para bajar la informacion del Reloj a una base de datos ya la tengo instalada (en español), por defecto trae la base instalada en Acces pero ya la puse a funcionar con SqlServer, pero lo que realmente necesito son los comando utilizados con el SDK para poder bar la informacion ya sea en linea o no, para poder procesarlos en mi programa de nomina tal como lo venia haciendo con el lector de Griaule.

Saludos

Elkin Uribe


El 14 de junio de 2013 13:08, Jairo Miranda <sandrae...@gmail.com> escribió:

Es el manual en ingles

JM

 


 


Andres Sanchez Glez

unread,
Sep 7, 2018, 10:21:59 PM9/7/18
to publice...@googlegroups.com
Buena noche
Yo uso el software que mencionas con biometricos SYSCOM F9, e igualmente opte por crear la BD en SQLServer. Sin problema esta tomando los registros de los biometricos y los enviea en la BD.

jesus Cortes

unread,
Oct 24, 2018, 1:42:38 PM10/24/18
to Comunidad de Visual Foxpro en Español
facundo:
pudiste resolver  el problema del wdenrollnumer¡?¿'
 

Facundo Costantino

unread,
Oct 24, 2018, 1:44:52 PM10/24/18
to publice...@googlegroups.com
la verdad, nunca pude obtener bien los datos, cuando ejecutaba la consulta, obtenía cualquier cosa.

jesus Cortes

unread,
Oct 24, 2018, 1:49:17 PM10/24/18
to Comunidad de Visual Foxpro en Español

caray!!!
tengo el mismo problema ;(

ya logro conexion y todo
pero al omento de checar me manda el siguiente formato .. 

808595506    9   2049-55-0     0:0:0




 

jesus Cortes

unread,
Oct 24, 2018, 1:51:38 PM10/24/18
to Comunidad de Visual Foxpro en Español
Private Sub CZKEM1_OnAttTransaction(ByVal EnrollNumber As Long, ByVal IsInValid As Long, _
    ByVal AttState As Long, ByVal VerifyMethod As Long, ByVal Year As Long, ByVal Month As Long, _
    ByVal Day As Long, ByVal Hour As Long, ByVal Minute As Long, ByVal Second As Long)
    
    
        Text1.Text = Text1.Text & "Att Transaction:   " & EnrollNumber & "    " & AttState & "   " & Year & "-" & _
        Month & "-" & Day & "     " & Hour & ":" & Minute & ":" & Second & _
        Chr(13) & Chr(10)

 
'dejo parte del codigo 
espero alguien me pueda dar ayudar 
saludos..y gracias facundo por responder.
 



 

Edwin Duran

unread,
Oct 24, 2018, 1:54:43 PM10/24/18
to Comunidad de Visual Foxpro en Español
Si me prestan un reloj voy completar un ejemplo y lo subo

Alejandro Alonso

unread,
Aug 10, 2020, 8:22:19 PM8/10/20
to Comunidad de Visual Foxpro en Español
Hola que tal, yo estoy trabajando con el modelo k40,  ya descargue el sdk  de la pagina del fabricante   lo registre tiene un bat que ejecutas como administrador y te registra el sdk, pude hacer el formulario en vfp9   y probe el codigo  funciona hace la conexion y regresa los datos  sin embargo estoy batallando por las tablas que manejas empleados y marcaciones ya hice las tablas estoy deduciendo los campos y los tipos tipos con el insert into que maaneja el codigo, si nos pudieras proporcionar las tablas o estructuras que manejas me ayudarias mucho gracias.



El martes, 18 de junio de 2013, 8:29:50 (UTC-5), elkin dario uribe torres escribió:
Buenos dias

Asunto resuelto gracias a todos

Saludos

Elkin Uribe


El 18 de junio de 2013 07:51, elkin dario uribe torres <eduri...@gmail.com> escribió:
Buenos dias

Ya pude sacar los datos inicialmente de los usuarios, pero me esta dando problema una sola linea la cual funciona bien en .NET ( Convert.ToInt32 ) pero en Vfp no se cual es la equivalente si alguno me pudiera decir cual es le agradeceria mucho.


Saludos


Elkin Uribe



Saludos


Elkin Uribe


El 14 de junio de 2013 18:16, Juan Bonilla <jbon...@hotmail.com> escribió:
entre los archivos del sdk esta el zkemkeeper.dll..
si es asi te puedo ayudar..
me avisas..



El viernes, 14 de junio de 2013 11:49:10 UTC-5, eduribe2000 escribió:
Buenos dias

Hace poco compraron un dispositivo de Zk Software (ahora ZKTeco para reemplazar el sistema de huellero que se habia implementado, ya que este permite el acceso por medio de huellas, clave de acceso y tarjetas.

Por ahora me he podido conectar al dispositivo utilizando el SDK, pero no he logrado sacar la informacion de los registros.  Agradeceria mucho si alguien me da una luz al respecto.

Tengo los manuales y llevo dos dias leyendo y haciendo pruebas y errores, me he bajado unos ejemplos en Visual Basic  y he convertido algunos comandos a Vfp (lo basico creo) pero nada he logrado.

Saludos


Elkin Uribe

El viernes, 14 de junio de 2013 11:49:10 UTC-5, eduribe2000 escribió:
Buenos dias

Hace poco compraron un dispositivo de Zk Software (ahora ZKTeco para reemplazar el sistema de huellero que se habia implementado, ya que este permite el acceso por medio de huellas, clave de acceso y tarjetas.

Por ahora me he podido conectar al dispositivo utilizando el SDK, pero no he logrado sacar la informacion de los registros.  Agradeceria mucho si alguien me da una luz al respecto.

Tengo los manuales y llevo dos dias leyendo y haciendo pruebas y errores, me he bajado unos ejemplos en Visual Basic  y he convertido algunos comandos a Vfp (lo basico creo) pero nada he logrado.

Saludos


Elkin Uribe
El viernes, 14 de junio de 2013 20:09:26 UTC-5, eduribe2000 escribió:
Buenas noches Juan

Si esa DLL esta entre los archivos del SDK, estuve revisando algunos comentarios dados por ti en el foro pero sigo igual.  Te agradezco yoda la ayuda que me puedas brindar.

Saludos


Elkin Uribe


El 14 de junio de 2013 18:16, Juan Bonilla <jbon...@hotmail.com> escribió:
entre los archivos del sdk esta el zkemkeeper.dll..
si es asi te puedo ayudar..
me avisas..



Edwin Duran

unread,
Aug 10, 2020, 10:49:16 PM8/10/20
to Comunidad de Visual Foxpro en Español
Puedes colocar el codigo que tienes para entenderte mejor

elkin dario uribe torres

unread,
Aug 11, 2020, 10:26:20 AM8/11/20
to publice...@googlegroups.com
Buenos dias

esta es la estructura de la tabla donde se bajan las marcaciones, pero ten encuenta que solo sirve para ello en mi caso, porque despues de bajarlas se hace un proceso adicional para poder mandarlas a los turnos correspondientes y poder liquidar la nomina.


Cordialmente


Elkin Uribe
Medellin - Colombia
image.png

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/874a83c6-7601-4f2b-8b0a-db24c15c74a4o%40googlegroups.com.

Edwin Duran

unread,
Aug 11, 2020, 10:41:30 AM8/11/20
to Comunidad de Visual Foxpro en Español
La estructura tu l;a manejas como  quieras esta es la del reloj escribeme por whatsap al 829-452-7948 y comentarte algo para trabajarlo juntos

Create Cursor tmpDownLOg (empid v(11),lnYear  N(4),lnMonth N(2),lnDay N(2),lnHour N(2),lnMinute N(2),srno N(10), cardid i,IsAuto c(2),VerifyMode i,InOutType i)
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publice...@googlegroups.com.

James Suárez

unread,
Aug 11, 2020, 4:48:48 PM8/11/20
to publice...@googlegroups.com
Para este tipo de cosas existe kodnet

Con kodnet accedes a cualquier clase, ensamblado .NET sin necesidad de registrada cada componente.

Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/48a026ec-0e64-40f9-a52b-e3483b8e9ac6o%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages