NSIS添加环境变量

 

试运行这样

Section 
SetShellVarContext current ; Used for demonstration purposes, it is the default context 
DetailPrint $StartMenu 
DetailPrint $SMPrograms 
DetailPrint $Desktop 
DetailPrint --- 
SetShellVarContext all 
DetailPrint $StartMenu 
DetailPrint $SMPrograms 
DetailPrint $Desktop 
SectionEnd 

,你应该得到这样的事情

C:\Users\Anders\AppData\Roaming\Microsoft\Windows\Start Menu 
C:\Users\Anders\AppData\Roaming\Microsoft\Windows\Start Menu\Programs 
C:\Users\Anders\Desktop 
--- 
C:\ProgramData\Microsoft\Windows\Start Menu 
C:\ProgramData\Microsoft\Windows\Start Menu\Programs 
C:\Users\Public\Desktop 

 

 

设置环境变量:
!define hklm_all_users     'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"'
!define hkcu_current_user  'HKCU "Environment"'

${If} $3 == HKLM
ReadRegStr $5 ${hklm_all_users} "Path" ; Get EnvVarName from all users into $5
${ElseIf} $3 == HKCU
ReadRegStr $5 ${hkcu_current_user} "PATH" ; Read EnvVarName from current user into $5
${EndIf}

${If} $3  == HKLM
     WriteRegExpandStr ${hklm_all_users} "Path" $0     ; Write it in all users section
${ElseIf} $3 == HKCU
     WriteRegExpandStr ${hkcu_current_user} "PATH" $0  ; Write it to current user section
${EndIf}
; "Export" our change
SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000

RequestExecutionLevel user一个卸载程序将只能够在用户(目前的)情况下删除快捷方式,但该如果你的安装者首先在那里写它们,那么这不是问题。

NSIS不会自动删除快捷方式,你必须手动完成:

Section "Installer" 
SetOutPath $InstDir 
File "MyApp.exe" 
WriteUninstaller "$InstDir\Uninst.exe" 
CreateDirectory "$SMPrograms\MyApp" 
CreateShortcut "$SMPrograms\MyApp\MyApp.lnk" 
CreateShortcut "$SMPrograms\MyApp\MyApp (No extensions).lnk" "-NoExt" 
SectionEnd 

Section "Uninstaller" 
Delete "$SMPrograms\MyApp\MyApp.lnk" 
Delete "$SMPrograms\MyApp\MyApp (No extensions).lnk" 
RMDir "$SMPrograms\MyApp" 
Delete "$InstDir\MyApp.exe" 
Delete "$InstDir\Uninst.exe" 
RMDir "$InstDir" 
SectionEnd 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值