Selamlar canişkolarım,
Yıl olmuş 2017 ve ben hâla gönderi atmamışım buraya..
Yine über gereksiz araştırmalar yaparken GetModuleFileNameEx diye bir zımbırtı buldum. Nasıl kullanılır sorusunu hazreti google emmiden edinirken, yine bir yerlerden kod arakladım ve hemen sizleri de bu günaha ortak ediyorum (kötü_adam_gülüşü)! Çok ufak bir kaç değişiklik yaparak amacımıza uygun hale getirdim tabi ki!!
function GetProcessPathFromPID(classx,title:PChar): String; var pid : DWORD; hwd : HWND; hProcess: THandle; path : array[0..4095] of Char; begin hwd := FindWindow(classx,title); GetWindowThreadProcessId(hwd, pid); hProcess := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, FALSE, pid); if hProcess <> 0 then try if GetModuleFileNameEx(hProcess, 0, @path[0], Length(path)) = 0 then RaiseLastOSError; result := path; finally CloseHandle(hProcess); end else RaiseLastOSError; end;
Kaynak: http://stackoverflow.com/questions/4178443/get-the-full-path-from-a-pid-using-delphi