IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Scanner à main : quel évènement écouter ?


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut Scanner à main : quel évènement écouter ?
    Hello,

    Dans un futur projet, l'utilisateur devra pouvoir scanner des barcodes avec un scanner à main et l'application devra extraire certaines informations de ce dernier.
    L'utilisateur pourra aussi directement encoder les informations utiles dans les champs appropriés au clavier.

    Vu que l'utilisation du scanner émule la frappe au clavier, je demandais comment je pouvais faire en sorte de savoir que les données reçues viennent du scanner et non du clavier.

    Quelqu'un a-t-il déjà fait cela ? J'ai recherché sur le site du constructeur mais il n'y a apparemment aucun API/SDK/autre à disposition.

    Le scanner en question est de la marque Datalogic. Le modèle est Gryphon GD4130-BK.

    Je suis donc à la recherche de bonnes idées/pratiques quant au développement logiciel autour de tels appareils.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Voici un exemple de code que j'utilise, il crée un fichier avec le code barre trouver :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Private Sub txt_SaisieCodeBarre_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txt_SaisieCodeBarre.KeyDown
            ' Détection du retour chariot à la fin du flashage du code barre
            If e.KeyCode = 13 Then
                ' on déclenche la création du fichier
                sw = New StreamWriter(strPath & "\" & Date.Now.ToString("yyyyMMddHHmmss") & "_" & Me.txt_SaisieCodeBarre.Text.ToString & ".txt")
                ' on écrit dedans
                sw.WriteLine(Me.txt_SaisieCodeBarre.Text.ToString)
                ' on le ferme
                sw.Close()
                ' on met à jour la zone de liste
                Me.lst_ListeDesSaisies.Items.Add(Me.txt_SaisieCodeBarre.Text.ToString)
                ' on met à jour la quantité
                Me.lbl_QteSaisies.Text = "Quantité : " & Me.lst_ListeDesSaisies.Items.Count
                ' on vide la zone de texte
                Me.txt_SaisieCodeBarre.Text = ""
            End If
    En fait on joue sur l'évènement KeyDown, et une douchette donne un retour chariot en fin de flashage, et là on fait ce qu'il faut.

    Philippe

  3. #3
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Oui d'accord mais là, tu places le curseur dans un textbox et le scanner ne fait qu'écrire dedans.

    Ca je sais faire aussi ^^.

    Ce que je cherche à savoir, c'est comment faire pour détecter le scan d'un barcode et ce, peu importe le contrôle ayant le focus.
    Mais je ne trouve rien à ce sujet... (peut-être que je cherche avec les mauvais mots-clefs)

  4. #4
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Un hook sur le clavier et stocker les x derniers caractères dans une variable ?

    EDIT : J'ai peut-être trouvé une piste avec l'api RAWINPUT.

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    tu mets keypreview à true sur le formulaire, et tu gères l'event previewkeydown (cet event est un preview, l'event keydown sera quand même levé sur le control ayant le focus (ca doit être annulable via un e.handled avec un peu de chance))

    celui ci est donc levé sur le form, peut importe qui a le focus
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Oui j'y ai pensé mais j'ai un vague qu'il y a quelques temps j'avais voulu détecter la pression d'une touche au clavier peu importe qui a le focus et le preview sur le form ne faisait pas le taff pour tous les contrôles.

    Sinon, je viens de lire sur le net qu'il faut en fait installer un driver pour le scanner qui, plutôt que d'émuler le clavier, émule un port COM et y a plus qu'à lire les données qui viennent de ce port.

    Par contre, je n'ai encore jamais fait ça donc c'est encore une aventure

Discussions similaires

  1. [Fermeture de fenêtre]Quel évènement choisir?
    Par 1tox dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 22/05/2007, 09h22
  2. Quel événement pour clic sur un sous-form ?
    Par AndréPe dans le forum IHM
    Réponses: 10
    Dernier message: 19/03/2007, 17h11
  3. [MFC] Quel évènement sur un Kill?
    Par Xno dans le forum MFC
    Réponses: 2
    Dernier message: 16/08/2006, 00h10
  4. Quel événement est déclenché quand on passe d'un enregist...
    Par pyxosledisciple dans le forum Access
    Réponses: 1
    Dernier message: 21/01/2006, 10h40
  5. Quel évènement sur le redimensionnement ?
    Par Yoh dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 01/07/2004, 13h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo