【问题标题】:Modify Environment Variable Path for local machine with nsis使用 nsis 修改本地机器的环境变量路径
【发布时间】:2018-11-09 15:21:50
【问题描述】:

我正在尝试使用 NSIS 脚本编辑本地机器环境变量路径。我发现 this 有趣的帖子,但我无法“安装”,如果我可以说,他们在第一个答案中一直在谈论的 NSIS 的替代版本。

我确实尝试过this 之类的帖子,但没有成功。

但是我已经设法使用安德斯回答的脚本来处理here提出的同一个问题 问题是,它只为当前用户修改路径环境表,我想为本地机器修改它。

我尝试在这里修改变量:

推送 ${HKEY_CURRENT_USER}

到:

推送 ${HKEY_LOCAL_MACHINE}

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

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

最好的问候,安托万。

【问题讨论】:

    标签: environment-variables nsis


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-08
      • 2018-02-03
      • 2017-01-23
      • 1970-01-01
      • 2015-09-29
      • 1970-01-01
      • 2021-03-13
      相关资源
      最近更新 更多