var
Wnd: hWnd;
Buff: array [0..127] of Char;
begin
ListBox1.Clear;
Wnd:=GetWindow(Handle, gw_HWndFirst);
while Wnd<>0 do
begin
if (Wnd<>Application.Handle) and
IsWindowVisible(Wnd) and
(GetWindow(Wnd, gw_Owner)=0) and
(GetWindowText(Wnd, Buff, sizeof(buff))<>0) then
begin
GetWindowText(Wnd, Buff, SizeOf(Buff));
ListBox1.Items.Add(StrPas(Buff));
end;
Wnd:=GetWindow(Wnd, gw_hWndNext);
end;
ListBox1.ItemIndex:=0;