vb 调用exe 程序结束后再继续

我想用shell语句调用exe文件,外部exe文件运行结束后会生成一个TXT文件,所以需要该程序结束后再运行下面的代码。callshell(“d:\test3\selec... 我想用shell语句调用exe文件,外部exe文件运行结束后会生成一个TXT文件,所以需要该程序结束后再运行下面的代码。
call shell(“d:\test3\select.exe",vbhide)

求救。
展开
 我来答
HotMousE
2012-04-22 · TA获得超过146个赞
知道小有建树答主
回答量:212
采纳率:100%
帮助的人:179万
展开全部
Shell是有个返回值的,返回值是ProcessID。
这个ID只有在被建立的进程关闭后才会消失。
所以可以循环判断这个ProcessID是否还存在,当消失后,则可以执行另一个Shell。
------
以上提供思路,若需要代码,可以追问。
更多追问追答
追问
需要代码,劳驾。我是新手。
追答
楼上的zx001z回答的很好呀.
我帮忙多加点注释,你就应该能了解他的意思了。

' API 声明
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

' 窗口载入事件
Private Sub Form_Load()

' 变量声明
Dim lngPId As Long ' Process ID
Dim lngPHandle As Long ' Process Handler

' 运行第一个程序 "Notepad.exe"
lngPId = Shell("Notepad.exe", vbNormalFocus)

' 获得进程句柄,并执行成功的情况
lngPHandle = OpenProcess(SYNCHRONIZE, 0, lngPId)
If lngPHandle = 0 Then

' 等待运行的进程执行完毕
Call WaitForSingleObject(lngPHandle, INFINITE)

' 销毁打开的进程句柄
Call CloseHandle(lngPHandle)

End If

' 执行第二个进程 "d:\test3\select.exe"
Call Shell("d:\test3\select.exe", vbHide)

End Sub
zx001z7d53
2012-04-22 · TA获得超过2万个赞
知道大有可为答主
回答量:2.4万
采纳率:52%
帮助的人:5712万
展开全部
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Private Sub Form_Load()
Dim lngPId As Long
Dim lngPHandle As Long
lngPId = Shell("Notepad.exe", vbNormalFocus)
lngPHandle = OpenProcess(SYNCHRONIZE, 0, lngPId)
If lngPHandle = 0 Then
Call WaitForSingleObject(lngPHandle, INFINITE) ' 无限等待, 直到程式结束
Call CloseHandle(lngPHandle)
End If
Call Shell("d:\test3\select.exe", vbHide)
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式