Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2
  Alt 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.
  Mit Zitat antworten Zitat