Я пытаюсь добавить в установку папку, которая в конечном итоге будет содержать выходные данные пользователя.Я не могу поместить папку в Program Files, потому что пользователи не будут иметь необходимых разрешений для записи в нее.
Если она не устанавливается в Program Files
, тогда папка данных может быть создана внутри приложения.папка (это работает нормально).
У меня есть небольшой кусочек кода, чтобы определить, была ли произведена установка в Program Files, и, если это так, я хотел использовать CreateDir()
, чтобы создать папку данных в C:\Users\Public\Documents\{'MyAppName}\DB
Это похоже на ошибку, в [Code]
даже при том, что стандартный скрипт Inno Setup работает:
[Dirs]
Name: "{commondocs}\{#MyAppName}\DB"
Я использую процедуру DeinitialiseSetup()
, чтобы сделать это в конце установки, как только путьявляется определенным.
Это мой код:
[Code]
procedure DeinitializeSetup();
begin
{ If it has been installed in the Program Files Folder put DB in Public Documents }
if Pos(ExpandConstant('{pf}'),ExpandConstant('{app}')) > 0 then
begin
if not CreateDir (ExpandConstant('{commondocs}\{#MyAppName}\DB')) then
MsgBox('Error: Data folder could not be created.', mbInformation, MB_OK);
end
else
begin
if not CreateDir (ExpandConstant('{app}\DB')) then
MsgBox('Error: Data folder could not be created.', mbCriticalError, MB_OK);
end;
end;
Следуя другому предложению SO, я использовал:
PrivilegesRequired=lowest
в скрипте, но он не работал с или безэтот.Я начинаю думать, что это может быть проблема с разрешениями, но я не уверен, почему, поскольку стандартный скрипт установщика [Dirs]
работает нормально.
Это не то же самое, что и другие вопросы относительно определения пути - у меня естьполучил все пути, которые я хочу, только: [Code] CreateDir()
не может создать папку в {commondocs}
.
Большое спасибо за любые предложения.