使用 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.
我正在尝试使用 NSIS 脚本编辑本地计算机环境变量路径。我发现
我确实尝试过 this post 但没有成功。
但是我已经成功地使用了安德斯对所问相同问题的回答中的脚本
我试过修改这里的变量:
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.