等待炮轰进程和所有子进程

时间:2013-09-05 08:13:56

标签: vb6 waitforsingleobject

抱歉,这已经得到了回答,我找不到了。我需要从vb6应用程序启动外部进程并等待该进程完成后再继续。很简单。然而,我需要启动的过程依次启动子进程然后退出。我需要等待子进程完成(和其他子进程)

现有代码:

Private Const WAIT_INFINITE = -1&
Private Const SYNCHRONIZE = &H100000

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

Public Sub ShellProcess(strProcess As String, Optional blnWait As Boolean = False)
   Dim hProc As Long
   Dim taskId As Long
   Dim cmdline As String

    cmdline = strProcess
    taskId = Shell(cmdline, vbNormalFocus)

    If blnWait = True Then
         hProc = OpenProcess(SYNCHRONIZE, True, taskId)
        Call WaitForSingleObject(hProc, WAIT_INFINITE)
        CloseHandle hProc
    End If

    MsgBox "The shelled app has ended."
End Sub

我已经设法在c#之前做过这个,但现在只有vb6可以使用。

0 个答案:

没有答案