Comment mettre en veille pendant cinq secondes dans un fichier batch/cmd

L&#8217outil Snipping de Windows peut capturer l&#8217écran, mais il m&#8217arrive parfois de vouloir capturer l&#8217écran après cinq secondes, par exemple en prenant une image affichée par la webcam. (Exécutez le script et souriez à la caméra, par exemple).

Comment puis-je mettre en veille pendant 5 secondes dans un fichier batch ?

Solution

Une astuce consiste à (mal) utiliser la commande ping :

ping 127.0.0.1 -n 6 > nul

Explication :

  • ping est un utilitaire système qui envoie des requêtes ping. ping est disponible sur toutes les versions de Windows.
  • 127.0.0.1` est l'adresse IP de localhost. Cette adresse IP est garantie comme étant toujours résolue, accessible et répondant immédiatement aux pings.
  • -n 6 indique qu'il y aura 6 pings. Il y a un délai de 1s entre chaque ping, donc pour un délai de 5s vous devez envoyer 6 pings.
  • > nul supprime la sortie de ping, en la redirigeant vers nul.
Commentaires (13)

Le hack suivant vous permet de dormir pendant 5 secondes.

ping -n 6 127.0.0.1 > nul

Comme ping attend une seconde entre les pings, vous devez spécifier une seconde de plus que nécessaire.

Commentaires (3)

Vous pouvez utiliser [VBScript][1], par exemple, le fichier myscript.vbs :

set wsobject = wscript.createobject("wscript.shell")

do while 1=1
    wsobject.run "SnippingTool.exe",0,TRUE
    wscript.sleep 3000
loop

Fichier batch :

cscript myscript.vbs %1

[1] : http://en.wikipedia.org/wiki/VBScript

Commentaires (1)