强制 Inno Setup 使用 PrivilegesRequired=admin 将数据存储在非管理员 HKCU 中

Force Inno Setup to store data in non-admin HKCU with PrivilegesRequired=admin

我有一个 VBA 插件组件,它作为应用程序的一部分安装,只能写入注册表的 HKCU 区域(GetSettingSaveSetting 函数是在 VBA).

中进行沙盒处理

但是,安装程序还需要将文件放在 Windows 系统文件夹中,因此需要管理员权限。

当安装程序在非管理员帐户下运行时,要求用户提供管理员凭据,然后预期的 HKCU 路径不再有效,导致安装失败。

如何在单个 Inno Setup 脚本中写入文件系统的管理保护区并写入 Windows 注册表的非管理区域?

您可以在 [Run] section or ExecAsOriginalUser support function 中使用 runasoriginaluser 标志。

但是您必须开发一个单独的应用程序或 (PowerShell) 脚本来将所需的密钥添加到 HKCU。实际上,您可以使用另一个非常简单的 InnoSetup 安装程序来完成此操作。