Показать сообщение отдельно
  #2  
Старый 17.06.2010, 09:03
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

вот уже давно работает код:
Код:
uses
  PsAPI,

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button2: TButton;
    procedure Button2Click(Sender: TObject);

procedure TForm1.Button2Click(Sender: TObject);
var
  lpidProcess: array [0..$ffff] of DWORD;
  cbNeeded: DWORD;
  i: Integer;
  openprocesshandle: THandle;
  lphModule: HMODULE;
  lpFilename: array [0..MAX_PATH] of Char;
  len: Cardinal;
begin
  Memo1.Lines.Clear;
  if EnumProcesses(@lpidProcess, SizeOf(lpidProcess), cbNeeded) then
  begin
    for i:=0 to cbNeeded div SizeOf(DWORD)-1 do
    begin
      openprocesshandle:=OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, False, lpidProcess[i]);
      if openprocesshandle>0 then
      begin
        if EnumProcessModules(openprocesshandle, @lphModule, SizeOf(HMODULE), cbNeeded) then
        begin
          len:=GetModuleFileNameEx(openprocesshandle, lphModule, lpFilename, SizeOf(lpFilename));
          if len>0 then
            Memo1.Lines.Add(Copy(lpFilename, 1, len));
        end;
        CloseHandle(openprocesshandle);
      end;
    end;
  end;
end;
Ответить с цитированием