0

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

编辑:想通了 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

我在帮助菜单中找到了自动关闭 msgbox 的解决方案Windows Script Host - Popup Method

IE。

Dim WshShell, BtnCode

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

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

-- 3“等待秒”

于 2013-09-24T07:37:02.833 回答
1

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

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

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

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

于 2016-06-04T23:01:22.013 回答