Plusieur touche simultanement

Résolu
Signaler
Messages postés
107
Date d'inscription
dimanche 27 juin 2004
Statut
Membre
Dernière intervention
12 novembre 2006
-
Messages postés
107
Date d'inscription
dimanche 27 juin 2004
Statut
Membre
Dernière intervention
12 novembre 2006
-
bonjour tous le monde.

j'aimerai savoir comment faire une instruction quand plusieur touche sont enfonce.
merci d'avance.
voila ce que je comptais faire:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
if keycode = vbkeyspace + vbkey left
INSTRUCTION
end if

5 réponses

Messages postés
1858
Date d'inscription
samedi 29 juin 2002
Statut
Membre
Dernière intervention
17 octobre 2013
10
Bonsoir
"simultanément" ? Il faut être très fort : il y aura toujours un décalage ne serait-ce que de quelques microsecondes entre les deux frappes.
Voici ma proposition : un Timer (Timer1) sur la form ;

Option Explicit
Dim Gauche As Boolean, Espace As Boolean

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Timer1.Enabled = True
If KeyCode = vbKeyLeft Then
    'on a enfoncé la touche "Flèche Gauche"
    Gauche = True
    If Espace Then
        ' si "Espace" a déjà été enfoncée
        MsgBox "gagné !"
    End If
End If
If KeyCode = vbKeySpace Then
    'on a enfoncé la touche "Espace"
    Espace = True
    If Gauche Then
        MsgBox "Gagné !!!"
    End If
End If
End Sub

Private Sub Form_Load()
Timer1.Interval = 200
' délai maximal : 2/10 de seconde entre les 2 frappes
End Sub

Private Sub Timer1_Timer()
    Gauche = False ' Réinitialisation
    Espace = False ' si délai dépassé
End Sub
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
174
Date d'inscription
samedi 10 mai 2003
Statut
Membre
Dernière intervention
18 février 2006

Salut !

Je n'ai pas VB sous la main mais essaye ceci :

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)if KeyCode vbKeySpace and KeyCode vbKeyLeft then
INSTRUCTION
End If

Bonne continuation !
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
SkyRocKo > KeyCode ne peut pas valoir deux choses à la fois.

bobo91 > Voilà comment s'utilise la procédure Form_KeyDown :

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyA Then
    Select Case Shift
        Case 1:
            MsgBox "Maj+A"
        Case 2:
            MsgBox "Ctrl+A"
        Case 3:
            MsgBox "Ctrl+Maj+A"
    End Select
End If
End Sub


Pour ton problème, il faut t'y prendre autrement. Comment ? ... je n'en sais rien. Je vais chercher.

Manu
Messages postés
107
Date d'inscription
dimanche 27 juin 2004
Statut
Membre
Dernière intervention
12 novembre 2006

bonjour et merci de votre aide.
si keycode ne fais q'une touche a la fois alors comment faire s'il vous plait merci beaucoup.
a bientot.
Messages postés
107
Date d'inscription
dimanche 27 juin 2004
Statut
Membre
Dernière intervention
12 novembre 2006

merci rene38 c'est exactement ca que je voulais savoir
merci beaucoup.
et effectivement ce n'est pas des touches simultannées mais plutot une instruction a faire pour plusieur touche enfoncés.
ca merite d'etre exact c'est vrai tu as raison.
bonne continuation.