web-dev-qa-db-ja.com

vbscriptの実行を一時停止する方法は?

内部からスクリプトの実行を一時停止するにはどうすればよいですか? Sleep WinAPI関数のようなものですか?

13
Andrej Kirejeŭ

WScriptオブジェクトを使用して、その上で Sleep メソッドを呼び出すことができます。

Set WScript = CreateObject("WScript.Shell")
WScript.Sleep 2000 'Sleeps for 2 seconds

もう1つのオプションは、WinAPI関数をインポートして使用することです 直接 (VBAでのみ機能します、ありがとう @ Helen ):

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sleep 2000
17
Oded

以下のスクリプトスニップは、文字列で一時停止テキストを表示し、Enterキーを待機する一時停止サブを作成します。 zは何でもかまいません。複数のユーザー介入が必要な一時停止が必要な場合に最適です。標準のスクリプトテンプレートにそのまま保存します。

Pause("Press Enter to continue")

Sub Pause(strPause)
     WScript.Echo (strPause)
     z = WScript.StdIn.Read(1)
End Sub
19
MacAnanny M

「Enter」では、キー「Enter」が2つのシンボルを生成するため、ReadLine()またはRead(2)を使用する方が適切です。ユーザーが次にPause()にテキストを入力すると、Read(2)でもスキップされます。したがって、ReadLine()の方が優れています。

Sub Pause()
    WScript.Echo ("Press Enter to continue")
    z = WScript.StdIn.ReadLine()
End Sub

その他の例は http://technet.Microsoft.com/en-us/library/ee156589.aspx をご覧ください

10
Sergey Enns