Do you mean all aplications or all processes?
For all applications I did it like this:
function EnumWindowsProc(Handle: HWND;param: LPARAM): LongBool; stdcall;
var Buffer: array[0..1024] of Char;
begin
Result:=True;
if GetWindowLong(Handle,GWL_STYLE) AND WS_VISIBLE=0 then Exit;
GetWindowText(Handle,Buffer,SizeOf(Buffer));
if not (Buffer[0] = #0) then
Form1.ListBox1.Items.AddObject(Buffer,TObject(Handle));
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
EnumWindows(@EnumWindowsProc,0)
end;
All Applicationwindows are being presented in Listbox1.
(Mind the wordwrapping on this forum)