NSIS学习脚本参考

发布 2021-02-26 10:29:28 阅读 3524

一、 脚本文件格式。

一个 nsis 脚本文件 (.nsi) 就是一个包含了脚本**的文本文件。

命令。格式:'命令 [参数]'

例子:file "myfile"

注释。 注释。

# 注释。# 注释 \

另一个注释行 (查看本节下面的 `长命令`)

*注释注释*/

name /*注释 */mysetup

file "我的文件" ;注释。

插件。格式:插件:命令 [参数]'

例子:nsexec::exec "我的文件"

数字。1.十进制 (数字) 或十六进制 (以 0x 开头的,比如: 0x12345ab), 或八进制 (以 0 开头且无 x)。

2.颜色被设置为十六进制 rgb 形式,像 html 那样但是没有 # 开头。

intcmp 1 0x1 lbl_equal

setctlcolors $hwnd cccccc

字符串。1.要使用一个包含空格的字符串,需要用引号括起来: messagebox mb_ok "hi 您好!"

2.引号仅有的作用就是当他们开始时包含一个参数。他们可以是单引号、双引号或向后的单引号。

messagebox mb_ok "i'll be happy" ;把一个 ' 放在字符串里。

messagebox mb_ok 'and he said to me "hi there!"'把一个 " 放在字符串里。

messagebox mb_ok `and he said to me "i'll be happy!"`这里把 ' 和 " 都放到了字符串里。

messagebox mb_ok "$a quote from a wise man$\"said the wise man" ;这里演示了跳过引号的解析。

3.要在字符串里使用回车、换行、tab 等,请使用 $, $n, $t 等。

变量。变量以 $ 开头。用户变量应该 (不是必须) 事先被声明并且区分大小写。

var myvar

strcpy $myvar "变量值"

长命令。要把命令扩充为多行,需要在行尾使用反斜杠 (\

配置文件。如果在 nsis 的配置目录下存在 ""那么它里面的**默认将会被包含在任何脚本里(除非你使用了 /noconfig 命令参数)。(这个里面的一点不明白了,唉,)

二、 变量。

所有的变量都是全局的并且可以用于区段和函数。需要注意的是,在默认情况下变量被限制在 1024 字节。要扩大这个限制你需要使用一个更大 nsis_max_strlen 值并重新构建nsis或者使用特别版本。

用户变量。用户变量可以用 var 命令来声明。你可以使用这些变量来保存值,用于字符串操作等等。

var [/global] 变量名。

声明一个用户变量。变量名允许的字符: [a-z][a-z][0-9] 和 '_所有定义的变量都是全局的,即使在区段或函数内定义。

要使它表达更清楚一些,区段或函数内定义的变量必须使用 /global 标记。在区段和函数之外不需要 /global 标记。

var example

function testvar

var /global example2

strcpy $example "example value"

strcpy $example2 "another example value"

functionend

其他可写的变量。

1.寄存器。这些变量可以像用户变量一样使用,但常用于公用函数或宏。

你不需要声明这些变量,所以当你在公用**里使用他们的时候不能有任何名字冲突。当在公用**里使用这些变量的时候,推荐你使用堆栈保存和恢复他们原来的数据。这些变量也可以在插件里传递,因为他们可以被 dll 插件读取和写入。

$0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r8, $r9

2.安装目录。($instdir 可以使用 strcpy、 readregstr、 readinistr 等等来更改。

例如在 .oninit 函数里可以用来做高级的检测安装定位)。

$instdir

当前输出目录 。(通过 setoutpath 或者通过 strcpy、 readregstr、 readinistr 等等)

outdir

安装程序命令行。命令行的格式可以是下列之一:

1 "完整路径\安装程序。exe" 参数1 参数2 参数3

1 安装程序。exe 参数1 参数2 参数3

1 对于解析“参数”部分,参阅下例。如果在命令行里指定了 /d= (用来跳过安装路径的选择),那么 /d= 后面的参数将不会被保存在 $cmdline (前面的可以保存)。

section

$ $r0;

$r0="[parameters]"

sectionend

小黄本参考

1.题目名称 远程无线测温仪的设计。主要技术参数 1.测温范围 55 125 测量分辨率可以达到0.0625 进行一次温度采集至多需要1秒钟时间。2.键盘电路的工作电压范围 3.3v 5.5v。工作温度范围 40 85 3.单片射频收发器工作电压为1.9v 3.6v,频道之间转换时间小于650ns ...

小黄本参考

1.题目名称 基于单片机的ic卡读写器设计。主要技术参数 1.ic卡读写器设计工作在13.56mhz,天线接受距离可达10cm 2.键盘电路的工作电压范围 3.3v 5.5v。工作温度范围 40 85 3.单片射频收发器工作电压为5v 4芯片工作电压范围为1.8v 6.0v。课题内容及工作量 本选题...

优秀毕业设计参考样本参考

安徽工业职业技术学院。毕业设计 任务书。信息工程系07网络工程班姓名柯斌志 毕业设计 题目 中小型企业网络规划与设计。毕业设计 起止日期 2010.2.25 2010.5.1 指导教师周跃。毕业设计 要求 一 毕业设计的基本要求 1 学生必须充分认识毕业设计的重要性,严格按要求开展毕业设计工作 2 ...