函数 | 意义 |
Section | 最基础的函数,表示一个部门,用来代表一个需要安装的组件,Section中的内容是整个程序除了卸载以外最后执行的部分,但是编译时会第一个检查,如果程序中没有任何Section或Function,将会终止编译,Section内的代码块需要缩进2空格 |
Function | 执行的函数,同样需要缩进,它的函数名会被识别,如果识别为特殊名称,将会在特定情况下进行,下面还会讲解 |
SectionEnd | 表示部门结束,不缩进于Section内部 |
FunctionEnd | 表示函数结束,同上 |
SetCompressor | 设置压缩算法,后面可用的参数就是向导中的压缩算法,固实的用/SOLID作为前缀,例:固实lzma算法记作/SOLID lzma |
SetCompressor | 设置压缩分卷大小,后接一个数字,通常不写是没关系的 |
OutFile | 决定编译好的安装包的路径(是指未来的安装包的路径,而不是放在哪个文件夹) |
Name | 设置产品的名称,通常是向导第一步中写的应用程序名称+应用版本 |
InstallDir | 表示默认的安装路径,即向导第四步第一行填入的内容,决定了$INSTDIR的值 |
ShowInstDetails | 表示是否显示安装细节,参数不是简单的true和false,而是show,hide和nevershow,分别表示自动显示细节、用户按键显示细节、不允许看到安装细节 |
ShowUnInstDetails | 表示是否显示卸载细节,参数同上 |
BrandingText | 显示安装包下沿的信息,即向导第一步最后一行自定义文本,可以接受两个参数,一个是要显示的文字,还有可选参数是/TRIM,可以决定文字对齐方向(LEFT,RIGHT或者CENTER,默认为LEFT,必须写作/TRIMLEFT、/TRIMRIGHT或/TRIMCENTER,中间没有任何分隔) |
SetOutPath | 只能写在Section中第一行,决定了所属Section表示的组件的安装位置,不同于InstallDir,SetOutPath可以让不同的组件安装在总安装目录的不同子目录下,建议设置为$INSTDIR\组件名称的文件夹(或者如果组件互相依赖,可以另行调整组件路径) |
SetOverWrite | 只能写在Section中,用来设置已安装时是否覆盖,参数可以设置为始终覆盖(on),始终不覆盖(off),较新时覆盖(ifnewer),文件内容不同时覆盖(ifdiff)和尝试覆盖(try),对应向导第五步>编辑目录项目 |
File | 只能写在Section中,表示该Section包含并打包的文件,/r转义参数代表包含子目录的文件和文件夹,对应的向导步骤同上;/x参数用来排除文件,可以写/x “*.ico” “xxx\*”,分别表示排除ico文件和排除xxx子目录下的所有文件,对应向导第五步 |
CreateDictionary | 创建一个文件夹,后面加上的是文件夹的完整路径或相对路径 |
CreateShortcut | 创建一个快捷方式,第一个是快捷方式的路径(后缀.lnk),第二个是快捷方式指向文件的路径,对应向导第六步下面部分 |
WriteUninstaller | 创建解除安装程序,后面接卸载程序的路径名 |
WriteRegStr | 写入注册表,这一般不需要进行更改,按照向导生成的就行了 |
Delete | 通常在卸载Section中,删除单个文件,后接删除的文件的路径,由于删除的是单个文件,所以不能加/r |
RMDir | 通常在卸载Section中,删除目录和目录下的所有文件,后接删除的目录的路径,前面一般需要手动加上转义/r,向导没给你加,不加会卸载残留,最好每个子目录写一次这个指令,都要加上/r,最后移除总目录RMDir “$INSTDIR” |
DeleteRegKey | 删除注册表信息,一般按照向导生成就行了 |
SetAutoClose | 只能写在Section中,表示安装完成之后是否自动跳到完成界面,参数为true和false |
AutoCloseWindow | 似乎并没有什么作用,功能看似和上一个是相同的,但是可以写在Section以外,参数同上 |
Messagebox | 消息框,只能写在Section或Function中,参数有很多,包括显示信息、显示警告、问yes no,问okcancelretry等,VNISEdit中输入Messagebox可以获得全部参数列表,后面再接消息框显示的内容 |
Abort | 阻塞,等待用户回答 |
HideWindow | 隐藏窗口,通常用于卸载Section中,卸载程序先删除自己,再删除其他文件(没错,程序还在运行),删除了之后要自动关掉窗口 |