SPECIAL OFFER        Order and save right now!
20% off with the 729824315 dicscount code for Ultimate Pack and any another product for Delphi from Greatis Programming!

⤷ Detect list of loaded programs

We will find all windows, but if window is invisible or it hasn't a caption or it is a MDI-Child then, we won't show this window.

procedure TForm1.Button1Click(Sender: TObject);
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;
end;
More for developers
Databases for Amazon Associates
Amazon Categories
Amazon Nodes