gpt4 book ai didi

environment-variables - NSIS - 如何在系统变量中设置环境变量

转载 作者:行者123 更新时间:2023-12-04 13:52:37 29 4
gpt4 key购买 nike

我想在我的应用程序的系统变量路径中设置环境变量。如何使用 nsis 进行设置?

例如:C:\Program Files\Sample\bin,我想在系统变量中设置这个路径。

最佳答案

有几种方法可以做到这一点。我假设您想永久设置它,而不仅仅是为安装程序设置

您可以使用 ns::Exec 或 ExecWait 来运行 setx ,如其他答案所述。缺点是 setx 仅随 Windows Vista 或更高版本提供。 Windows XP 用户不会设置他们的路径。 SET命令仅针对进程,不会永久设置路径。

您可以使用 ReadEnvString 读取当前路径,按照您的需要格式化它,然后使用 WriteRegExpandStr 输出它。参见 http://nsis.sourceforge.net/Setting_Environment_Variables .这样做的缺点是您必须自己完成路径的所有格式设置,并且必须复制已经在 EnvVarUpdate 函数中为您完成的工作 - 如下所述...

我使用的方法是 EnvVarUpdate 函数。您可以在此处找到此功能的代码; http://nsis.sourceforge.net/Environmental_Variables:_append,_prepend,_and_remove_entries

将此函数与您的示例路径一起使用;

${EnvVarUpdate} $0 "PATH" "A" "HKLM" "C:\Program Files\Sample\bin" ; appends to the system path

${EnvVarUpdate} $0 "PATH" "A" "HKCU" "C:\Program Files\Sample\bin" ; appends to the user path

这允许您选择追加或前置,并且允许您删除您在卸载程序中添加的内容。

请注意,带有默认编译二进制文件的 NSIS 的最大字符串长度为 1024 个字符。如果路径比那个长,如果不应用上面链接中列出的补丁,则可能会损坏它。首选解决方案是下载字符串长度设置为 8192 个字符的 makensis 二进制文件,或者自己编译源代码并设置更长的字符串长度。您可以在此处找到更多信息; http://nsis.sourceforge.net/Special_Builds

关于environment-variables - NSIS - 如何在系统变量中设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11272066/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com