Oder einfach den Schnipse hier anhängen.
Kein Problem. Die beiden Dirs-Einträge sorgen für die Schreibrechte, während der Code für die synchrone Namensgebung der Verzeichnisse zuständig ist. Die Vorgabe des Zielverzeichnisses ist bei meinen Setups nicht änderbar, deswegen funktioniert hier das ersetzen von {pf} in {commondocs} bzw. {commonappdata} auch problemlos. Bei wahlfreien Zielverzeichnissen kann man den Code aber auch entsprechend anpassen und die jeweiligen Subpfade direkt hinschreiben oder aus anderen Quellen zusammensetzen.
Delphi-Quellcode:
[Dirs]
Name: {code:AppDataFolder}\; Permissions: users-modify
Name: {code:DataFolder}\; Permissions: users-modify
und
Delphi-Quellcode:
[Code]
function DataFolder(Param: String): String;
begin
result := WizardDirValue;
StringChangeEx(result, ExpandConstant('{pf}'), ExpandConstant('{commondocs}'), true);
end;
function AppDataFolder(Param: String): String;
begin
result := WizardDirValue;
StringChangeEx(result, ExpandConstant('{pf}'), ExpandConstant('{commonappdata}'), true);
end;