12. august 2004 - 16:14Der 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.
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;
Super duper, ja tænkte slet ikke på at bruge PID'et videre. Men selvfølgelig :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.