牛牛安装包界面控件使用说明.docx

上传人:b****8 文档编号:28281546 上传时间:2023-07-10 格式:DOCX 页数:16 大小:631.84KB
下载 相关 举报
牛牛安装包界面控件使用说明.docx_第1页
第1页 / 共16页
牛牛安装包界面控件使用说明.docx_第2页
第2页 / 共16页
牛牛安装包界面控件使用说明.docx_第3页
第3页 / 共16页
牛牛安装包界面控件使用说明.docx_第4页
第4页 / 共16页
牛牛安装包界面控件使用说明.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

牛牛安装包界面控件使用说明.docx

《牛牛安装包界面控件使用说明.docx》由会员分享,可在线阅读,更多相关《牛牛安装包界面控件使用说明.docx(16页珍藏版)》请在冰豆网上搜索。

牛牛安装包界面控件使用说明.docx

牛牛安装包界面控件使用说明

牛牛安装包界面控件使用说明

本说明文档旨在对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中的写法如下:

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1