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 旁的文字
()