Registriert seit: 29. Mai 2002
37.621 Beiträge
Delphi 2006 Professional
|
14. Sep 2002, 02:14
Mit EnumWindows kannst du alle Fenster auflisten. Und mit IsWindowVisible kannst du alle sichtbaren rausfiltern.
Code:
[b]type[/b]
PMyEnumParam = ^TMyEnumParam;
TMyEnumParam = [b]record[/b]
lv: TListview;
[b]end[/b];
[b]function[/b] GetWindows([b]const[/b] hWnd : Longword;
Param: PMyEnumParam): LongBool; [b]stdcall[/b];
[b]var[/b]
Len : Longint;
S : [b]String[/b];
li: TListItem;
[b]begin[/b]
Result := True;
[b]if[/b] [b]not[/b] ( IsWindow(hWnd) [b]and[/b] IsWindowVisible(hWnd) ) [b]then[/b] Exit;
Len := SendMessage(hWnd, WM_GETTEXTLENGTH, 0, 0);
[b]if[/b] Len > 0 [b]then[/b]
[b]begin[/b]
SetLength(S, Len);
SendMessage(hWnd, WM_GETTEXT, Len + 1, Longint(Pchar(S)));
li := Param.lv.Items.Add;
li.Caption := s;
li.SubItems.Add(IntToStr(hWnd));
[b]end[/b];
[i]// mit Result = False kann die Callbackfunktion vorzeitig verlassen werden[/i]
[b]end[/b];
[b]procedure[/b] TForm1.Button1Click(Sender: TObject);
[b]var[/b]
Param: TMyEnumParam;
[b]begin[/b]
Param.lv := Listview1;
EnumWindows(@GetWindows, LPARAM(@Param));
[b]end[/b];
Michael Ein Teil meines Codes würde euch verunsichern.
|
|
Zitat
|