Einzelnen Beitrag anzeigen

CCRDude
(Gast)

n/a Beiträge
 
#5

Re: Kann auf C:\ schreiben aber nicht auf APPDATA.

  Alt 17. Mai 2007, 16:50
Nimm nicht die Environmentvariable, sondern besorge Dir den Pfad richtig über die API. Catbytes hat dazu ja schon etwas verlinkt.

Ich hatte das woanders schonmal gepostet, hier einfach nochmal ein grober Codeschnipsel:

Delphi-Quellcode:
function SpecialDirectory(const iID: Integer): string;
// Needs: ShlObj on Delphi, WinExt on FPC
var aPath : array[0..MAX_PATH] of Char;
    pilTemp: PItemIDList;
begin
   try
      if SHGetSpecialFolderLocation(0, iID, pilTemp)=S_OK then begin
         if SHGetPathFromIDList(pilTemp, aPath) then begin
            Result := string(aPath);
         end else Result := '';
         CoTaskMemFree(pilTemp);
      end else Result := '';
   except
      Result := '';
   end;
end;

var sPath: string;
begin
   sPath := SpecialDirectory(CSIDL_APPPDATA);
end;
  Mit Zitat antworten Zitat