请问用什么方法让  在调用其它程序是,VB的程序停止,只到被调用的程序结束才接着执行VB的程序呀!例如
 DIM X
 x=shell(QQ.exe)msgbox x当1.exe程序没执行完不会执行下面的msgbox

解决方案 »

  1.   

    给你个现成的。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
      

  2.   

    请问用什么方法让  在调用其它程序是,VB的程序停止,只到被调用的程序结束才接着执行VB的程序呀!例如
    DIM X x=shell(QQ.exe)
    msgbox x
    当1.exe程序没执行完不会执行下面的msgbox
    什么叫做没执行完???等QQ.exe关闭??
      

  3.   

    晕,代码都发了。ShellEx "QQ.exe",,True
    MsgBox "xxx"