我想将注册表项设置为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;
Run Code Online (Sandbox Code Playgroud)
但是编译器在注册表的第一行返回一个错误:
Parameter "Root" is not a valid value.
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?
我认为不可能将函数用作Root参数值获取器。我将通过使用以下Check条件来解决这种情况:
[Registry]
Root: HKCU; Subkey: "Software\MyCompany\MySW\Settings"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}"; Check: IsRegularUser
Root: HKLM; Subkey: "Software\MyCompany\MySW\Settings"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}"; Check: not IsRegularUser
[Code]
function IsRegularUser: Boolean;
begin
Result := not (IsAdminLoggedOn or IsPowerUserLoggedOn);
end;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1447 次 |
| 最近记录: |