Показать сообщение отдельно
  #5  
Старый 09.11.2012, 00:24
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Так устроит?
Код:
uses
  PSAPI, TlHelp32;
...
function TaskManager : String;
var
  Wnd, pr : HWND;
  buff    : array[0..127] of Char;
  pid     : Cardinal;
  me32    : TModuleEntry32;
begin
  Result := '';
  Wnd := GetWindow(Form1.Handle, GW_HWNDFIRST);
  while Wnd <> 0 do
  begin
    if (Wnd <> Application.Handle) and (GetWindow(Wnd, GW_OWNER) = 0) and (GetWindowText(Wnd, buff, SizeOf(buff)) <> 0) then
    begin
      GetWindowText(Wnd, buff, SizeOf(buff));
      Result := Result + #13#10'Программа: ' + buff + #9#9;
      GetWindowThreadProcessId(wnd, @pid);
      pr := CreateToolHelp32Snapshot(TH32CS_SNAPMODULE, pid);
      me32.dwSize := SizeOf(me32);
      Module32First(pr, me32);
      Result := Result + ' Путь: ' + me32.szExePath;
      CloseHandle(pr);
    end;
    Wnd := GetWindow(Wnd, GW_HWNDNEXT);
  end;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
  Memo1.Lines.Clear;
  Memo1.Lines.Add(TaskManager);
end;
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием