NSIS添加系统环境变量的方法

Posted 欣麒骥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NSIS添加系统环境变量的方法相关的知识,希望对你有一定的参考价值。

A:使用SendMessage ,例子如下:
;修改环境变量

WriteRegExpandStr HKLM "SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment" "abcd" "ggg"

;刷新环境变量

SendMessage $HWND_BROADCAST $WM_WININICHANGE 0 "STR:Environment"

如何将路径添加到系统环境变量中
NSIS, 系统环境变量
问:比如,我把 a.exe 用nsis包装好,安装到 c:\\helloLib\\a.exe,完成后,想把c:\\helloLib\\添加到系统环境变量的path里
头,这样,在任何地方输入a.exe可执行。如何将路径添加到系统环境变量中?
答:以下代码实现:

程序代码

  1. ReadRegStr $0 HKLM “SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment” “Path”

  2. WriteRegExpandStr HKLM “SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment” “Path” “$0;C:\\hellolib”

复制代码

另类方法一:写注册表,如
程序代码

  1. [HKEY_CLASSES_ROOT\\Applications\\a.exe\\shell\\open\\command]
  2. @=”yourpath\\a.exe”

另类方法二:

程序代码
1.[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\a.exe]
2. @=”c:\\helloLib\\a.exe”

【NSIS使用经验】修改和删除环境变量
;设置oracle的环境变量到PATH路径

ReadRegStr $0 HKLM "SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment" "Path"

WriteRegExpandStr HKLM "SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment" "Path" "$0;$INSTDIR\\Oracle\\bin\\"
;刷新环境变量
SendMessage $HWND_BROADCAST $WM_WININICHANGE 0 "STR:Environment"

;利用WordReplace函数从PATH中删除设置oracle的环境变量
;需要在文件头引入相应的头文件:!include “WordFunc.nsh”

ReadRegStr $R0 HKLM "SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment" "Path"
$WordReplace $R0 ";$INSTDIR\\Oracle\\bin\\" "" "+" $R1
;MessageBox MB_OK|MB_USERICON '$R0 - $INSTDIR - $R1 '
WriteRegExpandStr HKLM "SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment" "Path" "$R1"

以上是关于NSIS添加系统环境变量的方法的主要内容,如果未能解决你的问题,请参考以下文章

NSIS添加系统环境变量的方法

NSIS脚本

如何添加环境变量或路径添加到系统的Path里面

添加环境变量的方法

Linux添加系统环境变量

windows xp系统下提示Nsis Error错误的解决方法