Form nur aktivieren wenn Prozess xy ausgeführt wird

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Form nur aktivieren wenn Prozess xy ausgeführt wird

    Hallo zusammen,

    Wieder einmal bin ich auf eure Hilfe angewiesen.

    Da mein Programm als unterstützt für ein anderes dienen soll, habe ich eine Form erstellt die alle anderen Programme überlagert, also immer ganz vorne ist.

    Das alles funktioniert wunderbar, allerdings wäre es besser, wenn diese sich aktiviert wenn ein Prozess xy im Taskmanager ausgeführt wird, so alt der Prozess (Programm, nicht mein Programm) beendet wird, soll sich auch die Form beenden.

    Viele Grüße
    Sie: „Schatz, wir haben kein Brot mehr, könntest du bitte zum Supermarkt gehen und 1 holen? Und wenn sie Eier haben, bring 6 Stück mit.“
    Er: „Klar Schatz, mach ich!“
    Nach kurzer Zeit kommt er wieder zurück und hat 6 Brote dabei.
    Sie: „Warum nur hast du 6 Brote gekauft?!?“
    Er: „Sie hatten Eier.“
    Heyho,

    dafür kannst du die Process Klasse nutzen.
    Beispiel:

    VB.NET-Quellcode

    1. Dim p() As Process
    2. p = Process.GetProcessesByName("thunderbird")
    3. If p.Count > 0 Then
    4. MessageBox.Show("läuft")
    5. Else
    6. MessageBox.Show("läuft nicht ")
    7. End If
    Grüße , xChRoNiKx

    Nützliche Links:
    Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen

    Maltur schrieb:

    so alt der Prozess (Programm, nicht mein Programm) beendet wird, soll sich auch die Form beenden.
    Hole Dir die Prozess-Instanz dieses Prozesses und gib ihr das Excited-Event.
    Zwei Möglichkeiten:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim p1() As Process
    3. Dim WithEvents p2 As Process
    4. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    5. p1 = Process.GetProcessesByName("Notepad")
    6. If p1.Length > 0 Then
    7. p1(0).EnableRaisingEvents = True
    8. AddHandler p1(0).Exited, AddressOf HasExcited
    9. End If
    10. End Sub
    11. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    12. p2 = New Process
    13. p2.StartInfo.FileName = "Notepad.exe"
    14. p2.EnableRaisingEvents = True
    15. p2.Start()
    16. End Sub
    17. Private Sub HasExcited(sender As Object, e As EventArgs)
    18. MessageBox.Show("Excited 1")
    19. End Sub
    20. Private Sub HasExcited2(sender As Object, e As EventArgs) Handles p2.Exited
    21. MessageBox.Show("Excited 2")
    22. End Sub
    23. End Class
    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).
    VB-Fragen über PN / Konversation werden ignoriert!