Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1752to1756
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

exe ausführen und auf Ende warten

exe ausführen und auf Ende warten
29.04.2020 19:25:39
Mike
Hallo zusammen,
irgendetwas scheine ich zu übersehen. Vielleicht kann jemand helfen.
Ich habe ein kleines C# Programm welches ich aus einem Excel Makro raus starten möchte.
Das Progrmm sammelt Daten und gibt eine csv aus.
Sobald das Programm beendet ist, soll mein Makro weiter laufen.
Ich erhalte aber eine Fehlermeldung wenn ich das C# Programm starten möchte.
Was mache ich falsch?
  • 
    Sub Start()
    Dim wshshell As Object
    Set wshshell = CreateObject("WScript.Shell")
    wshshell.Run "c:\Export.exe", 1, True
    Call MakroXYZ
    End Sub
    


  • Als Fehlermeldung erhalte ich
    Laufzeitfehler '2147024894 (8000700002)':
    Die Methode 'Run' für das Objekt 'IWshShell3' ist fehlgeschlagen
    Gruß
    Mike

    5
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: exe ausführen und auf Ende warten
    29.04.2020 21:12:31
    volti
    Hallo Mike,
    teste mal folgenden ungetesteten Code. Der sollte die Anwendung starten und warten, bis sie fertig ist.

    Option Explicit
    Declare PtrSafe Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As LongPtr
    Declare PtrSafe Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As LongPtr, lpExitCode As Long) As Long
    Const PROCESS_QUERY_INFORMATION = &H400
    Const STILL_ACTIVE = &H103
    Sub StarteAnwendungUndWarte()
     Dim hProcess As LongPtr, iExitcode As Long
     hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, Shell("c:\Export.exe", vbMinimizedNoFocus))
     Do
      GetExitCodeProcess hProcess, iExitcode
      DoEvents
     Loop While iExitcode = STILL_ACTIVE
    End Sub
    viele Grüße
    Karl-Heinz

    Anzeige
    AW: exe ausführen und auf Ende warten
    30.04.2020 12:41:33
    Mike
    Hallo Karl-Heinz,
    danke für deinen Lösungsvorschlag. Ich hatte noch nicht die Zeit mich damit detailliert auseinanderzusetzen. Ich kann aber nach einem kurzen Test sagen, dass ich weitere Fehlermeldungen erhalte. Woran es jetzt genau liegt kann ich aktuell noch nicht sagen aber ich werde das genauer prüfen.
    Antons Beitrag hat zumindest dazu geführt, dass ich das Programm ohne Fehlermeldungen starten kann.
    Excel wartet zwar aktuell noch nicht auf Programmende aber das denke ich sollte mit deinem Vorschlag umsetzbar sein. Wenn ich dabei auf weitere Probleme stoße würde ich mich nochmal melden.
    Danke und Gruß
    Mike
    Anzeige
    AW: exe ausführen und auf Ende warten
    30.04.2020 13:17:17
    volti
    Hallo Mike,
    das tut mir leid mit der Fehlermeldung. Hab's grad noch mal probiert mit diesem Aufruf. Die Msgbox kommt erst, wenn ich den CustomUI beendet habe.
    Der Fehler müsste demnach wahrscheinlich an Deinem Programm(aufruf) liegen. Ich drücke die Daumen, dass es doch noch klappt.

    
    Sub StarteAnwendungUndWarte()

     Dim hProcess As LongPtr, iExitcode As Long
     hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, _
                Shell("C:\CustomUIEditor\CustomUIEditor.exe", vbMaximizedFocus))
     Do
      GetExitCodeProcess hProcess, iExitcode
      DoEvents
     Loop While iExitcode = STILL_ACTIVE
     MsgBox "Programm beendet"
    End Sub
    viele Grüße
    Karl-Heinz

    Anzeige
    exe ausführen und auf Ende warten
    30.04.2020 09:46:23
    Anton
    Hallo Mike,
    hast du vielleicht Leerzeichen im Pfad zu deinem Programm?
    wenn ja, dann so:
    
    wshshell.Run """c:\Export.exe""", 1, True
    
    mfg Anton
    AW: exe ausführen und auf Ende warten
    30.04.2020 12:46:49
    Mike
    Hallo Anton,
    jetzt wo ich deinen Beitrag so lese, kommt mir das mit den 3" recht bekannt vor. Ich glaube ich hatte früher schonmal ein ähnliches Problem.
    Auf jeden Fall kann ich das Programm nun mit meinem ursprünglichen Code aus dem Makro starten. Ich werde das jetzt noch beizeiten mit dem Vorschlag von Karl-Heinz kombinieren um das "warten" zu realisieren.
    Danke und Gruß
    Mike
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige