|
| EnvoieTouche NE FONCTIONNE PAS |
| Débuté par aminebenhedi, 03 juin 2014 08:07 - 8 réponses |
| |
| | | |
|
| |
Membre enregistré 339 messages |
|
| Posté le 03 juin 2014 - 08:07 |
Bonjour;
Je suis en train de developper une application qui permet d'utiliser le code à barre. l'utilisateur doit taper la touche CAPS LOCK au debut de l'ouverture du programme (juste 1 seule fois) pour pouvoir passer le ticket code a barre a travers la douchette correctement.
J'ai essayé d'utiliser la commande
EnvoieTouche("{VERRMAJ}")
mais ca n'as pas marché chez quelques client (SON PC est de marque LENOVO)
Comment faire pour rendre la touche Majuscule toujours activé?
Merci d'avance. >Amine |
| |
| |
| | | |
|
| | |
| |
| Posté le 03 juin 2014 - 10:05 |
Bonjour,
En général, il existe un paramètrage de la douchette qui permet de passer tous les codes scannés en majuscules, quelle que soit la configuration du clavier.
>Hubert |
| |
| |
| | | |
|
| | |
| |
| Posté le 03 juin 2014 - 14:06 |
Bonjour
au lieu de faire ca, modifie ton champ de réception pour qu'il accepte TOUS les caractères (et pas seulement les majuscules)...
Puis, dans ton traitement de la valeur, si tu ne veux vraiment que des majuscules, tu fais un majuscule(ValeurCodeBarre)... Comme ca, pas de configuration, pas de conflit, rien...
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
NOUVEAU: WXShowroom.com est disponible : Montrez vos projets ! Plus d'information surhttp://fabriceharari.com
On 6/3/2014 12:07 AM, AMINE ( RAM ) wrote:
Bonjour; Je suis en train de developper une application qui permet d'utiliser le code à barre. l'utilisateur doit taper la touche CAPS LOCK au debut de l'ouverture du programme (juste 1 seule fois) pour pouvoir passer le ticket code a barre a travers la douchette correctement. J'ai essayé d'utiliser la commande EnvoieTouche("{VERRMAJ}") mais ca n'as pas marché chez quelques client (SON PC est de marque LENOVO) Comment faire pour rendre la touche Majuscule toujours activé? Merci d'avance. >Amine |
| |
| |
| | | |
|
| | |
| |
| Posté le 03 juin 2014 - 16:21 |
Bonjour, Le problème avec les lecteurs de code barre est plus qu'un passage en majuscule. Il faut réellement émuler un CAPS-LOCK, sinon les chiffre 1,2,3... sont remplacés pas &,é," . La douchette n'envoie pas de caractères, mais des scans-code, qui sont interprétés comme des saisies sur le clavier. Il faut soit paramétrer correctement le lecteur, soit "décoder" la saisie. Le mieux étant évidemment de paramétrer la douchette.
Frédéric.
"Fabrice Harari" a écrit dans le message de groupe de discussion : 20141640b80ef4fa03be9222414f2c2b0aea@news.pcsoft.fr...
Bonjour
au lieu de faire ca, modifie ton champ de réception pour qu'il accepte TOUS les caractères (et pas seulement les majuscules)...
Puis, dans ton traitement de la valeur, si tu ne veux vraiment que des majuscules, tu fais un majuscule(ValeurCodeBarre)... Comme ca, pas de configuration, pas de conflit, rien...
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
NOUVEAU: WXShowroom.com est disponible : Montrez vos projets ! Plus d'information surhttp://fabriceharari.com
On 6/3/2014 12:07 AM, AMINE ( RAM ) wrote:
Bonjour; Je suis en train de developper une application qui permet d'utiliser le code à barre. l'utilisateur doit taper la touche CAPS LOCK au debut de l'ouverture du programme (juste 1 seule fois) pour pouvoir passer le ticket code a barre a travers la douchette correctement. J'ai essayé d'utiliser la commande EnvoieTouche("{VERRMAJ}") mais ca n'as pas marché chez quelques client (SON PC est de marque LENOVO) Comment faire pour rendre la touche Majuscule toujours activé? Merci d'avance. >Amine |
| |
| |
| | | |
|
| | |
| |
| Posté le 03 juin 2014 - 17:12 |
Bonjour Frédéric
hmmm
je ne me rappelle pas avoir jamais eu ce problème... intéressant... je suppose que j'ai simplement paramétré la douchette dés le départ
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
NOUVEAU: WXShowroom.com est disponible : Montrez vos projets ! Plus d'information surhttp://fabriceharari.com
On 6/3/2014 8:21 AM, "Frédéric DEMILLY" wrote:
Bonjour, Le problème avec les lecteurs de code barre est plus qu'un passage en majuscule. Il faut réellement émuler un CAPS-LOCK, sinon les chiffre 1,2,3... sont remplacés pas &,é," . La douchette n'envoie pas de caractères, mais des scans-code, qui sont interprétés comme des saisies sur le clavier. Il faut soit paramétrer correctement le lecteur, soit "décoder" la saisie. Le mieux étant évidemment de paramétrer la douchette.
Frédéric.
"Fabrice Harari" a écrit dans le message de groupe de discussion : 20141640b80ef4fa03be9222414f2c2b0aea@news.pcsoft.fr...
Bonjour
au lieu de faire ca, modifie ton champ de réception pour qu'il accepte TOUS les caractères (et pas seulement les majuscules)...
Puis, dans ton traitement de la valeur, si tu ne veux vraiment que des majuscules, tu fais un majuscule(ValeurCodeBarre)... Comme ca, pas de configuration, pas de conflit, rien...
Cordialement
> |
| |
| |
| | | |
|
| | |
| |
| Posté le 03 juin 2014 - 18:01 |
Disons que j'ai souvent été confronté à ce problème, y compris avec des douchettes "récalcitrantes", impossibles à paramétrer correctement (et qui sont retournées fissa chez l'envoyeur ).
Frédéric.
"Fabrice Harari" a écrit dans le message de groupe de discussion : 2014407f2ea0149610512f5b2d4c8169363e@news.pcsoft.fr...
Bonjour Frédéric
hmmm
je ne me rappelle pas avoir jamais eu ce problème... intéressant... je suppose que j'ai simplement paramétré la douchette dés le départ
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
NOUVEAU: WXShowroom.com est disponible : Montrez vos projets ! Plus d'information surhttp://fabriceharari.com
On 6/3/2014 8:21 AM, "Frédéric DEMILLY" wrote:
Bonjour, Le problème avec les lecteurs de code barre est plus qu'un passage en majuscule. Il faut réellement émuler un CAPS-LOCK, sinon les chiffre 1,2,3... sont remplacés pas &,é," . La douchette n'envoie pas de caractères, mais des scans-code, qui sont interprétés comme des saisies sur le clavier. Il faut soit paramétrer correctement le lecteur, soit "décoder" la saisie. Le mieux étant évidemment de paramétrer la douchette.
Frédéric.
"Fabrice Harari" a écrit dans le message de groupe de discussion : 20141640b80ef4fa03be9222414f2c2b0aea@news.pcsoft.fr...
Bonjour
au lieu de faire ca, modifie ton champ de réception pour qu'il accepte TOUS les caractères (et pas seulement les majuscules)...
Puis, dans ton traitement de la valeur, si tu ne veux vraiment que des majuscules, tu fais un majuscule(ValeurCodeBarre)... Comme ca, pas de configuration, pas de conflit, rien...
Cordialement
> |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 1 330 messages |
|
| Posté le 03 juin 2014 - 22:55 |
Salut Amine,
Bizarre, l'EnvoieTouche("{VERRMAJ}") fonctionne très bien chez moi
Sinon faut faire autrement:
Option 1: Passer directement par API Charge WD API et fait une recherche sur GetKeyboardState & SetKeyboardState Ces fonctions sont utilisées par la dll USER32
Option 2: Télécharger un petit EXE qui fais l'activation et le lancer Voir par exemple:http://telecharger.tomsguide.fr/CapsLock,0301-3826.html
A+ Daryl
-- http://www.concept4u2.com> |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 240 messages |
|
| Posté le 04 juin 2014 - 09:28 |
| Ne peux-tu pas configurer la douchette en VERR MAJ automatique (certaines douchettes peuvent forcer elles-même la majuscule, c'est par exemple le cas des scanners sur pied Motorola) ? |
| |
| |
| | | |
|
| | |
| |
| Posté le 05 juin 2014 - 09:51 |
AMINE ( RAM ) a présenté l'énoncé suivant :
Bonjour; Je suis en train de developper une application qui permet d'utiliser le code à barre. l'utilisateur doit taper la touche CAPS LOCK au debut de l'ouverture du programme (juste 1 seule fois) pour pouvoir passer le ticket code a barre a travers la douchette correctement. J'ai essayé d'utiliser la commande EnvoieTouche("{VERRMAJ}") mais ca n'as pas marché chez quelques client (SON PC est de marque LENOVO) Comment faire pour rendre la touche Majuscule toujours activé? Merci d'avance. Amine
bonjour,
voici un vieux code pour faire ce que vous souhaitez, j'ai volontairement modifier l'adresse mail présent dans le code pour éviter les spams
il faudra peut être l'adapter.
FONCTION fg_BasculeTouche(eTypeTouche = 20, eAction =-1, sErr="") // Version 1.00 pour WD7 (WD55 voir la déclaration du tableau tTab) // (c) Novembre 2002 Romain PETIT (mailto:[xxxxxx------xxxxxx]@ifrance.com) // sous licence WD-LIBRE (http://www.windevasso.org) // But : Gestion des touches à bascule (NumLock, CapsLock et ScrollLock) // Activer, désactiver ou basculer // Paramètres : - N° de touche virtuelle, entier // (20 = CAPSLOCK (par défaut), 144 = NUMLOCK, 145 = SCROLLLOCK) // - Action à effectuer // (-1 = basculer (par défaut), 0 = désactiver, 1=activer) // Retour : entier, nouvel état de la touche (0 = inactive, 1=active) // En cas d'erreur, la fonction renvoie -1 et le message d'erreur // peut être récupéré dans la chaine sErr passée par référence. // Notes : Pas besoin de modifier le type de certaines variables pour WD55 // car elles sont passées par valeur. // Il peut y avoir des problèmes sur certaines configuration // spécifiques en W9x. // Essayer d'augmenter le multitache dans ce cas. // Références API: // http://msdn.microsoft.com/library/default.asp… // Exemple : // c est un entier // pour c=1 a 10 // fg_BasculeTouche(20) // multitache(3) // fg_BasculeTouche(144) // multitache(3) // fg_BasculeTouche(145) // multitache(3) // FIN eMapVK est un entier bOk est un booléen = Faux bShift est un booléen = Faux tTab est un tableau fixe de 256 entiers sans signe sur 1 octet //WD55 : tTab est un tableau de 256 entiers courts
//Vérification des paramètres SI eTypeTouche<>20 ET eTypeTouche<>144 ET eTypeTouche<>145 ALORS sErr = "Paramètre type de touche incorrect ("+eTypeTouche+"). "+... "Les 3 types autorisés sont 20 (CapsLock), 144 (NumLock) et 145 (ScrollLock)." RENVOYER -1 FIN SI eAction<-1 OU eAction>1 ALORS sErr = "Paramètre Action incorrect ("+eAction+"). "+... "Les 3 actions autorisées sont -1 (inverser l'état), 0 (désactiver) et 1 (activer)." RENVOYER -1 FIN
//On récupère l'état actuel du clavier SI PAS AppelDLL32("user32","GetKeyboardState",&tTab) ALORS sErr = "Echec de l'API GetKeyboardState" RENVOYER -1 FIN SELON eAction CAS -1 //bascule SI eTypeTouche = 20 ET tTab[(eTypeTouche+1)]=1 ALORS bShift=Vrai SINON bOk = Vrai FIN CAS 0 //etat inactif forcé SI tTab[(eTypeTouche+1)]<>0 SI eTypeTouche=20 ALORS bShift = Vrai SINON bOk=Vrai FIN CAS 1 //etat actif forcé SI tTab[(eTypeTouche+1)]=0 ALORS bOk = Vrai FIN SI bShift ALORS SI SysVersionWindows(sysVersionPlateForme)<>"NT" ALORS bOk = Vrai SINON //On simule l'appui et le relachement de la touche shift //NB : pas de retour sur cette API AppelDLL32("user32", "keybd_event", 16, eMapVK, 1, 0) AppelDLL32("user32", "keybd_event", 16, eMapVK, 3, 0) FIN FIN SI bOk ALORS //On simule l'appui et le relachement sur la touche // la touche est traduite en scan code (mapping) // 0 si echec, mais ce paramètre n'a pas l'air utile... eMapVK = AppelDLL32("user32", "MapVirtualKeyA", eTypeTouche,0) AppelDLL32("user32", "keybd_event", eTypeTouche, eMapVK, 1, 0) AppelDLL32("user32", "keybd_event", eTypeTouche, eMapVK, 3, 0) //Pour Numlock en W9x, il faut aussi changer l'état du clavier SI SysVersionWindows(sysVersionPlateForme)<>"NT" ET eTypeTouche = 144 ALORS // On inverse l'état de la touche tTab[(eTypeTouche+1)] = PAS (tTab[(eTypeTouche+1)]) SI PAS AppelDLL32("user32","SetKeyboardState",&tTab) ALORS sErr = "Echec de l'API SetKeyboardState" RENVOYER -1 FIN FIN FIN
// Multitache nécessaire avant de récupérer à nouveau // l'état du clavier sinon la mise à jour // n'a pas le temps de s'effectuer // A voir s'il faut l'augmenter... Multitache(1) // On récupère l'état du clavier SI PAS AppelDLL32("user32","GetKeyboardState",&tTab) ALORS sErr = "Echec de l'API GetKeyboardState (2nd)" RENVOYER -1 FIN // On renvoie le nouvel état de la touche RENVOYER tTab[(eTypeTouche+1)]
-- >Cordialement JeAn-PhI |
| |
| |
| | | |
|
| | | | |
| | |
|