给你个现成的。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 LongPrivate Const SYNCHRONIZE = &H100000 Private Const INFINITE = &HFFFF ' Infinite timeout Private Const WAIT_TIMEOUT = &H102&' 扩展VB的Shell方法,最后一个参数指定是否需要同步执行 Public Sub ShellEx(ByVal PathName As String, Optional ByVal WindowStyle As VbAppWinStyle = vbMinimizedFocus, Optional ByVal Sync As Boolean = False)
Dim lPid As Long Dim hProcess As Long
lPid = Shell(PathName, WindowStyle)
If Sync And (lPid > 0) Then hProcess = OpenProcess(SYNCHRONIZE, 0, lPid) WaitForSingleObject hProcess, INFINITE CloseHandle hProcess End If
End Sub
请问用什么方法让 在调用其它程序是,VB的程序停止,只到被调用的程序结束才接着执行VB的程序呀!例如 DIM X x=shell(QQ.exe) msgbox x 当1.exe程序没执行完不会执行下面的msgbox 什么叫做没执行完???等QQ.exe关闭??
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 LongPrivate Const SYNCHRONIZE = &H100000
Private Const INFINITE = &HFFFF ' Infinite timeout
Private Const WAIT_TIMEOUT = &H102&' 扩展VB的Shell方法,最后一个参数指定是否需要同步执行
Public Sub ShellEx(ByVal PathName As String, Optional ByVal WindowStyle As VbAppWinStyle = vbMinimizedFocus, Optional ByVal Sync As Boolean = False)
Dim lPid As Long
Dim hProcess As Long
lPid = Shell(PathName, WindowStyle)
If Sync And (lPid > 0) Then
hProcess = OpenProcess(SYNCHRONIZE, 0, lPid)
WaitForSingleObject hProcess, INFINITE
CloseHandle hProcess
End If
End Sub
DIM X x=shell(QQ.exe)
msgbox x
当1.exe程序没执行完不会执行下面的msgbox
什么叫做没执行完???等QQ.exe关闭??
MsgBox "xxx"