如何在yes / no msg中包装命令?

马特G78

我想将以下代码设置为是/否,甚至是10秒的定时“是”(默认)。我环顾四周,找到了一些答案,但是很遗憾,我无法使用测试环境,因此无法快速获得结果。

我的vb是:

Set objShell = CreateObject("WScript.Shell")
cmd = "%comspec% /c diskpart /s X:\cleandisk.txt"
objShell.Run cmd,1,1    ' Run the command in a window and wait for a return

我希望能够提示您运行或绕过此程序。上下文是MDT环境。目的是在成像之前擦拭磁盘。不幸的是,它一直运行,当我去捕获图像时,它会擦拭驱动器(哎呀)。因此,不要过度使用有限的资源,而是简单地选择是否运行是我的最佳选择。

作为一种选择,我想在默认的“是”答案上设置10秒的倒数计时器。

正如我之前提到的,我并不反对自己解决问题,但是我在工作中的资源(vbs editos,测试环境等)有限。

狄克斯

您可以使用该Popup方法。

Dim objShell: Set objShell = CreateObject("WScript.Shell")

Select Case objShell.Popup("Run this? Will autorun in 10 seconds!", 10, "Title", 1)
Case -1 
    'Timed Out
Case 1
    'OK Pressed
Case 2
    'Cancel Pressed
End Select

返回值

  • -1值:MsgBox超时。您可以将此与案例1结合使用,因为您希望它们执行相同的操作(请参见下文)
  • 1 值:用户按下“确定”按钮
  • 2 价值:用户按下“取消”按钮

由于您要使用与用户按“确定”相同的方式来处理超时,因此可以将两个值组合为一种情况:

Dim objShell: Set objShell = CreateObject("WScript.Shell")

'                                               This is the timeout ↓↓ 
Select Case objShell.Popup("Run this? Will autorun in 10 seconds!", 10, "Title", 1)
Case -1, 1
    cmd = "%comspec% /c diskpart /s X:\cleandisk.txt"
    objShell.Run cmd,1,1
Case 2
    ' Do nothing
End Select

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章