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