Skip to content

Latest commit

 

History

History
76 lines (61 loc) · 2.56 KB

210802.md

File metadata and controls

76 lines (61 loc) · 2.56 KB

NSIS 基础

脚本文件

  1. 主体文件:nsi。 可以用 !include 包含一个或多个 nsh 头文件,如 !include "ui_nim_setup.nsh"

  2. 头文件:nsh。 头文件可以通过把它划分为一个或多个代码块来帮你编排你的脚本,你也可以在头文件里加入功能函数或宏,并且在多个安装程序里包含头文件,这样可以更容易的升级你的程序,并且使你的脚本很容易的让人看懂。

定义软件基本信息

  1. !define PRODUCT_NAME "网易云信"
  2. !define PRODUCT_PATHNAME "NIM_PC" #安装卸载项用到的KEY
  3. !define INSTALL_APPEND_PATH "NIM" #安装路径追加的名称
  4. !define INSTALL_DEFALT_SETUPPATH "" #默认生成的安装路径
  5. !define EXE_NAME "牛牛截图.exe"
  6. !define PRODUCT_VERSION "2.5.0.0"
  7. !define PRODUCT_PUBLISHER "网易公司"
  8. !define PRODUCT_LEGAL "网易公司 Copyright(c)2015"
  9. !define INSTALL_OUTPUT_NAME "NIM_PC_Setup_v2.5.0.exe"
  10. !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
  11. !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"

安装程序内建页面

  1. Welcome page !insertmacro MUI_PAGE_WELCOME

  2. License page !insertmacro MUI_PAGE_LICENSE "E:\ZZL\ADWeb\安装包制作\Licence.txt"

  3. Directory page !insertmacro MUI_PAGE_DIRECTORY

  4. Instfiles page !insertmacro MUI_PAGE_INSTFILES

  5. Finish page !insertmacro MUI_PAGE_FINISH

  6. Uninstaller pages !insertmacro MUI_UNPAGE_INSTFILES

定义变量

使用 Var 命令来声明变量,使用变量来保存值,所有定义的变量都是全局的,即使在区段或函数内定义。所以你可以声明变量、代码中对变量进行各种操作(赋值、比较、字符串操作等,使用变量需要加$)

  1. 字符串赋值:StrCpy $0 'a' // $0 = 'a'
  2. 拼接字符串: StrCpy $1 '$0b' // $1 = 'ab'
  3. 整数运算赋值:IntOp $9 0 + 1 // $9 = 0 + 1

保护变量

利用 Push 与 Pop 可以使得函数对全局变量的操作只在自己的作用域里有效,函数执行完毕后,全局变量恢复至函数调用前的值

Var str
StrCpy $str 'a'
#MessageBox MB_OK '$str' // a
Push $str
StrCpy $str 'b'
#MessageBox MB_OK '$str' // b
Pop $str
#MessageBox MB_OK '$str' // a

定义函数

  1. 开头:Function 函数名
  2. 结尾:FunctionEnd
Var str1
Function StackOper
    Push "Hello"
    Pop $str1          ; $str1 = Hello
    Push "$str1 World" 
    Pop $str1          ; $str1 = Hello World
    MessageBox MB_OK "$str1"
FunctionEnd