Programm starten und warten
Manchmal ist es notwendig, zu warten, bis ein über Shell
gestartetes Programm beendet ist, weil vielleicht erst dann die zu Importierenden
Daten vorhanden sind.
Beispieldatei (startandwait.zip 11 kB)
Private Const PROCESS_QUERY_INFORMATION = &H400
Private Const STILL_ACTIVE = &H103
Private Declare Function GetExitCodeProcess Lib _
"kernel32" (ByVal hProcess As Long,
_
lpExitCode As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal
_
dwMilliseconds As Long)
Private Declare Function OpenProcess Lib "kernel32"
_
(ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long
Public Sub StartenUndWarten(Programmname As String)
Dim hwndShell As Long, hwndProzess As Long
Dim lngLäuft As Long
hwndShell = Shell(Programmname, 1)
hwndProzess = OpenProcess(PROCESS_QUERY_INFORMATION, _
0&, hwndShell)
Do
GetExitCodeProcess hwndProzess, lngLäuft
'ev.
Sleep 100
Loop While lngLäuft = STILL_ACTIVE
End Sub