Entwickler-Ecke

Windows API - Wie kann ich mir eine Fensterliste anzeigen lassen?


Waschi - Mo 24.06.02 18:09
Titel: Wie kann ich mir eine Fensterliste anzeigen lassen?
hallo ich dummerchen bin mal wieder zu blöde :oops:
ich will mir eine Liste mit allen göffneten Fenstern anzeigen lassen. am besten irgendwie in eine list box schreiben

schonmal vielen Dank euer Waschi


Klabautermann - Mo 24.06.02 19:06

Von was für Fenstern sprichst du?
Meinst du alle geöffnet en Programme oder die Kindfenster deiner MDI Anwendung?

Neugierig,
Klabautermann


OregonGhost - Di 25.06.02 00:09

Mit der Funktion EnumWindows() kannst du alle Fenster von Windows aufzählen lassen. Als zweiten Parameter übergibst du einfach 0, als ersten musst du eine Funktion übergeben, die du selbst definiert hast.
z.B.

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
EnumWindowsProc(wnd: HWND, lParam: LONG); stdcall;
var szName: PChar;
begin
szName := StrAlloc(GetWindowTextLength(wnd));
GetWindowText(wnd, szName, GetWindowTextLength(wnd));
DeineListbox.Items.Add(String(szName));
StrDispose(szName);
end;

Wenn du jetzt

Quelltext
1:
EnumWindows(EnumWindowsProc, 0);                    

aufrufst, dürfte das deine Listbox füllen. Wenn sie denn DeineListbox heißt.
Falls der letzte Aufruf nicht kompiliert musst du vielleicht @EnumWindowsProc schreiben.