Vider le buffer clavier en VB6 [Résolu]

Signaler
Messages postés
7
Date d'inscription
samedi 22 septembre 2007
Statut
Membre
Dernière intervention
15 octobre 2013
-
Messages postés
7
Date d'inscription
samedi 22 septembre 2007
Statut
Membre
Dernière intervention
15 octobre 2013
-
Bonjour a tous,

Afin de ne pas compromettre une serie de "sendKeys" lancer par mon programme en VB6 je souhaite vider le buffer du clavier (ou cas ou l'utilisateur souhaite aller plus vite que le pc)

8 réponses

Messages postés
7
Date d'inscription
samedi 22 septembre 2007
Statut
Membre
Dernière intervention
15 octobre 2013

Merci de votre aide
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
Bonjour,
je ne vois pas trop, à la seule aide de ce que tu exposes, ce que les "sendkeys" ont à voir avec le "buffer du clavier".
De quoi parles-tu donc exactement ?
Que sont donc ces sendkeys ?
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
Tiens ! Pas de réactions ...
J'aurais pourtant aimé savoir comment
- on pouvait "aller plus vite que le pc"
- ce qu'étaient ces sendkeys
- vers "quoi" ils allaient (une appli windows ou autre ?)
- quand et comment on les envoyait (en me disant qu'on pouvait toujours mettre dans une variable toute la chaîne à "envoyer", puis décider d'envoyer ou non son contenu).
Messages postés
7
Date d'inscription
samedi 22 septembre 2007
Statut
Membre
Dernière intervention
15 octobre 2013

Bonjour,

Pour être un peu plus précis le programme vérifie les fenêtre active. Lorsque une fenêtre précise as le focus et que l'utilisateur appuie sur "ENTREE" le programme vb envoie des sendkeys pour ouvrir une autre fenêtre (F7) du programme, fait un copie (Ctrl+c) le l'élément sélectionner par défaut lors de l'ouverture de cette fenêtre et la ferme (echap) pour revenir à l'écran initiale.

Pour toute cette parti, je n'ai pas eu de souci.

Par contre certain utilisateur quand il appuie sur "ENTREE" le font 2-3 fois de suite (plus par tic qu'autre chose :-| ) mais cela viens interrompre les sendkeys et le programme ne vas pas ou bout

Je souhaite simplement m'assurer que le programme as digéré les "ENTREE" avant de lancer les sendkeys
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
Mets alors en place un mécanisme (simple) tel que soit annulée toute nouvelle pression de la touche Enter tant que la fenêtre qui doit s'ouvrir n'est pas ouverte.
Tu peux d'ailleurs également bloquer le clavier pendant le temps que tu veux à compter du 1er ENTER.(utilisation de la fonction BlockInput de l'Api de Windows).
Tu peux enfin, comme je te l'ai dit plus haut, mettre dans une chaîne de caractères ta série de sendkeys. Tu l'envoies au 1er ENTER et tu la mets immédiatement à "" (le second ENTER n'enverra alors rien !)

Messages postés
7
Date d'inscription
samedi 22 septembre 2007
Statut
Membre
Dernière intervention
15 octobre 2013

Je trouve le BlockImput vraiment très intéressante,

Par contre pourrais-tu me donner un exemple de la 2eme solution st, je visualise pas... si on peut prendre pour exemple "F7"; "Ctrl+C" et "achap"

Merci d'avances

--
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
Non. Je ne vais tout de même pas construire à ta place y compris ta chaîne de SendKeys. Je vais te lkaisser faire au moins ce tout petit effort !
Voilà un exemple :
toto = "aaa" + "{tab}" + "bbb"
SendKeys toto

Et là s'arrêtera mon aide.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
Messages postés
7
Date d'inscription
samedi 22 septembre 2007
Statut
Membre
Dernière intervention
15 octobre 2013

Apres test je valide le blockimput

Merci beaucoup pour l'aide

--