如何知道VB调用的外部程序已经结束运行

如图,我打算用VB编制这个优化程序。用shellexecute调用NASTRAN.EXE程序,调用如下ShellExecute(ME.HWND,"D:\nastran.e... 如图,我打算用VB编制这个优化程序。
用shellexecute调用NASTRAN.EXE程序,调用如下ShellExecute(ME.HWND, "D:\nastran.exe", "w.bdf", NULL,SW_SHOWNORMAL)
但后来发现一个问题,就是在NASTRAN.EXE没有执行完成的时候所编制的程序已经向下走了。导致对同未被修改的W.bdf 同时重复多次被调用。
有什么办法让 nastran.exe 执行完成后才运行ShellExecute的下一个语句。
展开
 我来答
shaoyedh
2011-04-22 · TA获得超过102个赞
知道小有建树答主
回答量:150
采纳率:0%
帮助的人:103万
展开全部
可以使用while循环查看是否结束
Private Function MyShell(ByVal cmd As String, Optional AppStyle As VbAppWinStyle = vbNormalFocus)
Dim RetVal As Long
RetVal = Shell(cmd, AppStyle)
Do While IsRunning(RetVal)
DoEvents
Loop
'执行完毕
End Function
调用!!!
MyShell "c:\1.exe", vbHide
wegson
2011-04-22 · TA获得超过338个赞
知道小有建树答主
回答量:216
采纳率:0%
帮助的人:227万
展开全部
兄弟,你的nastran是完成后是否会自动结束自己的?如是的话就用判断进程法。
如不是,就用判断文件法,即判断w.bdf是否已经被改动。
然后设一个超时判断就ok啦。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0ac9185
2011-04-22 · TA获得超过120个赞
知道小有建树答主
回答量:156
采纳率:0%
帮助的人:144万
展开全部
你不是运行结束有文本文件输出吗?调用外部文件后,一直就检测文本文件有没有生成,有的话再下一步,没有的话延时再判断,一直到有文件生成!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wskjuf
2011-04-22 · TA获得超过1289个赞
知道大有可为答主
回答量:1731
采纳率:0%
帮助的人:1769万
展开全部
可以使用子进程的方式。《windows核心编程》中4.4节就提到了这个方法,你可以参考一下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
光亮pX
2011-04-22 · TA获得超过210个赞
知道答主
回答量:30
采纳率:0%
帮助的人:18.5万
展开全部
判断进程是否存在,存在的话结束进程就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式