概述
试运行这样
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:UsersAndersAppDataRoamingMicrosoftWindowsStart Menu
C:UsersAndersAppDataRoamingMicrosoftWindowsStart MenuPrograms
C:UsersAndersDesktop
---
C:ProgramDataMicrosoftWindowsStart Menu
C:ProgramDataMicrosoftWindowsStart MenuPrograms
C:UsersPublicDesktop
设置环境变量:
!define hklm_all_users
'HKLM "SYSTEMCurrentControlSetControlSession ManagerEnvironment"'
!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 "$InstDirUninst.exe"
CreateDirectory "$SMProgramsMyApp"
CreateShortcut "$SMProgramsMyAppMyApp.lnk"
CreateShortcut "$SMProgramsMyAppMyApp (No extensions).lnk" "-NoExt"
SectionEnd
Section "Uninstaller"
Delete "$SMProgramsMyAppMyApp.lnk"
Delete "$SMProgramsMyAppMyApp (No extensions).lnk"
RMDir "$SMProgramsMyApp"
Delete "$InstDirMyApp.exe"
Delete "$InstDirUninst.exe"
RMDir "$InstDir"
SectionEnd
最后
以上就是平淡板栗为你收集整理的NSIS添加环境变量的全部内容,希望文章能够帮你解决NSIS添加环境变量所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复