如何运行应用程序并等待它关闭以运行其余代码

时间:2018-02-06 11:09:57

标签: windows vbscript

我想知道如何调用exe并等待它关闭然后执行其余的代码。 这是我的代码:

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run("C:\Users\HP8200\Desktop\SolitRepoeTEM\SolitRepoeTEM\bin\Debug\WindowsFormsApp12.exe")
WshShell.SendKeys "{d}"
WshShell.SendKeys "{o}"
WshShell.SendKeys "{c}"
WshShell.SendKeys "{u}"
WshShell.SendKeys "{m}"
WshShell.SendKeys "{e}"
WshShell.SendKeys "{n}"
WshShell.SendKeys "{t}"
WshShell.SendKeys "{o}"
WshShell.SendKeys "{-}"
WshShell.SendKeys "{e}"
WshShell.SendKeys "{n}"
WshShell.SendKeys "{t}"
WshShell.SendKeys "{enter}"
WshShell.SendKeys "{enter}"
WshShell.SendKeys "{r}"
WshShell.SendKeys "{e}"
WshShell.SendKeys "{p}"
WshShell.SendKeys "{o}"
WshShell.SendKeys "{e}"
WshShell.SendKeys "{t}"
WshShell.SendKeys "{e}"
WshShell.SendKeys "{m}"
WshShell.SendKeys "{enter}

1 个答案:

答案 0 :(得分:1)

如有疑问,请阅读documentation

  

运行方法(Windows脚本宿主)

     

在新流程中运行程序。

     

<强>语法

object.Run(strCommand, [intWindowStyle], [bWaitOnReturn]) 
     

<强>参数

     

[...]

     

bWaitOnReturn
  可选的。布尔值,指示脚本是否应该等待程序完成执行,然后再继续执行脚本中的下一个语句。如果设置为 true ,脚本执行将暂停,直到程序完成,Run将返回程序返回的任何错误代码。如果设置为 false (默认值),Run方法会在启动程序后立即返回,自动返回0(不会被解释为错误代码)。

如果由于可执行文件立即返回而无效,请尝试通过start命令从CMD运行应用程序。

WshShell.Run "cmd /c start """" /wait /b ""C:\User...App12.exe""", 0, True

如果仍然无法正常工作,则需要检查应用程序的进程列表。在循环中对Win32_Process类进行WMI查询,直到该过程不再显示为止。