|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre Expert
![]() Sylvain Développeur Windev et technicien maintenance Inscription : janvier 2008 Messages : 1 226 ![]() |
Bonjour,
Voilà je développe un programme qui utilise un lecteur code barre. Dans un premier temps j'ai utilisé un lecteur code barre sur port COM afin de gérer les infos que je reçoit avec le lecteur. N'ayant qu'un port com sur mon PC (et l'utilisant déjà pour une communication avec un automate) j'utilise un adaptateur USB/COM. Je suis sous Windows 7 et j'ai une déconnexion intempestive de mon adaptateur. Quand j'utilise mon automate mon port USB/COM plante, il faut que je débranche et je rebranche mon adaptateur pour pouvoir réutiliser mon lecteur (après réouverture du port sous Windev. Si j'utilise la même chose sous XP (métriel et logiciel), pas de problème. Afin de résoudre mon problème je voulais utiliser un lecteur code barre USB. Ainsi je paramètre mon lecteur avec un caractère spécifique en début et fo=in de lecture puis j'intercepte les évènements claviers. c'est là que je ne sais pas trop comment faire. il faut que j'intercepte le lecteur code barre mais que le clavier fonctionne. Je ne dois pas inscrire les infos du lecteur à l'écran si je suis dans une zone de saisie. Je ne vois pas trop comment m'y prendre. Si vous avez quelques pistes je suis preneur.
__________________
la touche est ton amie. l'aide ne mord pas quand on la consulte...PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. Un exemple vaut mieux que de longs discours... Pensez à utiliser les votes, merci |
|
|
00
|
|
|
#2 |
|
Membre actif
![]() Inscription : avril 2009 Messages : 305 ![]() |
J'ai pas de douchette pour tester mais est-ce que les évènements générés par la douchette sont les même que le clavier ?
Voir avec l'entier retourné par _eve.wparam peut être. |
|
|
00
|
|
|
#3 | |
|
Membre Expert
![]() Sylvain Développeur Windev et technicien maintenance Inscription : janvier 2008 Messages : 1 226 ![]() |
Voici ce que j'obtient avec un trace
j'ai ajouter un evenèment sur ma fenêtre Code :
Evénement(GetTouche, FEN_Fenêtre1..Nom + ".*", WM_KEYDOWN) Citation:
Donc à priori que ce soit du lecture ou du clavier c'est la même chosse pour l'évènement.
__________________
la touche est ton amie. l'aide ne mord pas quand on la consulte...PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. Un exemple vaut mieux que de longs discours... Pensez à utiliser les votes, merci |
|
|
|
00
|
|
|
#4 |
|
Membre actif
![]() Inscription : avril 2009 Messages : 305 ![]() |
J'ai ressorti une douchette usb qui trainait, la réponse est oui, quand je scanne les valeurs de retour sur l'évènement sont les même que celles envoyées par le clavier ,sauf pour les chiffres.
exemple : pour le chiffre 1 la douchette fait la touche "Maj" et la touche "&". C'est du bricolage mais dans ton champs tu pourrais bloquer les chiffres au dessus des lettres sur clavier, et laisser le pavé numérique. |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Sylvain Développeur Windev et technicien maintenance Inscription : janvier 2008 Messages : 1 226 ![]() |
Mon besoin est de faire un traitement quand j'ai une infos qui viens du lecteur code barre mais je ne veux pas bloquer le clavier.
Quand mon info viens de mon lecteur je ne dois pas interférer avec le clavier donc je ne dois pas inscrire ce qui viens du lecteur (comme ci rien n'avais été tapé au clavier. Dans mon exemple mon code barre ne contiens que des chiffres mais en générale j'ai de l'alpha numérique sur mes codes barres. La solution du port COM pour moi étais la meilleur et la plus simple. malheureusement mon adaptateur plante. (et je ne veux pas faire le tour des adaptateurs pour en trouver un qui marche)
__________________
la touche est ton amie. l'aide ne mord pas quand on la consulte...PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. Un exemple vaut mieux que de longs discours... Pensez à utiliser les votes, merci |
|
|
00
|
|
|
#6 |
|
Membre actif
![]() Inscription : avril 2009 Messages : 305 ![]() |
Essaye de regarder dans le gestionnaire de périphériques, clic droit sur tout les "concentrateur usb racine" onglet gestion alimentation et tu décoche "autoriser win7 à éteindre le port" ou un truc du genre.
J'avais une douchette qui se déconnectait sans raison quand j'utilisais un autre périphérique USB en entrée, et ça ma résolut mon souci. |
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Sylvain Développeur Windev et technicien maintenance Inscription : janvier 2008 Messages : 1 226 ![]() |
Le paramètre d'alimentation n'est pas en cause.
(je viens de le modifier et j'ai toujours mon problème) Concrètement quand j'utilise une fonction de mon automate (j'action un presseur) dans ce cas mon adaptateur USB/Serie plante. (aucune info dans les journaux d'évènement) Je dois le débrancher puis reouvrir mon port Com dans Windev. Avec Xp je n'ai pas ce souci avec le même matériel. C'est pour cela que je voulais passer par un lecteur USB.
__________________
la touche est ton amie. l'aide ne mord pas quand on la consulte...PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. Un exemple vaut mieux que de longs discours... Pensez à utiliser les votes, merci |
|
|
00
|
|
|
#8 |
|
Membre habitué
![]() Inscription : mars 2003 Messages : 124 ![]() |
Bonjour,
une solution est de modifier le le caractère de fin ou de début de la douchette. En effet, on peut configurer les douchettes pour que la valeur lue soit préfixée ou suffixée par un caractère spécifique. Pour cela, il faut voir avec le manuel de la douchette pour choisir le caractère. Ensuite lorsque vous intercepter l'évênement, vous faites un traitement pour identifier si c'est le clavier ou la douchette. Voilà la seule idée qui me vient.... |
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() Sylvain Développeur Windev et technicien maintenance Inscription : janvier 2008 Messages : 1 226 ![]() |
Oui j'étais aussi partie sur la configuration d'un caractère de début et de fin.
Mais comment je peux faire pour que les caractères lu avec le lecteur code barre ne soit pas "envoyé" sur mon programme. Je m'explique j'utilise un champ de saisie pour inscrire manuellement une information, dans ce cas je ne dois pas utiliser le lecteur code barre (et il ne faut pas que si je scan un code barre les infos apparaissent dans mon champ de saisie). Ensuite je passe en utilisation par code barre et là je dois le gérer (dans ce cas je n'ai pas de souci car je n'ai pas de champ de saisie).
__________________
la touche est ton amie. l'aide ne mord pas quand on la consulte...PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. Un exemple vaut mieux que de longs discours... Pensez à utiliser les votes, merci |
|
|
00
|
|
|
#10 |
|
Membre actif
![]() Inscription : avril 2009 Messages : 305 ![]() |
Pour capter "avant" que l'info sois saisie dans le champ, essaye en passant par le traitement "touche appuyé" si tu peux à ce moment capter que tu reçoit le caractère de début du scan. A tester...
|
|
|
00
|
|
|
#11 |
|
Membre Expert
![]() Sylvain Développeur Windev et technicien maintenance Inscription : janvier 2008 Messages : 1 226 ![]() |
Ok mais comment je vais pour ne pas envoyer le caractère.
Mon raisonnement est le suivant. Mise en place d'un évènement sur touche appuyé. Je lis le caractère si c'est mon caractère de début du lecteur code barre je met un booléen à vrai puis je met tous les caractères qui arrivent dans une variable jusqu'à mon caractère de fin de scan. Mais ces caractère je ne dois pas continuer le traitement d'appui. Si je ne suis pas dans la lecture du scna je dois continuer le processus d'appuie de touche et donc faire comme si il n'y avais pas d'évènement. Je sais pas si j'explique bien ce que je n'arrive pas à faire. comment bloqué le caractère pour qu'il ne s'affiche pas dans le champ de saisie il y a peut être un renvoyer faux à mettre dans la procédure de l'évènement afin d'arrêter l'appuie sur la touche?
__________________
la touche est ton amie. l'aide ne mord pas quand on la consulte...PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. Un exemple vaut mieux que de longs discours... Pensez à utiliser les votes, merci |
|
|
00
|
|
|
#12 |
|
Membre actif
![]() Inscription : avril 2009 Messages : 305 ![]() |
J'ai bien compris la problématique.
si booléen=vrai (le cas du scan) Un RETOUR/STOP ne fonctionne pas ? Ou saisie="" fin J'ai pas le temps de tester dsl. |
|
|
00
|
|
|
#13 |
|
Membre Expert
![]() Sylvain Développeur Windev et technicien maintenance Inscription : janvier 2008 Messages : 1 226 ![]() |
Non dans ce cas je sort de ma procédure d'évènement mais le caractère s'affiche
__________________
la touche est ton amie. l'aide ne mord pas quand on la consulte...PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. Un exemple vaut mieux que de longs discours... Pensez à utiliser les votes, merci |
|
|
00
|
|
|
#14 | ||
|
Membre actif
![]() Inscription : avril 2009 Messages : 305 ![]() |
Dans l'aide :
Remarque : Si le traitement retourne une valeur (forcément de type entier), l'événement Windows est arrêté : c'est cette valeur qui est renvoyée. Si le traitement ne renvoie PAS de valeur, l'exécution se poursuit normalement. si j'ai bien compris : Essaye en renvoyant le booléen depuis ta procédure d’événement. Edit: j'ai un doute en relisant l'aide, je comprends pas bien comment on récupère la valeur de retour de ta procédure. Mais l'idée est la... Edit 2 : bon j'ai tester et ça marche : Procédure appelée par l'évènement Code :
Si je fais 1 du pavé num, le 1 ne s'écrit pas dans mon champ. |
||
|
|
10
|
|
|
#15 |
|
Membre Expert
![]() Sylvain Développeur Windev et technicien maintenance Inscription : janvier 2008 Messages : 1 226 ![]() |
Merci Rednight,
Ton mode marche nickel.. Je n'ai plus qu'à bosser sur la gestion de mon lecteur. Merci
__________________
la touche est ton amie. l'aide ne mord pas quand on la consulte...PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. Un exemple vaut mieux que de longs discours... Pensez à utiliser les votes, merci |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com