NSIS教程(8): 基于第三方界面库的安装包界面

推荐:NSIS-UI-Plugin 开源NSIS UI插件框架,支持任意第三方界面库,默认提供使用Qt作为界面库的安装包示例。

前面的几篇文章介绍了NSIS的传统界面的安装包和现代界面的安装包的制作方法,也提到了NSIS支持自定义页面(即使用page custom)的特性,自定义页面需要用户自己创建对话框、控件、添加控件响应等等,虽然NSIS提供了nsDialogs.nsh来支持这些功能,但使用起来还是不太方便(需要专门了解这个插件诸多用法),而且不够灵活,所以本文介绍一种终极的自定义界面的安装包解决方案,即完全使用第三方界面库来绘制安装包界面。

该方案是对界面库没有限制的,可以使用其他任何界面库,如MFC, Qt,WTL等。通过这种方案可以很轻松的实现类似金山毒霸、QQ、360安全卫士等软件的安装包界面。

一、原理

NSIS教程(1): 基础语法中已经介绍了自定义页面的语法:

page custom [创建函数] [离开函数] [标题]

使用第三方界面库完全定制安装包界面的基本原理就是:新建一个dll插件,在page custom[创建函数]中调用该插件中的函数来显示界面,这时界面上面的按钮的响应就不再由NSIS控制了,完全由我们的代码控制。

二、难点问题

使用我们的插件dll完全替代NSIS界面之后,有几个问题需要解决:

  1. 安装\卸载进度
  2. C++回调NSIS函数

2.1 安装\卸载进

你可能感兴趣的:(打包狂魔之NSIS教程)