[VB5-6] Tester une combinaison de touches.

Contenu du snippet

Salut à tous,

Pour un petit programme, j'ai eu besoin d'utiliser les touches du curseur... avec des combinaisons Haut-droite, Haut-gauche etc...
Mais, Visual Basic 5/6 ne scrutent qu'une touche à la fois!

Donc, il faudra utiliser le clavier numérique avec les diagonales 7,9,3 et 1...
Et c'est pas cool.

Donc, voici un petit programme pour utiliser seulement 4 touches pour 8 directions.

On crée un projet, avec une "Form" nommée "Form1", et dedans on y place trois objets "Line".
On renomme ces lignes respectivement : Line1, Line2 et LineC.

Puis, on colle ce code :


'------------------------------
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Boolean
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'------------------------------
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Form_KeyPress (KeyCode)
End Sub
'------------------------------
Private Sub Form_KeyPress(KeyAscii As Integer)

With Form1
    LineC.X1 = .Width / 2
    LineC.Y1 = .Height / 2
    LineC.X2 = (.Width / 2) + IIf(GetAsyncKeyState(37), 0, .Width / 2) - IIf(GetAsyncKeyState(39), 0, .Width / 2)
    LineC.Y2 = (.Height / 2) + IIf(GetAsyncKeyState(38), 0, .Height / 2) - IIf(GetAsyncKeyState(40), 0, .Height / 2)
End With

DoEvents

Sleep 100

With Form1
    LineC.X1 = .Width / 2
    LineC.X2 = .Width / 2
    LineC.Y1 = .Height / 2
    LineC.Y2 = .Height / 2
    
End With
DoEvents
End Sub
'------------------------------
Private Sub Form_Load()

    LineC.BorderColor = vbRed
    LineC.BorderWidth = 10

KeyPreview = True

With Form1
    Line2.X1 = 0
    Line2.Y1 = .Height / 2
    Line2.X2 = .Width
    Line2.Y2 = .Height / 2
    Line1.X1 = .Width / 2
    Line1.Y1 = 0
    Line1.X2 = .Width / 2
    Line1.Y2 = .Height
    LineC.X1 = .Width / 2
    LineC.X2 = .Width / 2
    LineC.Y1 = .Height / 2
    LineC.Y2 = .Height / 2
End With
End Sub


Voilà.
C'est du réchauffé, mais bon... On peut imaginer un mode secret pour un jeu en appuiant sur les lettres de votre prénom, ou avoir accès à une Form de configuration...
... Mais gardez à l'esprit que "ctrl+alt+supprime" est toujours valide sur nos nouveaux systèmes.
;)


Compatibilité : v1

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.