ich konnte folgendes Problem noch immer nicht lösen. Ich möchte eine Anwendung aus Excel heraus starten, warten bis sie fertig gerechnet hat und sie dann wieder automatisch schließen. Ich bin jetzt soweit, dass ich die Anwendung starten kann und sie gleich danach wieder geschlossen wird. Ich muss jedoch sicher gehn, dass sie fertig gerechnet hat. Die Anwendung (Simulationsprogramm) läuft unter DOS und am Ende erscheint ein Fenster mit der Meldung "Programm Terminated with exid code 0 - Exit Window? Ja/Nein.
Da ich etliche tausend Läufe habe, muss ich die Anwendung auf jedenfall automatisch schließen können und nicht erst nach einer vorgegebenen Zeit t!
Wer hat mir einen Tipp bzw. den passenden Code, da ich leider mit ein paar Stichwörtern wahrscheinlich nicht so viel anfangen werde!
Hier ist mein bisheriger Code:
[Option Explicit
Private Declare
Function TerminateProcess Lib "kernel32" (ByVal _
hProcess As Long, ByVal uExitCode As Long) As Long
Private Declare
Function OpenProcess Lib "kernel32" (ByVal _
dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal _
dwProcessID As Long) As Long
Private Declare
Function CloseHandle Lib "kernel32" (ByVal hObject As _
Long) As Long
Private Declare
Function GetExitCodeProcess Lib "kernel32" (ByVal _
hProcess As Long, lpExitCode As Long) As Long 'neu
Const PROCESS_TERMINATE = &H1
Const Aktiv = &H103 'neu
Private ProcessId As Long
Private ProcessId_Exit As Long
Private RetVal As Variant
Sub Test3()
Dim l As Long
ProcessId = shell("D:\app\fcit\kpro46de\rkern\kprohaup.exe", vbNormalFocus)
'Shell startet das ausgewählte Programm.
ProcessId_Exit = OpenProcess(PROCESS_TERMINATE, 0&, ProcessId)
'Mit dieser Funktion erhalten Sie das Object-Handle auf den
'aktiven Prozess.
Do
GetExitCodeProcess ProcessId_Exit, l
DoEvents
Loop While l = Aktiv
RetVal = TerminateProcess(ProcessId_Exit, 1&)
'Mit der TerminateProcess Funktion können Sie den ausgewählten
'Prozess und all seine Threads (falls vorhanden) beenden.
RetVal = CloseHandle(ProcessId_Exit)
'Hier wird das Handle wieder geschlossen.
End Sub
]
Vielen Dank!
MFG Kretschi