VB运行EXE程序,并等待其运行结束
参考:https://blog.csdn.net/useway/article/details/5494084
- 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 Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long,ByVal bInheritHandle As Long,ByVal dwProcessId As Long) As Long
- Private Sub Command1_Click()
- Dim i As Long
- Dim r As Long
- Dim p As Long
- i = Shell("NOTEPAD.EXE",vbNormalFocus)
- p = OpenProcess(&H100000,False,i)
- r = WaitForSingleObject(p,-1)
- r = CloseHandle(p)
- MsgBox "记事本已经关闭"
- End Sub
VB运行批处理文件,并等待其运行结束
参考:http://blog.sina.com.cn/s/blog_7a44d6090100xdvf.html
- Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long,ByVal dwProcessId As Long) As Long
- Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long,lpExitCode As Long) As Long
- Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
- Private Sub Command1_Click()
- Dim pid As Long
- Dim ExitCode as Long
- pid = Shell("c:\a.bat",vbNormalFocus)
- hProcess = OpenProcess(&H400,0,pid)
- Do
- Call GetExitCodeProcess(hProcess,ExitCode)
- DoEvents
- Loop While ExitCode = &H103
- Call CloseHandle(hProcess)
- MsgBox ("运行结束")
- End Sub