Bonjour,
Je dois réaliser une application (WPF ou Winforms) pour laquelle plusieurs lecteurs de codes barres (USB donc clavier) seront utilisés.
Dans ce cadre, je veux identifier de manière certaine les flux de caractères issus de chacun de ces lecteurs.
Comment faire ?
Voici là où j'en suis (ce n'est peut être pas la bonne voie et en tout cas, je n'arrive pas au bout de la solution) :
- Chaque lecteur codes barres est configuré avec un préfixe unique et un retour chariot comme suffixe
- Comme les événements windows sont de niveau caractère/touche, je crains que les flux de caractères s'entremêlent si deux scans ont lieu simultanément : j'ai donc utilisé l'API RawInput qui permet d'avoir d'avoir un handle unique pour chaque lecteur
- Depuis ce handle, j'ai bien des flux dissociés pour chaque lecteur (clavier compris)
- Cependant, RawInput envoie des événements sous la forme d'une série de System.Windows.Forms.Keys et je n'arrive pas à convertir proprement ce flux de Keys en caractères (ascii ou autre) correspondants
- Par exemple : la touche virgule qui fait partie des préfixes possibles de mon lecteur est reçue en OemComma (utilisation de KeysConverter) ou bien en caractère 188 (utilisation de Convert) ou encore en caractère 50 (utilisation de MapVirtualKey)... mais je n'arrive pas à avoir juste le caractère ','
Merci de vos retours
Partager