• NSIS 的 Modern UI 教程


    NSIS 2.0 版本支持定制的用户界面。所谓的 Modern UI(下称 MUI) 就是一种模仿最新的 Windows 界面风格的界面系统。MUI 改变了 NSIS 脚本的编写习惯,它使用 NSIS 的宏来表达,指定 MUI 的属性需要使用宏。所以,诸如 LicenseText, Icon, CheckBitmap, InstallColors 在 MUI 中失去意义。

    MUI 的内置向导页面
    和安装程序有关的向导页面
    MUI_PAGE_WELCOME 该向导页面显示欢迎信息
    MUI_PAGE_LICENSE text/rtf_file 该向导页面显示软件授权申明
    MUI_PAGE_COMPONENTS 该向导页面显示安装组件选择
    MUI_PAGE_DIRECTORY 该向导页面显示安转目录选择
    MUI_PAGE_STARTMENU page_id variable 该向导页面显示开始菜单目录选择
    MUI_PAGE_INSTFILES 该向导页面显示安装进度
    MUI_PAGE_FINISH 该向导页面显示安装结束

    和卸载程序有关的向导页面
    MUI_UNPAGE_WELCOME
    MUI_UNPAGE_CONFIRM
    MUI_UNPAGE_LICENSE text/rtf_file
    MUI_UNPAGE_COMPONENTS
    MUI_UNPAGE_DIRECTORY
    MUI_UNPAGE_INSTFILES
    MUI_UNPAGE_FINISH

    页面的属性设定需要放在插入页面的宏之前。比如:
    Var PLUGINS_FOLDER
    !define MUI_DIRECTORYPAGE_VARIABLE $PLUGINS_FOLDER
    !insertmacro MUI_PAGE_DIRECTORY
    这段 nsi 脚本表示,将目录选择页面中用户选择的目录位置存放到变量 $PLUGINS_FOLDER 中去。

    以下是 MUI 各个内置向导页面属性说明:
    所有页面适用的属性
    MUI_PAGE_HEADER_TEXT text
    显示在向导页头上的文字

    MUI_PAGE_HEADER_SUBTEXT text
    显示在向导页头上的文字,它是通常显示在 MUI_PAGE_HEADER_TEXT 之下,表示对 MUI_PAGE_HEADER_TEXT 的进一步解释。
    对于使用 InstallOptions 的定制界面,使用宏 !insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLE)" "$(TEXT_IO_SUBTITLE)" 实现类似功能。

    欢迎页面属性
    MUI_WELCOMEPAGE_TITLE title
    显示在欢迎向导页上的标题

    MUI_WELCOMEPAGE_TITLE_3LINES
    标题区的空格

    MUI_WELCOMEPAGE_TEXT text
    显示在欢迎向导页上的文字。使用\r\n换行。
    通常这些属性不需要制定,省缺的值已经足够。

    软件授权页面属性
    在软件授权页面中可以定制用户接受软件授权许可的三种方式,一是按钮,二是 checkbox,三是 radio。
    MUI_LICENSEPAGE_TEXT_TOP text
    显示在页面顶部的文字

    MUI_LICENSEPAGE_TEXT_BOTTOM text
    显示在页面底部的文字

    MUI_LICENSEPAGE_BUTTON button_text
    按钮方式时按钮上的文字

    MUI_LICENSEPAGE_CHECKBOX
    定义此宏表示用户需要钩选该 checkbox 来接受软件许可

    MUI_LICENSEPAGE_CHECKBOX_TEXT text
    在 checkbox 旁显示的文字

    MUI_LICENSEPAGE_RADIOBUTTONS
    定义此宏表示用户需要钩选相应的 radio box 来接受或拒绝软件许可

    MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT text
    在 radio 旁显示的表示接受的文字

    MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE text
    在 radio 旁显示的表示拒绝的文字

    安装组件选择页面属性

    MUI_COMPONENTSPAGE_TEXT_TOP text
    显示在页面顶部的文字

    MUI_COMPONENTSPAGE_TEXT_COMPLIST text
    显示在组件列表旁边的文字

    MUI_COMPONENTSPAGE_TEXT_INSTTYPE text
    显示在安转类型下拉框旁边的文字

    MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE text
    显示在描述框顶部的文字

    MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO text
    当没有安装组件选中时,显示在描述框中的文字

    安装目录选择页面属性

    MUI_DIRECTORYPAGE_TEXT_TOP text
    显示在页面顶部的文字

    MUI_DIRECTORYPAGE_TEXT_DESTINATION text
    显示在目地目录选择框上的文字

    MUI_DIRECTORYPAGE_VARIABLE variable
    存放用户选择的目录的变量,默认是 $INSTDIR

    MUI_DIRECTORYPAGE_VERIFYONLEAVE
    在离开该页面时验证目录的有效性,不禁用"下一步"这个按钮

    开始菜单目录选择页面

    创建快捷方式的代码应当放在 MUI_STARTMENU_WRITE_BEGIN 和 MUI_STARTMENU_WRITE_END 之间,示例如下:
    !insertmacro MUI_STARTMENU_WRITE_BEGIN page_id
    ...create shortcuts...
    !insertmacro MUI_STARTMENU_WRITE_END

    这里的 page_id 是用户选择要创建快捷方式的页面。

    MUI_STARTMENUPAGE_TEXT_TOP text
    显示在页面顶部的文字

    MUI_STARTMENUPAGE_TEXT_CHECKBOX text
    显示在 checkbox 旁的表示禁止快捷方式创建的文字

    MUI_STARTMENUPAGE_DEFAULTFOLDER folder
    默认的开始菜单目录

    MUI_STARTMENUPAGE_NODISABLE
    不实现用于禁止快捷方式创建的 checkbox

    MUI_STARTMENUPAGE_REGISTRY_ROOT root
    MUI_STARTMENUPAGE_REGISTRY_KEY key
    MUI_STARTMENUPAGE_REGISTRY_VALUENAME value_name
    这三项用于指定开始菜单设定在注册表中的键和值,用于记录用户的偏好。在卸载时应当删除之。
    卸载程序可以用宏MUI_STARTMENU_GETFOLDER获得开始菜单目录,下面的例子说明了如何删除快捷方式:
    !insertmacro MUI_STARTMENU_GETFOLDER page_id $R0
    Delete "$SMPROGRAMS\$R0\Your Shortcut.lnk"

    安装进度页面属性

    MUI_INSTFILESPAGE_FINISHHEADER_TEXT text
    显示安装进度页面头上的文字,但对于结束页面不是MUI_(UN)FINISHPAGE_NOAUTOCLOSE)不显示。

    MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT text
    显示安装进度页面头上的,对MUI_INSTFILESPAGE_FINISHHEADER_TEXT的进一步说明。对于结束页面不是MUI_(UN)FINISHPAGE_NOAUTOCLOSE)不显示。

    MUI_INSTFILESPAGE_ABORTHEADER_TEXT text
    显示安装进度页面头上的表示安装过程非正常终止的文字

    MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT text
    对MUI_INSTFILESPAGE_ABORTHEADER_TEXT的进一步描述

    完成页面属性

    在完成页面中可以运行程序,打开文件或网站。

    MUI_FINISHPAGE_TITLE title
    页面标题

    MUI_FINISHPAGE_TITLE_3LINES
    页面标题区的额外空格

    MUI_FINISHPAGE_TEXT text
    显示在完成页面上文字,用\r\n换行

    MUI_FINISHPAGE_TEXT_LARGE
    如果使用了 checkbox 时,需要设定的文本区的额外空间

    MUI_FINISHPAGE_BUTTON text
    完成按钮的显示文字

    MUI_FINISHPAGE_TEXT_REBOOT text
    重启操作系统 checkbox 旁的文字,用\r\n换行

    MUI_FINISHPAGE_TEXT_REBOOTNOW text
    显示在'Reboot now'旁的文字

    MUI_FINISHPAGE_TEXT_REBOOTLATER text
    显示在'Reboot later'旁的文字

    MUI_FINISHPAGE_RUN exe_file
    指定用户可以用 checkbox 选择运行的应用程序,如果有空格无需引用。

    MUI_FINISHPAGE_RUN_TEXT text
    运行应用程序 checkbox 旁的文字

    MUI_FINISHPAGE_RUN_PARAMETERS parameters
    运行应用程序的参数,需要用$\"表示双引号

    MUI_FINISHPAGE_RUN_NOTCHECKED
    指定运行应用程序 checkbox 为非选中状态

    MUI_FINISHPAGE_RUN_FUNCTION function_name
    指定安装完成后要执行的nsi函数,在该函数中可以运行多个应用程序。

    MUI_FINISHPAGE_SHOWREADME file/url
    指定用户可以用 checkbox 选择是否查看的文件或网站,如果有空格无需引用。

    MUI_FINISHPAGE_SHOWREADME_TEXT text
    指定 'Show Readme' checkbox 旁的显示文字

    MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
    指定 'Show Readme' checkbox 为非选中状态

    MUI_FINISHPAGE_SHOWREADME_FUNCTION function_name
    指定安装完成后要执行的 nsis 函数,在该函数中可以显示多个文件或网站。

    MUI_FINISHPAGE_LINK link_text
    用户可及点击的超链上的文字

    MUI_FINISHPAGE_LINK_LOCATION file/url
    指定用户是否可以用超链查看网站,如果有空格无需引用。

    MUI_FINISHPAGE_LINK_COLOR (color: RRGGBB hexadecimal)
    超链上文字的颜色,默认为 000080

    MUI_FINISHPAGE_NOREBOOTSUPPORT
    禁用重启操作系统的功能

    卸载确认页面属性

    MUI_UNCONFIRMPAGE_TEXT_TOP text
    显示在页面顶部的文字

    MUI_UNCONFIRMPAGE_TEXT_LOCATION text
    显示在 uninstall location 旁的文字

  • 相关阅读:
    HDU 5795
    HDU5783
    HDU 5791
    VK Cup 2016
    Codeforces Round #357 (Div. 2)
    Educational Codeforces Round 15
    HDU5724
    博弈学习 3
    Spring的多配置文件加载
    spring 核心技术
  • 原文地址:https://www.cnblogs.com/08shiyan/p/2371562.html
Copyright © 2020-2023  润新知