VB KeyPress "global"?

Fermé
Vigon - 20 déc. 2008 à 01:44
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 21 déc. 2008 à 11:55
Bonjour,

Je viens de réaliser un montage contrôlé par PIC Microship (microcontoleur) qui communique avec mon port USB. Pour piloter ce PIC, j'ai écrit un programme en visual basic qui fonctionne plutôt pas mal. Seulement voilà, j'aimerais pouvoir contrôler mon programme via une télécommande (X10). Je suis parvenu à le faire en utilisant un bouton de commande qui, une fois qu'il a le focus, couplé à l'évènement _KeyPress, me permet de faire ce que je veux.

J'aimerais pouvoir faire la même chose, mais sans cet artificiel bouton de commande qui requiert le focus. Une sorte d'évènement Formulaire_KeyPress. J'ai essayé, mais je n'y parviens pas.

J'avais essayé quelque chose du genre

Private Sub Form_KeyPress(KeyAscii as Integer)

End Sud

Mais on dirait que le formulaire n'a pas le "focus". Comment faire pour ce passer de cette contrainte et rendre l'évènement "KeyPress" global? Même mieux: est-il possible de le faire sans que la fenêtre du programme aie le focus?

D'avance, merci.
A voir également:

6 réponses

lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
20 déc. 2008 à 08:33
Bonjour,
Peut-être avec un timer ? et l'API GetAsyncKeyState

A+
0
Parfait! Il ne me reste plus qu'à comprendre comment faire en sorte qu'il me retourne la valeur de la touche enfoncée, et non un booléen vérifiant que telle touche est enfoncée. Vous me direz que je peux toujours faire un "for" de 0 à 255 mais... j'espère tout de même qu'il existe une solution plus élégante :).

Si quelqu'un a une idée, elle est la bienvenue ;).

Merci.
Vigon
0
Aïe... j'ai p-e parlé un peu trop vite. Mon but étant, lorsqu'une touche numérique est enfoncée de modifier le statut d'une checkbox, la voilà qui "vibre" au rythme du timer... ce qui n'est pas fort pratique. Décidément tout ça me parait bien compliqué.
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
20 déc. 2008 à 17:30
C'est pas clair ?
avec un timer et l'API GetAsyncKeyState
Si tu comprend pas tu dit..
A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
J'ai bien compris, et comme je l'ai dit, ça fonctionne... mais le problème est que je suis dès lors dépendant de la fréquence du time. Une touche enfoncée un peu trop longtemps fait osciller la checkbox, une touche enfoncée trop peu longtemps n'est pas "vue" à temps. Je me suis donné une fréquence de 500 millisecondes, ça marche assez bien. J'ai quand-même encore parfois des comportements un peu étranges, mais je pense m'en contenter au final.
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
21 déc. 2008 à 11:55
Pour ce qui est de l'appuit trop cour tu peu réduire le temps à 100Ms
Pour l'appuit prolongé, mettre une variable static et tester que la touche à été relachée avant de retester la touche , un genre d'anti-rebond.
A+
0