NSIS安装程序配置全用户开机自启及安装后启动程序
解决NSIS安装脚本的开机自启与安装后启动需求
以下是修改后的完整NSIS脚本,已实现你要的两个功能:
Outfile "NN-Quicksupport-Installer-Server.exe" RequestExecutionLevel admin ; 管理员权限,确保写入系统级注册表 InstallDir $PROGRAMFILES\NN-Quicksupport Page Components Page Directory Page InstFiles Section "Installiere NN-Quicksupport" SecInstall SetOutPath $INSTDIR File "index.exe" SetOutPath $INSTDIR\img ; Ändere den Ordner-Namen hier File /r "img\*.*" ; 写入所有用户的开机自启注册表项 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Run" "NN-Quicksupport" '"$INSTDIR\index.exe"' SectionEnd ; 安装成功后自动启动程序 Function.onInstSuccess Exec '"$INSTDIR\index.exe"' FunctionEnd
关键改动说明
- 管理员权限声明:添加
RequestExecutionLevel admin是必须的——要写入系统级的HKLM注册表(对应所有用户的开机自启),安装程序必须以管理员身份运行,否则注册表写入会失败。 - 开机自启实现:通过
WriteRegStr将程序路径写入HKLM\Software\Microsoft\Windows\CurrentVersion\Run,这个注册表项会让Windows在所有用户登录时自动启动指定程序。路径加双引号是为了避免安装目录带空格时出现启动错误。 - 安装后启动程序:使用
Function.onInstSuccess函数,它会在安装流程成功完成后自动执行,通过Exec命令启动你的程序,同样给路径加双引号处理空格问题。
额外提示(可选)
如果后续需要做卸载功能,记得在卸载脚本中添加删除开机自启项的命令:
DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Run" "NN-Quicksupport"
内容的提问来源于stack exchange,提问作者xxJLxx
相关产品推荐
相关产品推荐

