0

複数の MsgBox 関数を含む vbscript を作成しています。最初の MsgBox が画面に表示されますが、自動的に閉じてしまい、次の MsgBox は表示されません。最初の MsgBox の後、vbscript も実行を停止すると思います。発生を止める方法はありますか?自分で閉めたい。ありがとう。

編集: VBS停止オプションが1秒で強制終了されることを理解しました:(

4

3 に答える 3

2

ドキュメントには明確に記載されています:

MsgBox 関数: ダイアログ ボックスにメッセージを表示し、ユーザーがボタンをクリックするのを待ち、ユーザーがクリックしたボタンを示す値を返します。

したがって、MsgBox は「自動終了」してはなりません。MsgBox を (一見) 自動で閉じる唯一の方法は、//T パラメータを使用してスクリプトを終了し、タイムアウトを設定することです。

与えられた:

Option Explicit

WScript.Echo "Will call MsgBox"
MsgBox "Waiting for the cow"
WScript.Echo "MsgBox done"

私は得る:

cscript autoclosemsgbox.vbs
Will call MsgBox
MsgBox done

MsgBoxを閉じたとき(長い間待った後でも)、しかし

cscript //T:3 autoclosemsgbox.vbs
Will call MsgBox
Script execution time was exceeded on script "autoclosemsgbox.vbs".
Script execution was terminated.

(不足している「MsgBox完了」をマークします)

そう

  1. タイムアウトがアクティブかどうかを確認します (//T:0 を使用してオーバーライドする必要があります)
  2. モーダルダイアログを避けるために@starkのアドバイスを検討してください(おそらくここを見るとアイデアが得られます)
于 2013-08-13T21:21:29.250 に答える
1

n 秒の実行後に終了する WScript がないことを確認してください。

Run(Windows + R)またはCMDを開きます。Wscript と入力して Enter キーを押します。

指定した秒数後にスクリプトを停止するというボックスのチェックを外します。

または、スクリプトを .WSH ファイルから実行している場合は、wsh ファイルを編集する必要がある場合があります。テキスト エディターを使用して WSH ファイルを開き、Timeout=n下を削除します[Options](n は終了までの秒数)。

于 2016-06-04T23:01:22.013 に答える