
17.10.2013, 01:30
|
 |
LMD-DML
|
|
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
|
|
Цитата:
Сообщение от Flashton
...Может это Delphi XE2 виноват?
|
Вполне вероятно, попробовал тоже этот код на D7 - работает правильно.
А если так
Код:
uses
TlHelp32,Psapi;
procedure TForm1.Button4Click(Sender: TObject);
var
PIDArray: array [0..1023] of DWORD;
ModuleName: array [0..300] of char;
cb: DWORD;
i, ProcCount: integer;
hMod: HMODULE;
hProcess: THandle;
begin
Info.Clear;
EnumProcesses(@PIDArray, SizeOf(PIDArray), cb);
ProcCount:= cb div SizeOf(DWORD);
for i := 0 to ProcCount-1 do
begin
hProcess:= OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, False, PIDArray[i]);
if (hProcess <> 0) then
begin
EnumProcessModules(hProcess, @hMod, SizeOf(hMod), cb);
GetModuleFilenameEx(hProcess, hMod, ModuleName, SizeOf(ModuleName));
Info.Lines.Add(ModuleName);
CloseHandle(hProcess);
end;
end;
end;
|