UDF > Misc >


_IsPressed

Vérifie si une touche a été pressée

#include <Misc.au3>
_IsPressed ( $sHexKey [, $vDLL = "user32.dll"] )

Paramètres

$sHexKey Touche à tester
$vDLL [optionnel] Handle de la DLL ou par défaut de user32.dll

Valeur de retour

True: si la touche a été pressée.
False: si la touche n'a pas été pressée.

Remarques

Si vous appelez plusieurs fois cette fonction, vous devez ouvrir 'user32.dll' et passer le handle.
Assurez-vous de fermer le handle à la fin du script à l'aide de DllClose.

_IsPressed() retournera 1 jusqu'à ce que la touche soit relâchée.
Même de brefs appuies de touches peuvent entraîner de multiples retours dans une boucle.
Si le code appelé ne comprend pas une fonction de blocage (comme MsgBox) et si l'utilisateur n'a pas besoin de multiples retours, le script doit attendre jusqu'à ce que _IsPressed() retourne 0 avant de poursuivre.

    01 Bouton gauche de la souris
    02 Bouton droit de la souris
    03 Control-break
    04 Bouton central de la souris (souris à trois boutons)
    05 Bouton de la souris X1
    06 Bouton de la souris X2
    08 Touche BACKSPACE
    09 Touche TAB
    0C Touche CLEAR
    0D Touche ENTER
    10 Touche SHIFT
    11 Touche CTRL
    12 Touche ALT
    13 Touche PAUSE
    14 Touche VERR.MAJ
    1B Touche ESC 1B
    20 Barre ESPACE
    21 Touche PAGE UP
    22 Touche PAGE DOWN
    23 Touche END
    24 touche HOME
    25 Touche flèche GAUCHE
    26 Touche flèche HAUT
    27 Touche flèche DROITE
    28 Touche flèche BAS
    29 Touche SELECT
    2A Touche PRINT
    2B Touche EXECUTE
    2C Touche Impr. écran
    2D Touche INS
    2E Touche DEL
    30 Touche 0
    31 Touche 1
    32 Touche 2
    33 Touche 3
    34 Touche 4
    35 Touche 5
    36 Touche 6
    37 Touche 7
    38 Touche 8
    39 Touche 9
    41 Touche A
    42 Touche B
    43 Touche C
    44 Touche D
    45 Touche E
    46 Touche F
    47 Touche G
    48 Touche H
    49 Touche I
    4A Touche J
    4B Touche K
    4C Touche L
    4D Touche M
    4E Touche N
    4F Touche O
    50 Touche P
    51 Touche Q
    52 Touche R
    53 Touche S
    54 Touche T
    55 Touche U
    56 Touche V
    57 Touche W
    58 Touche X
    59 Touche Y
    5A Touche Z
    5B Touche Windows gauche
    5C Touche Windows droite
    60 Touche 0 du pavé numérique
    61 Touche 1 du pavé numérique
    62 Touche 2 du pavé numérique
    63 Touche 3 du pavé numérique
    64 Touche 4 du pavé numérique
    65 Touche 5 du pavé numérique
    66 Touche 6 du pavé numérique
    67 Touche 7 du pavé numérique
    68 Touche 8 du pavé numérique
    69 Touche 9 du pavé numérique
    6A Touche de multiplication *
    6B Touche d'addition +
    6C Touche Separator
    6D Touche de soustraction
    6E Touche point décimal
    6F Touche de division /
    70 Touche F1
    71 Touche F2
    72 Touche F3
    73 Touche F4
    74 Touche F5
    75 Touche F6
    76 Touche F7
    77 Touche F8
    78 Touche F9
    79 Touche F10
    7A Touche F11
    7B Touche F12
    7C - 7F Touche F13 - Touche F16
    80H - 87H Touche F17 - Touche F24
    90 Touche NUM LOCK
    91 Touche SCROLL LOCK
    A0 Touche MAJ gauche
    A1 Touche Maj droite
    A2 Touche CONTROL gauche
    A3 Touche CONTROL droite
    A4 Touche MENU gauche
    A5 Touche MENU droite
    BA Touche ;
    BB Touche =
    BC Touche ,
    BD Touche -
    BE Touche .
    BF Touche /
    C0 Touche `
    DB Touche [
    DC Touche \\
    DD Touche ]

Exemple

#include <Misc.au3>
#include <MsgBoxConstants.au3>

Local $hDLL = DllOpen("user32.dll")

Do
    If _IsPressed("10", $hDLL) Then
        ConsoleWrite("_IsPressed - Touche Shift enfoncé." & @CRLF)
        ; Attend jusqu'à ce que la touche soit relâchée.
        While _IsPressed("10", $hDLL)
            Sleep(250)
        WEnd
        ConsoleWrite("_IsPressed - Touche Shift relâchée." & @CRLF)
    EndIf
    Sleep(250)
Until _IsPressed("1B", $hDLL)

MsgBox($MB_SYSTEMMODAL, "_IsPressed", "Touche Esc enfoncée, l'application va se fermer.")
DllClose($hDLL)