牛牛安装包界面控件使用说明.docx
- 文档编号:16034719
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:16
- 大小:631.84KB
牛牛安装包界面控件使用说明.docx
《牛牛安装包界面控件使用说明.docx》由会员分享,可在线阅读,更多相关《牛牛安装包界面控件使用说明.docx(16页珍藏版)》请在冰点文库上搜索。
牛牛安装包界面控件使用说明
牛牛安装包界面控件使用说明
本说明文档旨在对nsNiuniuSkin.dll控件的使用进行说明,指导调用者顺利的将牛捉安装包界面控件控件集成进安装包中,使第三方产品也能拥有完美的安装包的UI体验功能。
官方网址:
牛牛安装包界面控件是一个可集成于NSIS的插件,采用Duilib开发,在使用时,安装包制作者只需要做如下两件事情:
1.通过配置Duilib的资源,设计好界面显示的元素
2.在NSIS的脚本中,通过NSIS脚本调用nsNiuniuSkin.dll的相关接口,集成UI及安装包的业务功能
在控件的资源中,采用的是通过TAB控件来实现不同阶段的安装界面,比如:
选择路径、许可协议、安装进度、完成、卸载等,在实际使用中,通过NSIS脚本来设置当前需要显示的TAB页,即可完美的呈现出需要的界面UI了。
在我们的示例中,提供了两份安装的界面如下:
注意,最新版本的控件已经将可用的NSIS及7z的相关文件包含在示例包中,可以通过一键打包批处理脚本进行打包了,具体如下:
1).将要打包的文件复制到FilesToInstall目录下,可以包含文件及若干层的目录
2).修改相关项目下的skin目录下的资源文件及xml脚本来配置UI
3).添加相关(或者在我原来的示例上修改,这样更快)的NSIS脚本文件,并与UI相匹配
4).指定好相关的ICO、licence等信息
5).执行build.bat脚本,一键打包,build脚本会做三件事:
将FilesToInstall目录下的文件打包成app.7z;将skin目录下的文件打包成skin.zip;调用nsis编译程序,编译nsi文件,输出安装包。
以上描述的build脚本为全自动执行,可以轻松集成进您现有的软件发布流程中,实现自动化打包发布。
牛牛安装包界面控件包含的接口较多,以下逐一进行介绍[以下接口调用及参数说明按在NSIS脚本中的调用示例来说明]:
1.接口初始化接口
InitSkinPage
此接口函数用于初始化nsNiuniuSkin.dll控件的配置信息.
调用示例:
nsNiuniuSkin:
:
InitSkinPage"$PLUGINSDIR\""${INSTALL_LICENCE_FILENAME}"
参数说明:
参数序号
参数类型
参数说明
备注
1
字符串
用于指定NSIS安装包的插件释放路径
此路径的指定非常重要,在脚本中指定的插件以及UI资源包将会释放至此目录下,只有正确指定后,界面控件才能调用资源显示窗口
2
字符串
许可协议的文件名
这是一个txt文档,在界面控件加载时,将会加载此文件来显示许可协议
2.重新设置许可协议的文件名
nsNiuniuSkin:
:
ResetLicenseFile$hInstallDlg"newlicensename.rtf"
设置后,许可协议显示控件将会重新加载许可协议文件,这个比较适合用于多语言版本的不同许可协议加载显示。
3.设置安装包标题
SetWindowTile
此接口函数用于指定安装包的标题。
调用示例:
nsNiuniuSkin:
:
SetWindowTile$hInstallDlg"${PRODUCT_NAME}安装程序"
参数说明:
参数序号
参数类型
参数说明
备注
1
整型
用于指定要设置标题的窗口句柄
调用init时返回(可传递子窗口弹窗口的句柄)
2
字符串
用于指定安装包的标题
4.设置当前显示的TAB页
nsNiuniuSkin:
:
ShowPageItem$hInstallDlg"wizardTab"${INSTALL_PAGE_CONFIG}
参数序号
参数类型
参数说明
备注
1
整型
用于指定要设置标题的窗口句柄
调用init时返回(可传递子窗口弹窗口的句柄)
2
字符串
指定的TAB控件的name
3
int
需要显示的tab页序号
以0为初始值
5.路径选择相关接口
4.1通知接口来浏览安装路径
nsNiuniuSkin:
:
SelectInstallDir
Pop$0
通知界面控件来浏览安装路径,并且将路径获取到变量中。
再调用此接口后,应该再调用SetControlAttribute接口来将安装的路径设置到控件界面上。
4.2通知接口来浏览安装路径扩展接口
nsNiuniuSkin:
:
SelectInstallDirEx$hInstallDlg"请选择安装路径"
Pop$0
此接口是SelectInstallDir的扩展接口,在SelectInstallDir的基础上,支持设置文件选择框的标题。
6.显示界面控件
nsNiuniuSkin:
:
ShowPage0
当界面绑定事件完成后,通过此接口来调用显示控件,此接口将会阻塞运行。
参数序号
参数类型
参数说明
备注
1
整型
用于指定显示前要回调的NSIS函数
如果为0,则表示不回调
7.弹出提示框接口
1)以下代码用于初始化子窗口弹窗,同时返回其句柄:
nsNiuniuSkin:
:
InitSkinSubPage"msgBox.xml""btnOK""btnCancel,btnClose"
pop$hInstallSubDlg
参数序号
参数类型
参数说明
备注
1
字符串
指定弹窗要用到的UI配置xml文件
2
字符串
指定点击后弹窗退出时返回IDOK的按钮ID号
如果使用BindCallBack绑定了此按钮回调的NSIS函数,则此设置失效
3
字符串
指定点击后弹窗退出时返回IDCANCEL的按钮ID号
如果使用BindCallBack绑定了此按钮回调的NSIS函数,则此设置失效
2)以下代码用于根据弹窗窗口的句柄设置其UI控件的属性,控制显示变化:
nsNiuniuSkin:
:
SetControlAttribute$hInstallSubDlg"lblTitle""text""提示"
3)以下代码将弹窗显示出来:
nsNiuniuSkin:
:
ShowSkinSubPage0
参数说明:
参数序号
参数类型
参数说明
备注
1
整型
指定显示弹窗前要回调的NSIS函数地址
如果为0表示不回调;
8.指定界面上指定控件的属性
nsNiuniuSkin:
:
SetControlAttribute$hInstallDlg"btnClose""enabled""false"
nsNiuniuSkin:
:
SetControlAttribute$hInstallDlg"lblInstalling""text""正在卸载..."
此接口用于指定界面的指定元素的指定属性,比如:
是否可用、是否可见、是否选中、文字、背景图等等
参数说明:
参数序号
参数类型
参数说明
备注
1
整型
用于指定要设置标题的窗口句柄
调用init时返回(可传递子窗口弹窗口的句柄)
2
字符串
控件的name
3
字符串
控件的属性名
4
字符串
控件的属性值
注:
可以通过此接口设置所有的通用属性;一般可以利用此接口来设置指定控件的文本、是否可用、是否可见、位置、大小、背景图、文本颜色等;比如可以用于设置复选框是否选中等等。
通用的属性列表项可以参照下图:
设置示例如下:
9.获取控件的通用属性
nsNiuniuSkin:
:
GetControlAttribute$hInstallDlg"editDir""text"
Pop$2
此接口用于获取界面的指定元素的指定属性,比如:
是否可用、是否可见,文本等等
参数说明:
参数序号
参数类型
参数说明
备注
1
整型
用于指定要设置标题的窗口句柄
调用init时返回(可传递子窗口弹窗口的句柄)
2
字符串
控件的name
3
字符串
控件的属性名
注:
通用的属性列表项可以参照下图:
10.绑定UI上控件的相关事件
GetFunctionAddress$0OnExitDUISetup
nsNiuniuSkin:
:
BindCallBack$hInstallDlg"btnClose"$0
此接口用于绑定一个按钮点击的回调函数或一个RichEdit控件的文字变化时的回调函数。
参数说明:
参数序号
参数类型
参数说明
备注
1
整型
用于指定要设置标题的窗口句柄
调用init时返回(可传递子窗口弹窗口的句柄)
2
字符串
UI界面中按钮或richedit控件的name
3
LONG
要绑定的NSIS函数的地址
当指定名称的按钮被点击或者指定的richedit的内容变化时,绑定的函数将会被触发
注:
1).当绑定的控件是一个RichEdit控件时,其中的文本内容变化时就会触发绑定的函数;可以通过绑定路径的控件,同时在绑定的函数中获取路径,做否合法的判断。
2).为了能够将通过Ctrl+F4关闭窗口,以及通过在任务栏关闭窗口的事件通知到NSIS中,此处需要绑定一个特殊的名称,这个特殊的名称是:
syscommandclose,如下:
11.结束安装
nsNiuniuSkin:
:
ExitDUISetup
此接口被调用时,将会退出安装进程
12.字符串处理辅助接口
nsNiuniuSkin:
:
StringHelper"c:
\test\test\""\""""trimright";如果源字符串的最后一个字符是\,则将其去掉
pop$0
nsNiuniuSkin:
:
StringHelper"c:
\AAA\dst""AAA""bbb""replace";将源码中的AAA替换成bbb
pop$0
nsNiuniuSkin:
:
StringHelper"c:
\AAA\dst""\""""getrightbychar";将源码中的以\分隔的最后一段返回,此例中返回dst
pop$0
这是一个为了简化在NSIS脚本中的字符串处理而提供的辅助函数,有需要者可以使用。
参数序号
参数类型
参数说明
备注
1
字符串
等待处理的字符串
2
字符串
指定在源码处理时,需要用来进行辅助查询的参数值
3
字符串
要被替换成的目标字符串
仅当指令为replace时有效
4
字符串
用于指定要对字符串处理的操作类型
replace:
在源串中将第二个参数的值替换成第三个参数的值,再返回
trimright:
将源串中的最后一个字符去掉(如果等于第二个参数)
getrightbychar:
从源串中,取根据第二个参数分割的最后一段值
13.其他信息
具体的NSIS脚本及DUILIB的配置文件可以参看DEMO,有如下几个注意事项:
1).DUILIB资源必需打包成zip压缩包,且名称必需是skin.zip
2).在NSIS脚本中,安装与卸载界面中按如下方式指定:
此处将插件释放目录指定为duilib资源包及许可协议文件的释放路径。
3).在实际的安装过程中,为了让进度信息尽可能准确,采用的是7z解压的方式
这就要求在制作安装包之前,需要将要安装的文件打包成一个7z的压缩包,再在NSIS中指定安装:
在NSIS中,有相关的7z插件来解压,这里需要在线程中调用,以免界面卡住:
4).目前提供的示例仅包含了常见的与UI界面相关的NSIS脚本;需要进一步的处理特定的注册表写入、文件备份等操作,需要自行另外再写NSIS脚本。
5).界面的安装过程中的图片支持轮播,并且可以设置间隔时间,在XML中的写法如下:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 安装 界面 控件 使用说明