ich hab gestern schonmal gepostet, komm aber mit dem Link nicht ganz klar, da ich ein ziemlicher VBA Anfänger bin.
Folgendes Problem. Wie kann ich eine externe Anwendung (Simulationsprogramm) wieder schließen, die zuvor mit der shell Funktion gestartet habe? Es ist jedoch wichtig, dass die Anwendung vor dem schließen vollständig ausgeführt wurde. Am Ende des Simulationslauf erscheint neben dem DOS Fenster immer noch die Meldung "Programm Terminated with exid code 0 - Exit Window? Ja/Nein.
Da ich etliche tausend Läufe habe, muss ich das Fenster auf jedenfall schließen können!
Wer hat mir einen Tipp bzw. den passenden Code, da ich leider mit ein paar Stichwörtern wahrscheinlich nicht so viel anfangen werde! Am besten Programm öffnen (ausführen), überprüfen ob fertig und dann schließen.
Hier mein bisheriger Code:
Option Explicit
Private Declare
Function OpenProcess Lib "kernel32" _
(ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, _
ByVal dwProcessID As Long) As Long
Private Declare
Function GetExitCodeProcess Lib "kernel32" _
(ByVal hProcess As Long, lpExitCode As Long) As Long
Private Declare
Function CloseHandle Lib "kernel32" _
(ByVal hObject As Long) As Long
Sub Test1()
Dim hProcess As Long
Dim ProcessId As Long
Dim exitCode As Long
ProcessId = shell("C:\SUNDI\SUNDIMK1", vbNormal)
hProcess = OpenProcess(&H400, False, ProcessId)
Do
Call GetExitCodeProcess(hProcess, exitCode)
DoEvents
Loop While exitCode = &H103&
Call CloseHandle(hProcess)
End Sub
Es fehlt doch jetzt nur noch der Befehl, das Programm zu schließen?
Vielen Dank im Voraus!
MFG Jo