在这里搜索时,我在另一个问题上看到了这段代码:
(echo MsgBox "Line 1" ^& vbCrLf ^& "Line 2",262192, "Title")> File.vbs
start File.vbs
它对我有用。我的问题是,它希望用户单击“确定”按钮来关闭。我希望它在 5 秒或 10 秒(或任何预定的秒数)后自动关闭。
我搜索了“vbs”“关闭窗口”等几种变体,但一无所获。有什么方法可以实现我的这个目的吗?
答案1
假如说:
- 您不想知道窗口是否超时
- 你不想知道用户点击了哪个按钮
- 您不介意写出一个临时的 VBScript 文件来生成弹出窗口(然后将其删除)
然后使用以下命令:
echo WScript.CreateObject("Wscript.Shell").Popup "Line 1" ^& vbCrLf ^& "Line 2", 10, "Title", 262192 > %temp%\File.vbs
wscript %temp%\File.vbs
del /f %temp%\File.vbs
这将导致出现一个弹出窗口,其中包含两行内容(“第 1 行”和“第 2 行”)、标题“标题”、感叹号图标、确定按钮和 10 秒的超时时间。
有关如何配置此窗口的更多详细信息,请参阅弹出窗口命令。
48
值得注意的是,您可以使用而不是 262192
(从技术上讲,这不是有效的数字选项)来实现感叹号和“确定”按钮。
答案2
创建一个调用 Windows Script Host popup() 方法的 .vbs 脚本。该方法有一个参数,用于确定弹出消息窗口的显示时间。然后使用“wscript your_script.vbs”从命令行调用您的脚本。
仅供参考,有大量报告称 popup() 方法计时不稳定,甚至根本无法超时,尤其是超时值较大时。