Ascoltare USB scanner barcode per leggere data

di il
6 risposte

Ascoltare USB scanner barcode per leggere data

Ciao a tutti, sono nuovo del forum, spero mi siate d' aiuto.

Ho sviluppato un sw per leggere letture barcode ma ho la necessità che, se aperti altri programmi sul PC (Excel, etc...), essendo il lettore barcode in parallelo di tastiera, non mi vada la lettura all' esterno del mio programma.

Avete esempi da testare per il mio caso?

E' un lettore che non va su porta COM e non penso proprio il produttore abbia delle API in aiuto.

Grazie

6 Risposte

  • Re: Ascoltare USB scanner barcode per leggere data

    Se ho capito bene no, come pensi di poter fare?
    E' in emulazione tastiera, quindi qualsiasi cosa "vede" spara sulla tastiera il relativo codice.
    ---
    Da un pezzo utilizzo, in questi casi, degli smartphone con lettori di QR interfacciati con programmello PHP che a sua volta parla col gestionale.
    Essenzialmente quando il telefono inquadra il codice, fa partire una chiamata (HTTP) a un sitarello, che non è altro che un serverello sulla rete locale, cui arriva il codice in GET. A quel punto un microprogramma PHP decodifica il codice, e poi fa le cose che deve fare (chiama il gestionale principale dicendo "guarda che è arrivato questo codice").
    Nel contempo, sul display del telefono, fa apparire per qualche istante chuck norris (sì, chuck norris) per conferma
    ---
    Però hai scritto USB: quindi è possibile che sia disattivabile, tocca fare la cosa più logica (cioè leggere il manuale del produttore)
    ---
    In estremo subordine mi verrebbe da ragionare sulla possibilità di collegare DUE tastiere, una "vera" e una "finta", attivando e disattivando la seconda. Francamente è qualcosa che non mi è mai capitato di fare.
    Di sicuro puoi fare un SetWindowsHookEx(WH_KEYBOARD,ilmiobelhandler, HINSTANCE, 0); o farti pure una piccola DLL con relativo hookino per attivare e disattivare.
    Quindi disattivare la tastiera è pressochè banale. MA scegliere QUALE tastiera? Francamente è intrigante, ma non sono in studio e ci devo pensare.
  • Re: Ascoltare USB scanner barcode per leggere data

    "Se ho capito bene no, come pensi di poter fare?"
    Appunto, non lo so se si può fare.
    Son riuscito a riconoscere se si inserisce un device USB con le wqleventquery oppure identificarlo con PID E VID ma non creare una funzione che rimanga in ascolto e legga cosa viene letto dalla USB.
    Lo so che in parallelo di tastiera quello che viene letto va dove ti trovi ma appunto per quello vorrei intercettarlo da utilizzarlo sempre nel mio programma

    Grazie mille
  • Re: Ascoltare USB scanner barcode per leggere data

    ARConsultant ha scritto:


    "Se ho capito bene no, come pensi di poter fare?"
    Appunto, non lo so se si può fare.
    Son riuscito a riconoscere se si inserisce un device USB con le wqleventquery oppure identificarlo con PID E VID ma non creare una funzione che rimanga in ascolto e legga cosa viene letto dalla USB.
    Lo so che in parallelo di tastiera quello che viene letto va dove ti trovi ma appunto per quello vorrei intercettarlo da utilizzarlo sempre nel mio programma

    Grazie mille
    ... bhe... direi che devi fare qualcosa di più sottile, cioè registrare il raw input.
    Dovrebbe funzionare.
    Però, in questo caso, da programma saresti in grado di capire da chi arriva l'input.
    se vuoi impedire che altri programmi (che se ne fregano) reagiscano, penso serva un hook che a sua volta registri da raw input, e nel caso del lettore "cancelli" i dati in arrivo.

    Ti serve in sostanza
    - una DLL con l'hook
    - la gestione del rawinput nella DLL (cosa che non sono così sicuro sia fattibile, diciamo di sì)

    Da programma tuo, o da esecuzione automatica o quello che ti pare, attivi l'hook che "maschera" gli input dal lettore USB (per tutti gli altri programmi).
    ---
    Mi sembra un lavoro (qualora fattibile) da una giornata, >>> del costo di un lettore "più intelligente"
  • Re: Ascoltare USB scanner barcode per leggere data

    Raw input... mi è nuovo.
    Avresti qualcosa da cui partire?

    Grazie
  • Re: Ascoltare USB scanner barcode per leggere data

    Non uso VB, ma delphi, quindi non so aiutarti immediatamente.
    Sono funzioni di user32.dll

    EDIT trovato penso qualcosa di abbastanza simile
    https://www.codeproject.com/Articles/17123/Using-Raw-Input-from-C-to-handle-multiple-keyboard
  • Re: Ascoltare USB scanner barcode per leggere data

    Grazie, ci guardo
Devi accedere o registrarti per scrivere nel forum
6 risposte