【发布时间】:2021-08-13 17:57:00
【问题描述】:
我开发了一个脚本,它在代码中的某个位置调用一个 VBScript,它最小化所有当前打开的 Windows 并显示一个 MsgBox。该脚本设置为在启动时运行,因此其他应用程序也在用户登录机器时启动。
批量调用VBS->
cscript //nologo lckPNot.vbs
lckPNot.vbs——>
set objShell = CreateObject("shell.application")
objShell.MinimizeAll
x=MsgBox ("Message Here.",0+48,"Notification")
objShell.MinimizeAll 成功最小化所有当前打开的窗口,但是一旦在objShell.MinimizeAll 之后和用户向 MsgBox 提供输入之前打开一个窗口,我就会遇到问题。
即我需要一种表达方式:
while MsgBox = Visible
Minimize All
Loop
如果上述方法不可行,我也可以尝试在批处理代码本身中使用循环,即 而 lckPNot.vbs = 运行 调用 KillProcesses.bat 循环
其中KillProcesses.bat 是另一个在给定点杀死所有打开任务(而不是最小化)的批处理。
如何做到这一点?
【问题讨论】:
-
嗯,这是一个开始。基本上这将允许我在 msgbox 出现时完成执行,但我仍然需要一种方法来检测消息框是关闭还是打开,想法?
-
副本告诉您的是
MsgBox()阻止代码执行,您需要使用cscript.exe以避免GUI 元素阻止脚本。
标签: windows for-loop batch-file vbscript