Когда я запускаю скрипт установки от имени пользователя-администратора, он помещает пункты меню «Пуск» в профиль «Все пользователи».Я хочу, чтобы пункты меню «Пуск» были помещены в профиль текущего пользователя, если они являются администратором, и решили установить «Только для меня».
Я могу сделать это, выбрав одно из двух значений для #define, но я не могу понять, как создать постоянную, которая условно включена.У меня уже есть подпрограмма раздела [Code], которая возвращает true, если была выбрана установка «Только для меня».Вот сценарий:
#define StartMenuLocation = "{somegroup}" ; check JustForMeInstall
#define StartMenuLocation = "{anothergroup}" ; check AllUsersInstall
...
[Icons]
Name: "{#StartMenuLocation}\{#MyAppName}" ; Filename: "{app}\{#ExeName}" ; parameters: "{#CommandArgs}" ; comment: "Starts {#MyAppName} {#MyAppVersion}"
...
[Code]
function JustMeInstall : boolean ;
begin
Result := (InstallationType = itJustMe) ;
end ;
function AllUsersInstall: boolean ;
begin
Result := (InstallationType = itAllUsers) ;
end ;
, где параметры "проверки" для #defines не поддерживаются и, конечно, игнорируются.
Итак, на самом деле два вопроса:
какие константы я использую для определения местоположения папки меню «Пуск».- InnoSetup предоставляет {group}
, но эта папка создается в профиле «Все пользователи», если только пользователь, устанавливающий приложение, не имеет прав администратора, в этом случае он создается в профиле пользователя.Мне нужна константа для текущей папки меню «Пуск», которая работает, когда этот пользователь вошел в систему как пользователь с правами администратора.
как реализовать условные # определения, как показано выше (из общихинтерес за пределами этой проблемы в любом случае).