12. august 2004 - 16:14
Der er
1 kommentar og
1 løsning
Process-lokation
Hej,
Jeg bruger CreateToolhelp32Snapshot til at hente aktive processer, men modtager som sagt kun filnavnet på de enkelte.
Nogle der ved om det er muligt at få lokationen på den fil.
Er temmelig afgørende om f.eks a.exe er kaldt fra d:\ eller e:\ i dette tilfælde.
En evt løsning kunne måske være at finde ud af det, hvis jeg kunne få en liste over låste filer i windows.
12. august 2004 - 16:29
#1
Prøv den her :
function ProcessFileName(const PID: DWORD; const FullPath : Boolean): string;
var
Handle: THandle;
begin
Result := '';
Handle := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, False, PID);
if Handle <> 0 then
try
SetLength(Result, MAX_PATH);
if FullPath then
begin
if GetModuleFileNameEx(Handle, 0, PChar(Result), MAX_PATH) > 0 then
SetLength(Result, StrLen(PChar(Result)))
else
Result := '';
end
else
begin
if GetModuleBaseName(Handle, 0, PChar(Result), MAX_PATH) > 0 then
SetLength(Result, StrLen(PChar(Result)))
else
Result := '';
end;
finally
CloseHandle(Handle);
end;
end;
sådan lidt frit fra leveren ...
Jens B