Prog avec appui sur plusieurs touches du clavier

Résolu
cs_BAO22 Messages postés 8 Date d'inscription vendredi 28 avril 2006 Statut Membre Dernière intervention 27 juin 2006 - 27 juin 2006 à 11:39
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 - 27 juin 2006 à 20:32
bonjour a tous !!!

je suis entrain de faire un projet de fin d'année, et j'aimerais commander un robot a distance avec plusieurs fleches( par exemple avancer a droite, reculer a gauche)
toute la partie liaison a distance et protocole de com est deja fait, il me mank juste le pti bou de prog pour envoyer une info lorske j'appuie sur plusieur touche en meme tps, mais seulemen ken g plusieur touches

dc j'aimerai savoir si kelkun sais commen generer du code seuelemen apres appui sur plusieur touches du clavier
merci d'avance

4 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
27 juin 2006 à 20:32
pour plusieurs touches en même temps, il faut les Api's

et un Timer.


Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

Private Sub Timer1_Timer()

    Dim i As Integer

    If GetAsyncKeyState(37) < 0 Then i = i + 1

    If GetAsyncKeyState(38) < 0 Then i = i + 2

    If GetAsyncKeyState(39) < 0 Then i = i + 4

    If GetAsyncKeyState(40) < 0 Then i = i + 8

    If i = 3 Then

       Me.Caption = "Gauche + Haut"

       End If

    If i = 5 Then

       Me.Caption = "Gauche + Droite"

       End If

    If i = 7 Then

       Me.Caption = "Gauche + Haut + Droite"

       End If

End Sub

Daniel
3
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
27 juin 2006 à 12:08
Salut,

regarde du côté des APi, toutes les touches en même temps ou une seule à la fois:

    GetKeyboardState, GetAsyncKeyState

Daniel
0
cs_BAO22 Messages postés 8 Date d'inscription vendredi 28 avril 2006 Statut Membre Dernière intervention 27 juin 2006
27 juin 2006 à 19:48
j'ai essayé de chercher cke tu m'a conseillé mais je trouve pas.
En fait, moi j'avai la solution du select case utilisé ds la procedure keydown, mais j'arrive a le faire fonctionner unikemen pour une seule touche
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
27 juin 2006 à 20:19
pour les touches du clavier, tu peux utiliser KeyDown

ainsi que la valeur de Shift:

   1=Majuscule, 2=Ctrl, 4 = Alt

avec les combinaisons possibles:

   3=Majuscule + Ctrl

   6=Alt + Ctrl


Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

    Select Case KeyCode

        Case 37: ' flèche à gauche

        Case 38: ' flèche en haut

        Case 39: ' flèche à droite

        Case 40: ' flèche en bas

        End Select

End Sub

Daniel
0
Rejoignez-nous