Laden...

Windowstitel auslesen

Erstellt von 321risiko vor 17 Jahren Letzter Beitrag vor 17 Jahren 3.252 Views
321risiko Themenstarter:in
59 Beiträge seit 2006
vor 17 Jahren
Windowstitel auslesen

Hallo!

Ich würde gerne wissen, wie man die Fenstertitel aller offenen Programme auslesen, aber auch wie man dieses gezielt (z.B. von Foobar) machen kann. Hat jemand einen Tipp? Ich bin ein ziemlicher Anfänger, was C# angeht. Danke!

"Life is brutal and full of Zasadzkas"

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo 321risiko,

soweit ich weiß geht das nur mit Durchgriff auf Win32 mit EnumWindows/GetWindowText. Nicht besonders anfängergeeignet.

herbivore

N
4.644 Beiträge seit 2004
vor 17 Jahren
System.Diagnostics.Process[] processes = System.Diagnostics.Process.GetProcesses();
for (int i = 0; i < processes.Length; i++)
{
    if( processes[i].MainWindowTitle != "" )
        // processes[i].MainWindowTitle;
}
S
285 Beiträge seit 2005
vor 17 Jahren

@Noodles

Es werden nicht alle sochtbaren Fenster damit angezeigt. Der Code ist Mist (Bezug .NET). Man muß über EnumWindows gehen sonst funzt es nicht.

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Sera,

warum gleich von Mist reden? Der Code macht ja keinen Hehl daraus, dass nur die MainWindows aufgelistet werden. Jetzt kann sich jeder aussuchen, ob er den umständlicheren Weg über Win32 geht und dafür die Titel aller Fenster bekommt oder er den bequemen .NET-Weg geht und dafür nur die Titel der MainWindows bekommt.

herbivore

S
285 Beiträge seit 2005
vor 17 Jahren

@herbi

Starte mehrere Prozesse einer Applikation mit sichtbaren Forms und du wirst nur einen davon zurückbekommen 😉

EDIT: Laut deinem Post sind wir anscheinend gleicher Meinung.

321risiko Themenstarter:in
59 Beiträge seit 2006
vor 17 Jahren

Danke für eure Antworten. Mit Anfänger meinte ich in C#, programieren tue ich schon länger.

Zwei Fragen noch:

  • Wenn ich über MainWindows gehe, bekomme ich auch die Fenstertitel von Programmen die in der Systemtray versteckt sind?
  • Hat jemand einen Beispielcode für den anderen Weg?

"Life is brutal and full of Zasadzkas"

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo 321risiko,

Wenn ich über MainWindows gehe, bekomme ich auch die Fenstertitel von Programmen die in der Systemtray versteckt sind?

Wenn sie ein MainWindow haben, ja. Ob SystemTray oder nicht, spielt keine Rolle.

herbivore

321risiko Themenstarter:in
59 Beiträge seit 2006
vor 17 Jahren

Nein, MainWindow liest nur Fenstertitel die nicht in der Tray sind. Wenn ich sie auf den Dektop öffne, dann liest er sie.

Weißt Du vielleicht was ich mit using einbinden muß, um GetWindowText() zu nutzen?

"Life is brutal and full of Zasadzkas"

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo 321risiko,

GetWindowText ist eine Win32 Funktion. Da gibt es keine usings für. Schau unter http://www.pinvoke.net/

herbivore

S
285 Beiträge seit 2005
vor 17 Jahren

Hier im Anhang hast das was du brauchst, benenne .txt in .cs um.