FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Como detectar Lector Code-Bar instalado?
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Como detectar Lector Code-Bar instalado?
Posted: Wed Jun 06, 2018 11:51 PM

Amigos.
Hay alguna función en xHarbour-Fivewin que detecte si se tiene instalado un lector de codigo de barras?

Tengo un pequeño software que quiero se pueda ingresar de tres maneras:
1- Normalmente
2- Touch
3- Tarjeta con código de barras

Alguno de ustedes tiene una función (que pueda compartir) para detectar si la pc tiene instalado un lector de código de barras?

Saludos.

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Como detectar Lector Code-Bar instalado?
Posted: Thu Jun 07, 2018 03:05 AM

Hola.
Modifico la pregunta:
Como determinar que tipo de dispositivo se encuentra conectado a un puerto USB? (via programacion por supuesto)
Gracias

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Como detectar Lector Code-Bar instalado?
Posted: Thu Jun 07, 2018 02:53 PM

Mira \samples\PROTECT.PRG se ayuda.

Saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Como detectar Lector Code-Bar instalado?
Posted: Thu Jun 07, 2018 10:56 PM

Karinha.
Gracias por tu interes. No es lo que estoy buscando.

Estoy trabajando con oWMI y voy avanzando.
Gracias.

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 162
Joined: Wed Feb 22, 2017 02:19 AM
Re: Como detectar Lector Code-Bar instalado?
Posted: Fri Jun 08, 2018 03:07 AM

Buenas Estimado.
Mira los lectores la mayoria que se intalan viene en RS232 y USB que deriva un puerto COM en ambos casos. A Puedes partir de ahi en ver en la seccion de perifericos la opcion puertos (COM) de tu PC el puerto que ha sido asignado con el lector conectado , para ver si no estas seguro solo desconecta el periferico y veras que desaparece de la lista mencionada y si lo conectar pues nada veras cual puerto asiga el PC.

Ahora para uitlizarlos es mas simple pues la mayoria puedes congiurarlos como si fueran un agregado del teclado que cualquier Get o editor podras ver que graban.

Ahora si por otro lado no esta asi configurado de esa manera debes de accesar el puerto asignado y utilizar la funciones del puertos con los datos de coneccion como ejemplo COM5:4800,N,8,1 , del five win y crear una pequeña rutina de lectura, y algunos lectores manejan varias velocidades de trasmision de datos y otro solo una , pero bueno eso lo veras en la configuracion y informacion del producto que si no la tienes con el nombre y serial podras encontrar suficiente informacion en internet.

Saludes.
Oscar Chacon.

http://www.Situcr.com

Regards.
S.I.T.U.
Sistemas Inteligentes de transporte urbano
http://www.situcr.com
oscarchacon@Situcr.com
Desarrollos BA4/B4j androide
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Como detectar Lector Code-Bar instalado?
Posted: Fri Jun 08, 2018 02:17 PM
Oscar.
Gracias por tu interés.
Estoy usando el lector sin ningún problema, incluso hago las barras, las imprimo (gracias Marcelo y Cmsof), y las lee perfectamente.

Lo que quiero es que mi programa detecte si existe un lector conectado, para codificar las condiciones pertinentes en mi software.

Como dije anteriormente voy avanzando con WMI.
Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Como detectar Lector Code-Bar instalado?
Posted: Fri Jun 08, 2018 02:28 PM
Amigos.
Aqui les dejo el mencionado avance.
Esta función trabaja bien (hasta el momento), me devuelve TRUE si detecta un lector conectado conforme a la cadena cStrID.
Pero estoy perfeccionándola.
Si alguien desea aportar para su mejoría, todo es bienvenido.
Code (fw): Select all Collapse
//-----------------------//Conocer si lector esta conectado
Function LectCBarConect()
local oPC, oQry, oLoc, oWMI, aInfo, lConectado := .f.
local cStrID := '\\SERVER\ROOT\CIMV2:WIN32_PNPENTITY.DEVICEID="USB\\VID_0483&PID_5710\\5&8A0E485&0&1"'

   TRY
      oLoc:= CreateObject( "wbemScripting.SwbemLocator" )
   CATCH 
      MsgStop("No se pudo crear objeto 'wbemScripting.SwbemLocator'","Alto")
      Quit
   END

   TRY
      oWMI := oLoc:ConnectServer()
   CATCH 
      MsgStop("No se pudo conectar a WMI","Alto")
      Quit
   END

   oQry  := oWMI:ExecQuery( "Select * FROM Win32_USBControllerDevice" )

   for each oPC in oQry
      if alltrim(upper(oPC:Dependent)) == cStrID
         lConectado := .t.
         exit
      endif
   next

   Msginfo(if(lConectado,"Lector Conectado","Lector NO CONECTADO"))
Return lConectado

Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Como detectar Lector Code-Bar instalado?
Posted: Mon Jun 11, 2018 05:38 PM
Esta es otra mejor función que me está funcionando:
Code (fw): Select all Collapse
//-----------------------//Conocer si lector esta conectado
Function LectCBarConect()
local oPC, oQry, oLoc, oWMI,  lConectado := .f., aUSBDev:={}, cDeviceName

   TRY
      oLoc:= CreateObject( "wbemScripting.SwbemLocator" )
   CATCH 
      MsgStop("No se pudo crear objeto 'wbemScripting.SwbemLocator'","Alto")
      Quit
   END

   TRY
      oWMI := oLoc:ConnectServer()
   CATCH 
      MsgStop("No se pudo conectar a WMI","Alto")
      Quit
   END

   oQry  := oWMI:ExecQuery( "Select * FROM Win32_USBControllerDevice" )

 For each oPC in oQry
      cDeviceName := StrTran(HB_ATokens(oPC:Dependent,"=")[2],'"','')  
      aadd(aUSBDev, cDeviceName)
      if Upper(Substr( cDeviceName,1,3 )) = "HID"
         lConectado := .t.
         Exit
      endif
   Next 
   MyXBrowse(aUSBDev,"USBs",{"DeviceName"})

   Msginfo(if(lConectado,"Lector Conectado","Lector NO CONECTADO"))

Return lConectado

Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql

Continue the discussion