Probème avec "GetAsyncKeyState" et "GetKeyState" (VBA Word Office 2003)

Résolu
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 - 17 mai 2006 à 12:11
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 - 23 mai 2006 à 10:02
    Voila, je veut faire une procèdure qui me permete de recup les touche taper au clavier simultanémant.
Soit avoir comme retour de fonction :
    -> "<Ctrl> + <W>" 'Par exemple

Je n'ai jamais fait ce genre de "truc" donc pour tester j'ai fait cette procédure (j'ai mit mes déclaration de fonction avec):
'-----------------------
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Declare Function GetKeyState Lib "user32" (ByVal vKey As Long) As Integer

Sub test()
    For a = 0 To 256 'on scanne toute les touche du clavier
        If GetAsyncKeyState(a) <> 0 Then 'filtre si la touche consideree a ete appuiller
            Debug.Print Hex(a)
        End If
    Next
    Debug.Print "FinBoucle a"
    For a = 0 To 256 'on scanne toute les touche du clavier
        If GetKeyState(a) <> 0 Then
            Debug.Print Hex(a)
        End If
    Next
End Sub
'-----------------------

Et j'ai un retour qui me parait bizard :
1|D|10|11|23|24|25|26|28|2E|35|41|45|48|58|61|62|74|A1|A2|BC|DB

FinBoucle a

1|2|3|8|D|10|11|21|2C|32|35|36|38|42|43|44|45|47|49|4B|4C|4E|4F|51|54|59|5A|60|61|62|63|64|65|66|67|6D|6E|74|77|78|90|A0|A3|A4|A5|BC|BF|E2|F0|F3|F6|FB

J'ai mit des "|" aulieu des retour à la ligne dans un souçi d'economi de place

Merci

D'oh! Nuts!
Mmmmm...
 DONUTS

3 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 17
21 mai 2006 à 05:42
Salut ami Polack,

un petit dernier message avant d'aller pioncer...

GetKeyState, il me semble que c'est pour vérifier si une touche est enfoncée.
Ben je confirme (je viens de le vérifier), mot pour mot :

La fonction GetKeyState retourne le status de la touche virtuelle spécifiée. Autrement dit, cette fonction permet de savoir si une touche est enfoncée (touches clavier ou boutons souris).

Si tu veux une bonne source sur les APIs, notre ami DarkSidious en a posé une : ce sont les APIs les plus souvent utilisés, avec des explications en français =>
http://www.vbfrance.com/code.aspx?ID=4514

Amuse toi bien et bon dimanche.

@ ++
Nico (ou mortalino, c'est au choix)
3
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
17 mai 2006 à 13:19
Bon, je crois que j'ai compris pourcois

"

GetAsyncKeyState" me renvoie toute le ligne que j'ai mit plus haut. Je crois que cette fonction me renvoie toutes les touches presser depuis la dernierre execution de "

GetAsyncKeyState". Par contre je ne comprend pas "

GetKeyState"






D'oh! Nuts!
Mmmmm...
 DONUTS
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
23 mai 2006 à 10:02
Merci ami Nico (ou Mortalion) pour ce lien. Il trop bien son fichier d'aide!!!
Par contre je ne trouve pas "GetAsyncKeyState". Je vais faire des testes pour comprendre plus en détaille, mais, je pense que cela fonctione comme décrit plus haut.
Je tiens au courant si j'ai plus de détaille.
De toute facon je peut faire ce que je voulait (recup les touche enfoncer du clavier) avec
"
GetKeyState".

D'oh! Nuts!
Mmmmm...
 DONUTS
0