Avatar billede elgringo Nybegynder
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.
Avatar billede borrisholt Novice
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
Avatar billede elgringo Nybegynder
12. august 2004 - 21:17 #2
Super duper, ja tænkte slet ikke på at bruge PID'et videre. Men selvfølgelig :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester