Entwickler-Ecke

Basistechnologien - Status einer fremden Anwendung überprüfen


cocacola - So 29.03.09 13:29
Titel: Status einer fremden Anwendung überprüfen
Hallo zusammen!
Ich weiß nicht, ob ich die richtige Kategorie gewählt habe, wenn nicht, einfach verschieben bitte.
Ich habe jetzt schon einige Zeit gegoogelt, bin aber zu keinem richtigen Ergebnis gekommen. Und
zwar folgendes:
Ich will überprüfen ob sich ein fremdes Programm in der Taskleiste befindet. Kann mir da jemand helfen?
Vielen Dank CocaCola


Kha - So 29.03.09 15:55

:welcome:

Was weißt du denn über das fremde Programm? Den Fenster-Titel? Wenn du dich jedenfalls nicht mit der Win-API und P/Invoke herumschlagen willst, solltest du dir das Projekt hier anschauen: http://mwinapi.sourceforge.net
Dort gibt es eine SystemWindow-Klasse. Wenn du davon dann eine Instanz hast, musst du nur noch schauen, ob die ExtendedStyle-Property das APPWINDOW-Flag enthält.


cocacola - So 29.03.09 16:14

Hey! Danke für den netten Willkommenssmiley :D
Also von dem Programm weiß ich natürlich den Prozessnamen. Ich erkläre das Problem ein mal genauer: Ich habe eine Programm, welches nach dem Beenden nicht richtig schließt sondern immer noch weiterläuft (nur im Taskmanager). Jetzt wollte ich ein Programm schreiben, welches per Timer überprüft, ob das Programm noch offen (also in der Taskleiste vorhanden) ist. So weit bin ich:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
        {
            Process[] Prozessliste = Process.GetProcessesByName(textBox1.Text);
            foreach (Process Prozess in Prozessliste)
            {
                if (Programm befindet sich in der taskleiste = false)
                {
                    p.Kill();
                }
            }
        }



jetzt muss ich nur noch "Programm befindet sich in der Taskleiste" in Code umwandeln :P

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Kha - So 29.03.09 19:54

Achso, dann bringt dir der ExtendedStyle natürlich nichts. Nimm obige API und schau mal, ob du in SystemWindow.AllToplevelWindows [http://mwinapi.sourceforge.net/doc/html/P_ManagedWinapi_Windows_SystemWindow_AllToplevelWindows.htm] überhaupt noch ein Fenster mit dem Titel findest, wenn das Programm abgestürzt ist. Wahrscheinlich ist zu dem Zeitpunkt das Main-Window schon hopps.