|
Вопрос # 2 611/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
Как зная PID или имя исполняемого файла узнать путь к приложению?
Спасибо.
 |
Вопрос задал: Евгений-477 (статус: Посетитель)
Вопрос отправлен: 8 апреля 2009, 00:35
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Пупкин В В
Здравствуйте, Евгений-477!
найти по pid
в
uses tlhelp32, Psapi;
с помощью функции
function GetModulePath(PID: DWord): string;
var
cb: DWORD;
I: Integer;
ProcCount: Integer;
hMod: HMODULE;
hProcess: THandle;
PIDArray: array [0..1023] of DWORD;
ModuleName: array [0..300] of Char;
begin
FillChar(ModuleName, SizeOf(ModuleName), #0);
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));
if PID = PIDArray[i] then
Result:= ModuleName;
CloseHandle(hProcess);
end;
end;
end;
возможны проблемы с вистой! в xp все OK.
 |
Ответ отправил: Пупкин В В (статус: 2-ой класс)
Время отправки: 8 апреля 2009, 14:24
Оценка за ответ: 5
|
Мини-форум вопроса
Всего сообщений: 1; последнее сообщение — 8 апреля 2009, 22:09; участников в обсуждении: 1.
|
Евгений-477 (статус: Посетитель), 8 апреля 2009, 22:09 [#1]:
Для некоторых приложений выдает типа C:\PROGRA~1\MI3AA1~1\rapimgr.exe. А как сделать, чтобы путь был без сокращений?
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|