NSIS:写入注册表(不是 HKLM)
NSIS: Writing to registry (not HKLM)
请帮助我:我想将一些数据写入注册表。您可能会说 "Wait, wait, this is one of the basic features in NSIS!",但是,我想写入 app 注册表(HKCU,而不是 HKLM)。主要目的是:当安装程序安装我的产品时,它还会安装我的更新管理器。我只是想把产品安装目录写到Updater分支,这样它就可以进一步抓取更新包安装到产品目录下了。
如果您的脚本中有 RequestExecutionLevel admin
,并且您正在安装到 $ProgramFiles
,那么您正在执行 machine/all 用户安装,安装程序不应写入 HKCU。您的应用程序必须在用户 运行 首次使用它时初始化其在 HKCU 和 AppData 中的条目。您不能在安装程序中执行此操作,因为 UAC 可能 运行 安装程序作为 "wrong" 用户。
如果您的脚本中有 RequestExecutionLevel user
,那么您正在执行单用户安装,安装程序应该只写入 HKCU 和 [Local]AppData。
请帮助我:我想将一些数据写入注册表。您可能会说 "Wait, wait, this is one of the basic features in NSIS!",但是,我想写入 app 注册表(HKCU,而不是 HKLM)。主要目的是:当安装程序安装我的产品时,它还会安装我的更新管理器。我只是想把产品安装目录写到Updater分支,这样它就可以进一步抓取更新包安装到产品目录下了。
如果您的脚本中有 RequestExecutionLevel admin
,并且您正在安装到 $ProgramFiles
,那么您正在执行 machine/all 用户安装,安装程序不应写入 HKCU。您的应用程序必须在用户 运行 首次使用它时初始化其在 HKCU 和 AppData 中的条目。您不能在安装程序中执行此操作,因为 UAC 可能 运行 安装程序作为 "wrong" 用户。
如果您的脚本中有 RequestExecutionLevel user
,那么您正在执行单用户安装,安装程序应该只写入 HKCU 和 [Local]AppData。