我正在尝试使用NSIS脚本编辑本地计算机环境变量路径。我发现有this个有趣的帖子,但是我无法“安装”(如果可以说)他们在第一个答案中一直在谈论的NSIS的替代版本。
我确实尝试过类似this的发布,但没有成功。
但是我已经设法在来自here的同一问题上使用了安德斯答案中的脚本 事实是,它只为当前用户修改路径环境表,而我想为本地计算机修改它。
我尝试在此处修改变量:
按下$ {HKEY_CURRENT_USER}
至:
按下$ {HKEY_LOCAL_MACHINE}
但这似乎还不够,因为我不断遇到错误87。
所以我的问题是:是否可以从Anders的脚本中修改本地计算机的环境变量?如果可以,怎么办?
最诚挚的问候,安托万。
答案 0 :(得分:1)
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 https://stackoverflow.com/a/31342128/3501# 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 $0
DetailPrint RegAppendString:Error=$0
SectionEnd
但是自该函数发布以来,事情一直在进行,现在有一个专门为环境变量操作创建的插件。我建议您尝试使用EnVar plug-in。