Я хотел бы установить для ключа реестра значение HKLM
, если пользователь является администратором, или HKCU
, если пользователь является обычным пользователем.
Я пробовал это:
[Registry]
Root: "{code:DefRegRoot}"; Subkey: "Software\MyCompany\MySW\Settings"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}"
[Code]
function IsRegularUser(): Boolean;
begin
Result := not (IsAdminLoggedOn or IsPowerUserLoggedOn);
end;
function DefRegRoot(Param: String): String;
begin
if IsRegularUser then
Result := HKCU
else
Result := HKLM;
end;
Но компилятор возвращает ошибку в первой строке реестра:
Parameter "Root" is not a valid value.
Любое предложение по этому поводу?
PrivilegesRequired
фиксируется во время компиляции, нет смысла пытаться заставить один установщик выполнять установку как для каждой машины, так и для каждого пользователя. Выберите один из них и бегите с ним. - person Miral   schedule 15.03.2013PrivilegesRequired
? По умолчанию ваша установка никогда не будет запущена от имени пользователя без прав администратора, и если пользователь без прав администратора попытается запустить ее, ваши настройки будут сохранены для пользователя, до которого они повышают права. - person Deanna   schedule 15.03.2013