Bonjour,
Je cherche à differencier 2 lecteurs de code barres sur une meme appli, j'mexplique :
Je doire faire une appli utilisant 2 lecteur de code-barres USB, sachant que la lecture du premier doit être traité d'une facon et celle de l'autre lecteur d'une autre façon.
Quelqu'un aurait il une piste ?
Pour l'instant, pour intercepter la saisie du lecteur, je me base sur la vitesse de saisie avec ce code :
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 BOOL DlScanner::PreTranslateMessage(MSG* pMsg) { if ( pMsg->message == WM_KEYDOWN ) // evenement = pression d'une touche { // Ecart maximal de 1 seconde entre chaque touche sinon on vide le buffer CTime tNow = CTime::GetCurrentTime(); if ( (tNow - p_tLastInput) > 1 ){ p_KeyInput.reset(); p_tLastInput = tNow; } if ( (pMsg->wParam >= 0x30) && (pMsg->wParam <= 0x39 )) // chiffre [0] [1] ... [9] { // conversion du nombre en nombre :) ex : 0x34 -> 4 p_KeyInput.set((int)(pMsg->wParam - 0x30)); return TRUE; // fin de l'analyse du message } else if (pMsg->wParam == VK_RETURN) // touche [ ENTER ] { if (p_KeyInput.isValid()) { AnalyseCodeBarre(p_KeyInput.getCodeBarre()); } // réinitialisation de la saisie p_KeyInput.reset(); return TRUE; // fin de l'analyse du message } else if (pMsg->wParam != VK_SHIFT) // [ SHIFT ] necessaire pour les chiffres via la douchette { // toute autre touche réinitialise la saisie p_KeyInput.reset(); } } return CDigiDialog::PreTranslateMessage(pMsg); // retransmission du message si non traité }
Partager