Batch : Délai maxium

Utilisateur anonyme -  
zephir666 Messages postés 136 Statut Membre -
Bonjour,
J'aimerais savoir si il est possible, et si oui comment, d'imposer un délai maximum pour répondre à une question. Je m'explique :
Par exemple, imaginons que j'aimerais demander le mot secret (ici ce sera "ccm" à l'utilisateur, et, si il est juste, lancer la calculatrice, mais en lui laissent 5 secondes pour répondre.
Voilà ce que je mettrai comme code :

@ECHO OFF
SET /P password=Entre le mot de passe :
IF %password%==ccm (
START calc.exe
) ELSE (
ECHO Dommage, ce n'est pas le bon mot de passe
PAUSE
)
EXIT

Quelqu'un peut me dire qu'est ce que je dois rajouter et où pour ne laisser que 5 secondes à l'utilisateur pour répondre (pas de conseils sur la synthaxe du programme, ce n'est pas ça mon vrai programme. Je sais qu'en fait clic droit - modifier du coup on peut avoir le mot de passe) ?

Merci d'avance !

1 réponse

  1. zephir666 Messages postés 136 Statut Membre 10
     
    salut a toi
    très simples a faire et pourtant incroyablement pratique!
    il e faut un vbs avec une commande de pause et demander a ton batch de "l'appeler" (commande "call") et tant que le vbs serra actif le batch lui restera en stand-by
    une fois le vbs terminé le batch reprend son cours normale x)
    si je peux me perettre je te conseille de faire en sorte que le vbs soit créez par le batch et détruit a la fin de chaque pause,
    ça permet de ne pas laissez de trace et de pouvoir effectuez plusieurs pause de longueur différente dans le même batch sans ce prendre la tête voici ce que je te propose (schématiquement):


    @echo off
    :debut

    echo set anmelden = createobject("wscript.shell")>>pause.vbs
    echo.>>pause.vbs
    echo wscript.sleep (5000)>>pause.vbs

    ::5000 Etant egale au nombre de milliseconde de pause soit 5 seconde actuellement

    cls
    echo attendre 5 seconde
    call pause.vbs
    ::en utilisant la commande call le batch attendra après le vbs
    ::et une fois le vbs terminé il reprendra normalement

    cls
    echo le temps est ecouler!
    del pause.vbs
    pause>nul
    goto debut


    P.S: la pause dans la commande vbs "wscript.sleep (XXX)" les XXX sont le temps exprimé en milliseconde ! (pour des pause encore plus précise x) (si on oublie les latence du au lancement des programme etc >.>)

    voila j'espère avoir pu t'être utile et n'hésite pas si ta encore besoin ^^ ;)
    0