如何阻止vbscript msgbox自动关闭?

时间:2013-08-13 20:55:34

标签: vbscript

我正在编写包含多个MsgBox函数的vbscript。第一个MsgBox出现在屏幕上,但它会自动关闭,并且不显示以下MsgBox。我认为vbscript也会在第一个MsgBox之后停止执行。有什么方法可以阻止它发生吗?我想能够自己关闭它。谢谢。

编辑:想出来 VBS Stop option forced to kill on 1 sec :(

3 个答案:

答案 0 :(得分: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建议避免模态对话(也许看here会给你一个想法)

答案 1 :(得分:1)

确保在执行n秒后没有WScript终止。

打开运行( Windows + R )或CMD。输入Wscript按enter键。

取消选中在指定的秒数后停止脚本的框:

或者,如果从.WSH文件运行脚本,则可能需要编辑wsh文件。使用文本编辑器打开WSH文件并删除Timeout=n下的[Options](n是终止的秒数)

答案 2 :(得分:0)

我在帮助菜单Windows Script Host - Popup Method

中找到了自动关闭msgbox的解决方案

Dim WshShell, BtnCode

Set WshShell = WScript.CreateObject("WScript.Shell")

BtnCode = WshShell.Popup("Do you feel alright?", 3)

- 3"等待秒数"