NSIS 基于QT的自定义安装界面

前段时间在做安装程序时,需要自定义安装界面代替传统的打包工具制作的安装界面。毕竟打包工具制作的界面定制麻烦也比较丑。我们可以使用第三方界面库写安装程序,再在NSIS脚本中调用即可。

采用NSIS + QT 制作安装程序实际上就是使用QT制作安装程序,而NSIS仅仅将制作的安装程序打包成一个exe。

1.核心NSIS脚本
;这次是打包生成exe的路径
OutFile ${TheOutFile}
;使用静默安装不出现任何NSIS自带的界面
SilentInstall silent

Function .onInit #NSIS程序安装准备工作
InitPluginsDir #创建临时目录(内存)用于保存一些必要的库
SetOutPath $PLUGINSDIR #将文件保存在临时目录中
  ;打包的exe需要的文件
  ;File "Qt5Gui.dll"
  ;File "Qt5Core.dll"
  File /r "${PACK_DIR}"
FunctionEnd

Function .onInstSuccess #安装成功后调用
call fun
Functionend


Function fun
   #当静默安装成功之后,会调用我们自己写的安装界面程序
   #这样就实现了我们自定义安装界面程序
   ExecWait $PLUGINSDIR\NimoStreamerInstall.exe #调用QT安装程序,等待其运行完后运行下一条语句
   RMDir $PLUGINSDIR                #释放临时目录(内存)
FunctionEnd

Section
SectionEnd
2.NSIS简单使用
2.1 NSIS脚本编译以及编写

NISEdit 是NSIS脚本的可视化编辑器,[NSIS打包程序]https://blog.csdn.net/lfwh1517/article/details/78613453)

2.2 传递参数

使用NSIS脚本时,定义的变量可以通过命令行参数传递进去,传递形式“-D变量名=值”
例如传递上面脚本中的自定义变量名称:

makensis.exe /DPACK_DIR="E:\\Package\\Release_x86\\" -DTheOutFile="E:\\NimoStreamer.exe" NimoPC.nsi
2.3 NSIS添加公司信息、版本信息
;!define PATHTOFILE "C:\\thisis\\file"
!insertmacro MUI_LANGUAGE "SIMPCHINESE"

VIProductVersion "1.0.0.0" 	;must be X.X.X.X
VIAddVersionKey /LANG=${LANG_SIMPCHINESE} FileDescription "NimoStreamer"  
VIAddVersionKey /LANG=${LANG_SIMPCHINESE} FileVersion "1.0.0"
VIAddVersionKey /LANG=${LANG_SIMPCHINESE} ProductName "NimoStreamer" 
VIAddVersionKey /LANG=${LANG_SIMPCHINESE} ProductVersion "${ExecName}"
VIAddVersionKey /LANG=${LANG_SIMPCHINESE} LegalCopyright "Copyright (C) 2018"
VIAddVersionKey /LANG=${LANG_SIMPCHINESE} CompanyName "Huya"

3.NSIS + QT制作的安装界面

NSIS 基于QT的自定义安装界面_第1张图片NSIS 基于QT的自定义安装界面_第2张图片

4.参考链接

[NSIS + QT 做安装卸载程序]https://blog.csdn.net/mqdChalali/article/details/52596770

你可能感兴趣的:(qt)