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"
Hallo 321risiko,
soweit ich weiß geht das nur mit Durchgriff auf Win32 mit EnumWindows/GetWindowText. Nicht besonders anfängergeeignet.
herbivore
System.Diagnostics.Process[] processes = System.Diagnostics.Process.GetProcesses();
for (int i = 0; i < processes.Length; i++)
{
if( processes[i].MainWindowTitle != "" )
// processes[i].MainWindowTitle;
}
@Noodles
Es werden nicht alle sochtbaren Fenster damit angezeigt. Der Code ist Mist (Bezug .NET). Man muß über EnumWindows gehen sonst funzt es nicht.
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
@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.
Danke für eure Antworten. Mit Anfänger meinte ich in C#, programieren tue ich schon länger.
Zwei Fragen noch:
"Life is brutal and full of Zasadzkas"
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.
- Hat jemand einen Beispielcode für den anderen Weg? www.pinvoke.net
herbivore
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"
Hallo 321risiko,
GetWindowText ist eine Win32 Funktion. Da gibt es keine usings für. Schau unter http://www.pinvoke.net/
herbivore
Hier im Anhang hast das was du brauchst, benenne .txt in .cs um.