Alle untergeordneten Threads einer externen App beenden / Main Window Closed einer externen App abfragen

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    Alle untergeordneten Threads einer externen App beenden / Main Window Closed einer externen App abfragen

    Hi all,

    ich starte eine App über folgenden Code und warte darauf, dass sie beendet wird:

    Quellcode

    1. Function ProcessStart(Programm As String, Parameter As String) As Integer
    2. Dim p As New Process()
    3. p.StartInfo.FileName = Programm
    4. p.StartInfo.Arguments = Parameter
    5. p.Start()
    6. p.WaitForExit()
    7. If p.HasExited Then
    8. Return p.ExitCode
    9. Else
    10. Return -1
    11. End If
    12. End Function


    Mein Problem ist jetzt, dass die App mehrere Threads startet. Diese laufen noch weiter, auch wenn das Main Window geschlossen wurde (okay, etwas seltsam programmiert). Mit dem gezeigten Code wird gewartet, bis auch der letzte untergeordnete Thread beendet ist.
    Wie kann ich jetzt feststellen, dass das Hauptfenster geschlossen wurde (im Windows Task Manager verschwindet die App) und dann alle abhängigen Threads killen?
    p.kill(true) müsste evtl. funktionieren, aber ich brauche vorher noch den passenden Event.

    Viele Grüße von
    Winnetou

    Winnetou schrieb:

    aber ich brauche vorher noch den passenden Event.
    Das FormClosing-Event?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @Winnetou Jetzt beschreibst Du erst mal kurz, was das eine Programm tut, was das andere Programm tut, wie beide miteinander reden und: Was soll bei welcher Gelegenheit passieren.
    Was erwartest Du von dem Snippet?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Zusatzfrage: Ist die andere/zu startende/zu überwachende App von Dir oder ist das ne externe, auf die Du keinen Programmiereinfluss hast?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.