将 HKLM/HKCU 分配给不同类型安装的变量

Assign HKLM/HKCU to a variable for different types of installs

我正在编写一个脚本来关联文件关联,我想知道是否可以根据它是管理员安装还是用户安装将变量分配给 HKLM 或 HKCU。当用户为用户安装而不是管理员安装附加 -user 时,我正在处理的项目在 运行 时间确定了这一点。我在想类似的东西:

Var location
${If} $InstallMode == "Admin"
    $location = HKLM ;probably not the right way to assign
${Else}
    $location = HKCU
${EndIf}

我是 NSIS 的新手,根据我目前阅读和尝试的内容,我可以 !define 一个变量 HKLMHKCU 通过写 [=16] =] 但定义在 运行 时间内不起作用。

SHCTX 就是为了这个目的而存在的。它由 SetShellVarContext 控制。默认为用户 (HKCU),设置为 All for HKLM.