IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Tester le caractère saisi au clavier [Trucs & Astuces]


Sujet :

Scripts/Batch

  1. #1
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut Tester le caractère saisi au clavier
    Salut,

    La commande "PAUSE" permet de faire une <<PAUSE >> qui sera annulé par la pression de n'importe quelle touche, malheurseusement cette commande ne renvoie pas d'ERRORLEVEL


    La commande "SET/P PAUSE=" permet aussi de faire une <<PAUSE>> qui ne sera annulé que lorsqu'on appuye sur la touche <<ENTER>> et va renvoyer un "0" si on saisi une chaine de caractères (ou un espace), sinon c'est "1" On pourra alors
    tester si l'utilisateur à saisie quelque chose ou pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    echo %ERRORLEVEL%
    set /p PAUSE=
    echo %ERRORLEVEL%
    cette méthode permet de tester si la variable "PAUSE" est definie ou pas mais ne permet pas de tester
    la touche saisie par l'utilisateur.


    cette formule "SET/P=" va fixer l'ERRORLEVEL à "1" car la syntaxe est incorrecte mais ça ne retournera pas de message d'erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SET/P=
    echo %ERRORLEVEL%


    est ce qu'on peux tester le caractère saisi au clavier ?

    Oui, c'est possible, en utilisant un petit utilitaire "reply.com".
    En réalite reply.com fixe un ERRORLEVEL égale au caractère ASCII associé à la touche entrer par l'utilisateur.
    mais on peux aussi "embarquer" cette utilitaire dans notre fichier de commandes.

    voici quelques ERRORLEVEL renvoyer par "reply" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    F1=59    A=97   M=109   Y=121  Flêche-Haut=72
    F2=60    B=98   N=110   Z=122  Flêche-bas=80
    F3=61    C=99   O=111          Flêche-gauche=75
    F4=62    D=100  P=112          Flêche-droite=77
    F5=63    E=101  Q=113          ENTER=13
    F6=64    F=102  R=114          EChap=27
    F7=65    G=103  S=115          Espace=32
    F8=66    H=104  T=116          TAB=9
    F9=67    I=105  U=117          BKSP=8
    F10=68   J=106  V=118
    F11=133  K=107  W=119
    F12=134  L=108  X=120
    et voici un petit exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    @echo off & goto:skip
    n k.com
    e 0000 4D 5A 2E 00 01 00 00 00 02 00 00 10 FF FF F0 FF
    e 0010 FE FF 00 00 00 01 F0 FF 1C 00 00 00 00 00 00 00
    e 0020 B4 08 CD 21 3C 00 75 02 CD 21 B4 4C CD 21
    rcx
    002E
    w0
    q
    :skip
    debug < "%~f0" >nul 
    echo.
    echo DEMO:   Pressez une touche de 0-9
    echo.
    :: on appel k.com l'executable créer par "debug"
    k
    if %errorlevel%==48 (set b=0.........)
    if %errorlevel%==49 (set b=.1........)
    if %errorlevel%==50 (set b=..2.......)
    if %errorlevel%==51 (set b=...3......)
    if %errorlevel%==52 (set b=....4.....)
    if %errorlevel%==53 (set b=.....5....)
    if %errorlevel%==54 (set b=......6...)
    if %errorlevel%==55 (set b=.......7..)
    if %errorlevel%==56 (set b=........8.)
    if %errorlevel%==57 (set b=.........9)
    ::
    echo         Touche: %b%
    del k.com
    set/p= & exit /b

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 19
    Points : 33
    Points
    33
    Par défaut
    et voici un petit exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    @echo off & goto:skip
    n k.com
    e 0000 4D 5A 2E 00 01 00 00 00 02 00 00 10 FF FF F0 FF
    e 0010 FE FF 00 00 00 01 F0 FF 1C 00 00 00 00 00 00 00
    e 0020 B4 08 CD 21 3C 00 75 02 CD 21 B4 4C CD 21
    rcx
    002E
    w0
    q
    :skip
    debug < "%~f0" >nul 
    echo.
    echo DEMO:   Pressez une touche de 0-9
    echo.
    :: on appel k.com l'executable créer par "debug"
    k
    if %errorlevel%==48 (set b=0.........)
    if %errorlevel%==49 (set b=.1........)
    if %errorlevel%==50 (set b=..2.......)
    if %errorlevel%==51 (set b=...3......)
    if %errorlevel%==52 (set b=....4.....)
    if %errorlevel%==53 (set b=.....5....)
    if %errorlevel%==54 (set b=......6...)
    if %errorlevel%==55 (set b=.......7..)
    if %errorlevel%==56 (set b=........8.)
    if %errorlevel%==57 (set b=.........9)
    ::
    echo         Touche: %b%
    del k.com
    set/p= & exit /b
    Bonjour,

    Le sujet est intéressant, j'ai voulu essayer.
    Voici le résultat de l'exécution du code copié-collé dans un script DOS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    'debug' n’est pas reconnu en tant que commande interne
    ou externe, un programme exécutable ou un fichier de commandes.
    
    DEMO:   Pressez une touche de 0-9
    
    'k' n’est pas reconnu en tant que commande interne
    ou externe, un programme exécutable ou un fichier de commandes.
            Touche:
    Impossible de trouver D:\Patrick\Desktop\k.com
    J'ai sans doute loupé quelque chose...mais quoi SVP !?

Discussions similaires

  1. Réponses: 23
    Dernier message: 16/10/2014, 19h39
  2. Réponses: 3
    Dernier message: 21/03/2010, 22h22
  3. Enregistrer caractère saisi au clavier
    Par sokai dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 26/11/2009, 23h34
  4. Hook clavier, le caractère saisi est doublé
    Par Sunchaser dans le forum Windows
    Réponses: 2
    Dernier message: 12/02/2007, 21h04
  5. [C#] mémoriser les caractères saisis au clavier
    Par tiboleo dans le forum Windows Forms
    Réponses: 1
    Dernier message: 04/06/2006, 13h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo