Como detectar Lector Code-Bar instalado?

Como detectar Lector Code-Bar instalado?

Postby FranciscoA » 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
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Como detectar Lector Code-Bar instalado?

Postby FranciscoA » Thu Jun 07, 2018 3: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
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Como detectar Lector Code-Bar instalado?

Postby karinha » Thu Jun 07, 2018 2:53 pm

Mira \samples\PROTECT.PRG se ayuda.

Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7872
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Como detectar Lector Code-Bar instalado?

Postby FranciscoA » 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
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Como detectar Lector Code-Bar instalado?

Postby Busmatic_wpb » Fri Jun 08, 2018 3: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
User avatar
Busmatic_wpb
 
Posts: 162
Joined: Wed Feb 22, 2017 2:19 am

Re: Como detectar Lector Code-Bar instalado?

Postby FranciscoA » Fri Jun 08, 2018 2: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
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Como detectar Lector Code-Bar instalado?

Postby FranciscoA » Fri Jun 08, 2018 2: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: Select all  Expand view  RUN
//-----------------------//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
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Como detectar Lector Code-Bar instalado?

Postby FranciscoA » Mon Jun 11, 2018 5:38 pm

Esta es otra mejor función que me está funcionando:
Code: Select all  Expand view  RUN

//-----------------------//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
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 23 guests