NSIS 的 Modern UI 教程(一)
[ 2008-02-24 20:22:19 | 作者:
陈敏毅 ]
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 旁的文字
(未完待续)
NSIS 的 Modern UI 教程(一)
NSIS 的 Modern UI 教程(二)
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 旁的文字
(未完待续)
![[star]](http://chenmy.hanzify.org/styles/default/images/smilies/icon_star.gif)
![[star]](http://chenmy.hanzify.org/styles/default/images/smilies/icon_star.gif)
![[star]](http://chenmy.hanzify.org/styles/default/images/smilies/icon_star.gif)
NSIS 的 Modern UI 教程(一)
NSIS 的 Modern UI 教程(二)