Как определить какие приложения уже запущены?

Материал из DRKB

Как определить какие приложения уже запущены?[править | править код]

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;


Source: Взято из http://forum.sources.ru
ID: 02048