Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.04;
Скачать: CL | DM;

Вниз

Как получить полное имя запущенного файла если известен только PI   Найти похожие ветки 

 
Roughneck   (2005-09-30 07:51) [0]

Нужно получить полное имя файла по известному PID


 
Игорь Шевченко ©   (2005-09-30 11:10) [1]

Начиная с WinXP в psapi появилась функция GetProcessImageFileName.

function GetProcessImageFileName (hProcess: THandle; lpImageFileName: PChar;
 nSize: DWORD): DWORD; stdcall; extrenal "psapi.dll" name "GetProcessImageFileNameA";


 
alpet ©   (2005-09-30 11:16) [2]

1. создай список процессов, например средствами ToolHelp API (unit Tlhelp32)
2. Ищи в нем искомый процесс


 
BiN ©   (2005-09-30 11:18) [3]

The GetModuleFileNameEx function retrieves the fully qualified path for the specified module.

(С) msdn


 
BiN ©   (2005-09-30 11:20) [4]

alpet ©   (30.09.05 11:16) [2]

1. создай список процессов, например средствами ToolHelp API (unit Tlhelp32)
2. Ищи в нем искомый процесс


В NT этого недостаточно для получения полного пути.


 
alpet ©   (2005-09-30 18:08) [5]

BiN ©   (30.09.05 11:20) [4]

У меня получается полный путь, правда не для всех процессов (кроме системных).

uses windows, messages, TlHelp32;

function FindProcess (pid: DWORD): String;
var
   pe: TProcessEntry32;
   me: TModuleEntry32;
  h: THandle;
begin
result := "";
h := CreateToolHelp32Snapshot (TH32CS_SNAPPROCESS, 0);
pe.dwSize := SizeOf (pe);
if Process32First (h, pe) then
  repeat
   if pid = pe.th32ProcessID then
    begin
     me.dwSize := sizeof (me);
     CloseHandle (h);
     h := CreateToolHelp32Snapshot (TH32CS_SNAPMODULE, pid);
     Module32First (h, me);
     result := me.szExePath;
     break;
    end;
  until not Process32Next (h, pe);
CloseHandle (h);
end; // FindProcess

...


 
Roughneck   (2005-10-03 11:25) [6]

Всем спасибо. Этого достаточно.


 
BiN ©   (2005-10-03 11:37) [7]

alpet ©   (30.09.05 18:08) [5]

Хм, точно.
Как-то упустил возможность использования  Module32First для получения сабжа.



Страницы: 1 вся ветка

Текущий архив: 2005.12.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.041 c
14-1131709129
Макс1
2005-11-11 14:38
2005.12.04
ОС Singularity


14-1131980549
Mozart
2005-11-14 18:02
2005.12.04
Фильм "Архангел" (Надеюсь так прокатит)


2-1132082575
Kirill_
2005-11-15 22:22
2005.12.04
Привет! Как мне найти миньшее число из 6 данных?


4-1128372636
JJohn
2005-10-04 00:50
2005.12.04
В куче - список из строк(HeapAlloc & HeapFree)


14-1132061272
vecna
2005-11-15 16:27
2005.12.04
Internal debugger