
17.06.2010, 09:03
|
 |
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;
|