Die
Unit EnumWindowUtil im Anhang enthält eine Kapselung für die Windows-
API Funktionen
EnumWindows,
EnumChildWindows,
EnumDesktopWindows,
EnumThreadWindows und
EnumWindowStations.
Es handelt sich dabei um eine Klasse, die von TStringList abgeleitet wurde.
Folgendes Beispiel zeigt, wie einfach man damit arbeiten kann:
Delphi-Quellcode:
var
wlist : TWindowList;
begin
wlist := TWindowList.Create; // Objekt erzeugen
try
wlist.AddClassname := True; // zusätzlich den Windows-Classname anfügen
wlist.EnumTopLevelWindows; // Alle Windows auflisten
ListBox1.Items.Assign(wlist); // Ergebnis in eine Listbox kopieren
finally
wlist.Free;
end;
end;
Natürlich kann man so nicht nur den WindowsText (Caption des Window) abfragen, sondern man
kommt auch ganz einfach an die Handles der Windows heran.
(Der Trick dabei ist, dass die Handles intern im Property Objects[] gespeichert werden)
Delphi-Quellcode:
// Alle Fenster minimieren
for i := 0 to wlist.Count-1 do
begin
ShowWindow(wlist.Handles[i], SW_MINIMIZE);
end;