Hallo,
ich weiß nicht, ob ich das Problem richtig verstanden habe, anbei ein Beispiel zum Start eines Prozesses mit Warten auf dessen Ende, vielleicht hilft das?
Private Declare Function CloseHandle Lib „kernel32“ ( _
ByVal hObject As Long) As Long
Private Declare Function GetExitCodeProcess Lib „kernel32“ ( _
ByVal hProcess As Long, ExitCode As Long) As Long
Private Declare Function OpenProcess Lib „kernel32“ ( _
ByVal DesiredAccess As Long, ByVal InheritHandle As Boolean, _
ByVal ProcessId As Long) As Long
Private Declare Function WaitForSingleObject Lib „kernel32“ ( _
ByVal hHandle As Long, _
ByVal dwMilliseconds As Long) As Long
Public Function Shell_Wait_E(Exec As String) As Long
’
’ Warten auf das endgültige Ende eines Prozesses
’ Exec ist der auszuführende Prozess
’
Const INFINITE As Long = -1& ’ ewig lang
Dim ntaskid As Long
Dim nHProcess As Long
ntaskid = Shell(Exec, vbNormalFocus)
nHProcess = OpenProcess(SYNCHRONIZE, False, ntaskid)
Shell_Wait_E = WaitForSingleObject(nHProcess, INFINITE)
CloseHandle nHProcess
End Function
Viel Erfolg
Rainer