Einzelnen Beitrag anzeigen

Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Parsen von EnvironmentPath

  Alt 14. Aug 2018, 08:55
Ich nutze überhaupt nicht die Environment-Variablen, sondern die API-Funktion SHGetSpecialFolderLocation.
Meine Funktion sieht so aus (irgendwo mal aus dem Internet gefischt und angepasst):
Delphi-Quellcode:
function GetSpecialPath(aCSIDL : Integer) : String;
var
  shellMalloc: IMalloc;
  ppidl: PItemIdList;
begin
  ppidl := nil;
  try
    if SHGetMalloc(shellMalloc) = NOERROR then
    begin
      SHGetSpecialFolderLocation(Application.Handle, aCSIDL, ppidl);
      SetLength(Result, MAX_PATH);
      if not SHGetPathFromIDList(ppidl, PChar(Result)) then
      begin
        Result := '';
      end
      else
      begin
        SetLength(Result, lStrLen(PChar(Result)));
      end;
    end;
  finally
    if ppidl <> nil then
    begin
      shellMalloc.free(ppidl);
    end;
  end;
end;
Eine Liste der CSIDL-Werte ist hier zu finden:
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
In deinem Fall müsste es wohl CSIDL_PROFILE sein.
Peter
  Mit Zitat antworten Zitat