Comment puis-je suspendre l'exécution d'un script de l'intérieur? Quelque chose comme la fonction Sleep WinAPI?
Vous pouvez utiliser un objet WScript
et appeler la méthode Sleep
dessus:
Set WScript = CreateObject("WScript.Shell")
WScript.Sleep 2000 'Sleeps for 2 seconds
Une autre option consiste à importer et utiliser la fonction WinAPI directement (ne fonctionne que dans VBA, merci @ Helen ):
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sleep 2000
L'extrait de script ci-dessous crée un sous-pause qui affiche le texte de la pause dans une chaîne et attend la touche Entrée. z peut être n'importe quoi. Idéal si une intervention utilisateur multiple est requise, des pauses sont nécessaires. Je le garde juste dans mon modèle de script standard.
Pause("Press Enter to continue")
Sub Pause(strPause)
WScript.Echo (strPause)
z = WScript.StdIn.Read(1)
End Sub
Avec 'Enter', il vaut mieux utiliser ReadLine () ou Read (2), car la touche 'Enter' génère 2 symboles. Si l'utilisateur saisit un texte, Pause () sera également ignoré même avec Read (2). Alors ReadLine () est mieux:
Sub Pause()
WScript.Echo ("Press Enter to continue")
z = WScript.StdIn.ReadLine()
End Sub
D'autres exemples sont disponibles dans http://technet.Microsoft.com/en-us/library/ee156589.aspx