NSIS学习笔记之脚本结构简介
简介
NSIS (Nullsoft Scriptable InstallSystem) 是 Windows 下的一个工具,它允许程序员来创建安装程序,NSIS 创建的安装程序能够安装、卸载、设置系统设置、解压文件等等。它基于脚本文件工作,你可以完全的控制安装程序的每一部分:脚本语言支持变量、函数、字串等操作。
本文主要是介绍NSIS脚本相关的概念,给初学者一个快速入门的指导,对于详细的功能请阅读随机附带的帮助文档。
脚本结构
一个NSIS脚本一般包括:安装程序属性、页面、区段和函数。
属性
属性主要是设置安装程序的动作、外观和行为习惯等内容。大多数属性在运行时不能被修改。最常用属性的有:Name(设置安装程序名称)、OutFile(设置安装程序文件名)。
页面
一个非静默安装程序需要使用向导页面来指导用户安装,页面(page)就是用来设定这些页面。一个典型的安装程序脚本一般包含以下定义:
Page license
Page components
Page directory
Page instfiles
UninstPage uninstConfirm
UninstPage instfiles
更多高级设置也已使用 PageEx等命令。
NSIS提供了很多内置的页面,对于内置的页面,都有三个回调函数:预置函数、创建函数和离开函数。
对于自定义的页面,仅有两个回调函数:创建函数和离开函数。
区段
区段是安装程序执行安装任务的实体,它安装程序真正的核心部分,它的执行时机对应于”page instfils”页面。
在一个程序安装过程中,往往需要安装很多内容,使用区段可以将这些内容进行“逻辑划分”,体现在安装程序中就是安装组件。例如在NSIS安装时,你可以选择安装源码、附加插件、脚本样例或其他组件。每一个组件就是脚本中定义的一个区段,当安装时用户选择了某个组件,这个组件对应的区段中的代码就会被执行。
区段包含可见区段和隐藏区段。
另外,卸载程序也可以有多个区段,其区段名前必须要加上前缀“un.”
如果在安装脚本中设置了”Page ComponentText“,那么安装时就会显示一个安装组件选择页面,用户可以选择全部或部分组件。只有用户选中的组件才会被安装。如果脚本中不设置”Page ComponentText“,安装程序不会给用户显示组件选择页面,所有的组件都会被安装。
区段名称为空或以”-”开头,则为隐藏区段,隐藏区段不会显示给用户,会自动执行。
函数
函数是完成某些特定的功能的指令集合,它与区段类似之处在于都可以包含零个或多个指令。其中用户自定义函数不会被安装程序直接调用,而必须在区段里使用 Call 指令来调用。
回调函数会在特定事件发生时,由安装程序调用。
函数必须在区段或其他函数之外声明。