使用 nsis 修改本地机器的环境变量路径

Modify Environment Variable Path for local machine with nsis

我正在尝试使用 NSIS 脚本编辑本地计算机环境变量路径。我发现 有趣 post 但我无法 "install",如果我可以说,他们在第一个答案中一直在谈论的 NSIS 的替代版本。

我确实尝试过 this post 但没有成功。

但是我已经成功地使用了安德斯对所问相同问题的回答中的脚本 问题是,它只为当前用户修改路径环境table,我想为本地机器修改它.

我试过修改这里的变量:

Push ${HKEY_CURRENT_USER}

至:

Push ${HKEY_LOCAL_MACHINE}

但似乎还不够,因为我一直收到错误 87。

所以我的问题是:是否可以从 Anders 的脚本中修改本地机器的环境变量?如果是,怎么做?

此致安托万。

HKLM 使用的密钥也不同,但是一旦你给它正确的密钥,它就对我有用:

!include LogicLib.nsh
!include WinCore.nsh
!ifndef NSIS_CHAR_SIZE
!define NSIS_CHAR_SIZE 1
!endif
!ifndef HKEY_LOCAL_MACHINE
!error HKEY_LOCAL_MACHINE
!endif

Function RegAppendString
TODO: Function from  goes here
FunctionEnd

RequestExecutionLevel Admin ; Request UAC elevation

Section

Push ${HKEY_LOCAL_MACHINE}
Push "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
Push "Path"
Push ";"
Push "c:\whatever"
Call RegAppendString
Pop [=10=]
DetailPrint RegAppendString:Error=[=10=]

SectionEnd 

但是自发布该功能以来,事情已经发生了变化,现在有一个专门为环境变量操作创建的插件。我建议您尝试 EnVar plug-in.