NSIS简介

windows上利用NSIS制作安装向导程序及常见问题 NSIS 的脚本语言和通常的编程语言有类似的结构和语法,但它是为安装程序这类应用所设计的。如果指定了 /r ,则目录会被递归删除,所以在指定目录下的所有文件和目录均被删除。如果指定了 /REBOOTOK ,任何当前不能删除的文件或目录将会在重启后被删除 – 如果文件或目录需要在重启时被删除,会放置一个重启的标记。授权文件就是我们的licence.txt文件,这个文件的编码ASCII编码,就是记事本新建的默认文本格式,这个文件的的路径必须是存在的,否则后面的时候不能生成安装程序。先把默认的模版文件删掉。 阅读详情

1. 简介

NSIS是一款帮助开发者创建Windows安装包的工具,NSIS通过NSIS脚本语言(NSIS Script)来配置安装过程中的信息,通过灵活的脚本方式,NSIS可以实现从最简单的文件拷贝包制作,到需要读写注册表、配置环境变量、以及网络安装等复杂的安装包制作。

2. NSIS脚本

NSIS脚本是一种简单的脚本语言,这种脚本语言主要面向安装包的制作,可以使用任何一种文本编辑器进行编写。

NSIS脚本中的每一行是一个命令,如果命令行过长,可以使用一个反斜杠’\’转到下一行,这两行在编译过程中会被视为一行处理,例如:

Messagebox MB_OK  | MB_ICONINFORMATION \
"This is a sample that shows how to use line breaks for larger commands in NSIS scripts"

当在字符串中添加一个双引号”时,可以使用转义符号 $\”或者使用另外一种引号如`或者 ‘,二者都可以作为字符串的符号。

NSIS脚本文件的后缀是 .nsi, 头文件使用 .nsh后缀,通过头文件和脚本文件可以合理组织脚本语言(例如可以将公用的脚本放在头文件中,并使用 !include 引入)

!include Sections.nsh

3. NSIS脚本结构

一个NSIS脚本文件包括 安装属性(Installer Attributes)、区段(Sections)和函数(Functions),此外还可以使用编译命令来对编译过程进行控制。

3.1 安装属性

安装属性决定了安装包的行为以及安装包运行的风格和UI等内容。通过修改属性可以配置安装过程中出现的显示信息。

3.2 安装页

一个非静默安装的安装包一般会包含许多向导页面一步步引导用户完成安装过程,可以通过设置Page命令来显示或者隐藏向导页面,一般来说典型的安装页面包括:

  1. Page License
  2. Page components
  3. Page directory
  4. Page instfiles
  5. UnistPage uninstConfirm
  6. UninstPage instfiles

下面给出几张安装过程的页面:

License页面

Component页面

Directory页面

3.3 区段(Sections)

在我们安装程序的过程中可以选择安装不同的部分,例如在安装Office套件的过程中,可以选择只安装word、excel而不去安装其他软件,当我们勾选安装部分之后,NSIS对应的脚本就会执行,这其中的每一项对应脚本文件中的一个区段。区段的名称会显示在安装选项中,例如上面所说安装Office的脚本类似于下面这种方式:

Section "Microsoft Word"
... 具体的word安装代码
SectionEnd

Section "Microsoft Excel"
... 具体的excel安装代码
SectionEnd

Section "Microsoft PowerPoint"
... 具体的powerpoint安装代码
SectionEnd

Section "Microsoft OneNote"
... 具体的onenote安装代码
SectionEnd

此外在卸载程序的过程中也会出现区段,区段的名称已un.开头,例如:

Section "un.Uninstaller Section"
SectionEnd

区段中使用的代码和安装属性中使用的代码有很大的不同,区段中的代码是在用户计算机上执行的,这些命令主要用来解压文件、读取和写入注册表、创建文件夹、创建快捷方式等。在区段中最重要的一个基本命令是 SetOutPath,用来将文件解压到指定的目录中。

3.4 函数

函数式可供调用的脚本块,函数主要分为两种类型:

  1. 用户自定义函数
  2. 回调函数

用户自定义的函数可以在区段或者其他函数中通过Call命令来调用,用户自定义的函数在调用它们的过程中被执行。

回调函数会被安装程序自动调用(在某个事件发生的时候:例如在安装过程开始的时候)回调函数在NSIS脚本中是可选的。经常使用的一个函数式.onInit,这个函数会在安装过程开始的时候被调用,例如可以做一个欢迎的画面:

Function .onInit
  MessageBox MB_YESNO "This will install My Program. Do you wish to continue?" IDYES gogogo
    Abort
  gogogo:
FunctionEnd

3.5 脚本的编写方式

在脚本编写过程中可以使用StrCmp、IntCmp、IfErrors、Goto等来实现条件执行(类似C语言中的if…else)和循环执行(类似C语言中的while),但是可以通过 脚本库中提供的LogicLib来简单的编写代码,要是用LogicLib需要在脚本文件中包含头文件 !include LogicLib.nsh

变量的书写方式:

可以使用Var命令来定义变量,变量都是全局的变量,可以在区段和函数中使用,定义变量的方式如下:
Var BLA ;定义了一个BLA的变量
Section bla
StrCpy $BLA “123” ;使用BLA变量,将它赋值为123
Seciton End

在脚本编写过程中,脚本自身提供一个堆栈,可以通过Push将变量压入堆栈中,使用Pop可以弹出栈顶变量。

另外脚本语言提供了20个已经注册的全局变量,我们可以直接使用而不需要声明,这20个变量类似于(0和R0),可以使用堆栈配合这些变量使用,在使用它们之前把它们原来的值压入堆栈,使用之后再恢复它们原来的值,例如下面这个函数:

Function bla

  Push $R0
  Push $R1

    ...code...

  Pop $R1
  Pop $R0

FunctionEnd

可以使用MessageBoxes或者DetailPrint来获取脚本中变量的值,从而帮助调试脚本程序。

3.6 脚本的执行

当用户运行安装程序或者卸载程序的时候,定义在脚本文件中的页面区段代码(Sections)会被按定义在脚本中的顺序执行。除此之外如果定义了回调函数,那么在某些时候这些函数会被调用执行。

3.7 编译命令

在编译霍城中可以使用编译命令,编译命令中另一个常用的部分是宏(Macros),宏定义了一系列的执行动作,可以在脚本的其他地方调用,当编译脚本时这些宏被执行。

NSIS生成安装程序 基于PyQt5写成的界面py程序转换成的exe文件,介绍的NSIS程序打包成可安装的程序 阅读详情

相关推荐

Windows安装包制作工具-NSIS使用教程

NSIS 是“Nullsoft 脚本安装系统”(Nullsoft Scriptable Installation System)的缩写,它是是一个专业开源的制作 windows 安装程序的工具,它的特点:脚本简洁高效;系统开销小;当然进行安装、卸载、设置系统设置、解压文件等等更不在话下,几乎可以做所有的事情。

mickey2007的博客 6524

NSIS入门教程

NSIS简介NSIS是"Nullsoft 脚本安装系统"(Nullsoft scriptable Installation System)的缩写,它是是一个免费的win32安装、卸载程序,可以打包windows应用程序。打包步骤下载NSIS脚本安装系统,启动NSIS Edit引用了急支糖浆的图片注:这里有一些信息使用了变量来表示,因为脚本中可能会在多个地方使用,使用变量可以方便修改,统一管理。这些变量在下面的脚本中会设置相应的值。

gyc1307py42568的博客 6754

NSIS:Windows应用程序打包与安装制作工具详解

NSIS提供了很多内建函数,如File用于添加文件,Exec用于执行外部程序,以及用于组织安装部分。ReturnNSIS 提供了丰富的界面定制选项,允许开发者对安装程序的外观和体验进行个性化定制。以下是几个 NSIS 脚本中的示例,它们演示了如何定制安装界面。;设置安装向导使用的图片BrandingText "欢迎使用 MyApp 安装向导";添加进度条样式;添加自定义页面!;定制页面的内容可以是任意 NSIS 脚本代码;可以使用 NsisUI 控件或简单的命令。

weixin_31938351的博客 3304

NSIS 简介

1. 简介 NSIS是一款帮助开发者创建Windows安装包的工具,NSIS通过NSIS脚本语言(NSIS Script)来配置安装过程中的信息,通过灵活的脚本方式,NSIS可以实现从最简单的文件拷贝包制作,到需要读写注册表、配置环境变量、以及网络安装等复杂的安装包制作。 2. NSIS脚本 NSIS脚本是一种简单的脚本语言,这种脚本语言主要面向安装包的制作,可以使用任何一种文本编辑器进

HelloKandy's Blog 2372

Chromatix_AEC—深入解析曝光表配置与传感器参数计算

本文深入解析高通Chromatix AEC模块中的曝光表配置与传感器参数计算,详细介绍了自动曝光控制(AEC)的核心概念、首行曝光时间计算、行时间与曝光模式对比、帧率计算逻辑以及曝光表高级配置技巧。通过实战案例展示如何优化传感器参数联调,帮助开发者掌握Chromatix工具在摄像头系统中的关键应用。

266

Fast DDS源代码走读

DDS, PDP, EPD, DataWriter, DataReader

weixin_43082062的博客 713

NSIS 的简介

NSIS(NullsoftScriptableInstallSystem)是一个OpenSource的Windows系统下安装程序制作程序。它提供了安装、卸载、系统设置、文件解压缩等功能。这如其名字所指出的那样,NSIS是通过它的脚本语言来描述安装程序的行为和逻辑的。NSIS的脚本语言和通常的编程语言有类似的结构和语法,但它是为安装程序这类应用所设计的。NSIS脚本通常以nsi为扩展名...

weixin_30379973的博客 292

Linux服务器上后台运行jupyter notebook/Lab

1 安装配置教程2 后台运行jupyter3 更改运行环境kernel4 SSH端口转发 1 安装配置教程 可以参考:https://www.cnblogs.com/thousfeet/p/10647102.html 2 后台运行jupyter screen -S jupyter # 新建一个名为jupyter的后台screen # 在base环境下,先 cd 到指定文件目录 jupyter notebook # or jupyter lab 3 更改运行环境kernel 需要手动为每个环境添加内.

strivequeen的博客 1835

NSIS学习记录(三)————NSIS脚本简介

nsis用户手册,大部分是翻译,

rose2rose的博客 3776

Jmeter压测报告

账户分析压测报告 一、测试内容 本次测试是针对账户分析进行的压力测试,在账户分析查询接口中,只对用户资产查询接口进行压力测试,其中不包含用户签名校验功能。 二、测试方法 本次采用apache的开源测试工具jmeter,采用本地动态拼装请求数据并通过http协议GET方式发送每日盈亏查询请求。并采用1000个用户账号测试访问情况。...

qq_31108731的博客 6627

Qt Creator 下载和安装

在线安装程序是一个小型的安装程序,它将在您的计算机上下载和安装 Qt Creator。离线安装程序是一个较大的安装包,您可以将其保存在本地,并在没有网络连接的情况下安装 Qt Creator。在 Qt 官方网站上,您可以找到 Qt Creator 的下载页面。Qt Creator 是一款跨平台的集成开发环境(IDE),用于开发基于 Qt 框架的应用程序。在这一步中,您可以选择是否安装 Qt Creator 的附加组件。一旦您完成了组件的选择,安装程序将开始将 Qt Creator 安装到您的计算机上。

HackLogic的博客 6823

NSIS Script简介

NSIS Script的简要介绍

Frank的专栏 2836

Python爬虫实战:抓取全球各国海关进出口数据的全流程教程

本文系统介绍了用Python采集全球各国海关进出口数据的完整流程,从数据源调研、技术选型,到代码实战、数据处理和存储,最后还拓展了进阶反爬和动态内容处理方法。希望这篇博文能帮助你掌握专业的数据采集技能,为后续数据分析和商业应用奠定坚实基础。

2201_76125261的博客 2362

NSIS之简介

NSIS creates installers that are capable of installing, uninstalling, setting system settings, extracting files, etc. Because it's based on script files you can fully control every part of your installer. The scripting language supports variables, functio.

子建莫敌 771

YOLO26魔改:ICIP2026 SDTA|单深度转置注意力注入C2PSA,长程依赖与局部细节双增强,mAP提升显著

多尺度适配:SDTA的深度卷积与C2PSA的空间注意力结合,增强对多尺度目标的结构感知,改善遮挡与密集场景下的检测鲁棒性。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 293

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

打包软件 NSIS 简介

NSIS(Nullsoft Scriptable Install System)是一个开源的 Windows 系统下安装程序制作程序。由于我们的Qt项目在windows下采用NSIS进行打包,遂对其进行了一些研究,以下只是一个简单的流程,具体如何操作可以看其自带的安装包中的sumple。         Name 安装程序名字         OutFile 输出的安装程序名字

skyztttt的专栏 889

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

nsis安装包(三)_NSIS简介

Nullsoft Install System Nullsoft 脚本安装系统(英语:Nullsoft Scriptable Install System,缩写:NSIS)为一个开放源代码脚本驱动的封装安装工具。可以用其脚本语言自定义安装的流程,同时支援多种语系的安装接口。   Nullsoft Nullsoft是一个美国的软件设计团队,以Windows操作系统的应用软件开发为主,著名

软件测试技能栈 5835

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

NSIS学习笔记之脚本结构简介

NSIS学习笔记之脚本结构简介 简介 NSIS (Nullsoft Scriptable InstallSystem) 是 Windows 下的一个工具,它允许程序员来创建安装程序,NSIS 创建的安装程序能够安装、卸载、设置系统设置、解压文件等等。它基于脚本文件工作,你可以完全的控制安装程序...

chuomocang3133的博客 229

NSIS学习记录(四)————NSIS脚本简介2

文章目录使用脚本逻辑代码结构条件语句循环语句LogicLib的引用 使用脚本 逻辑代码结构 虽然可以使用StrCmp,IntCmp,IfErrore,Goto等命令来执行条件语句和循环语句。然而,还有更简单的方法。 LogicLib提供了一些非常简单的宏,使得一些复杂结构的构建变得简单。在LogicLib.nsh中对它的语法进行了解释,与其他的编程语言相似,对初学者和进阶者都很友好。 条件语句 例如,不使用LogicLib库,对变量的校验方法 StrCmp $0 'some value' 0 +3 Me

rose2rose的博客 1392

NSIS 自定义界面布局简介 (学习四)

 ;自定义欢迎页面 Page custom WelcomePage ;初始化必须要调用的组件 Function .onInit   InitPluginsDir   ;Call DiskFrameWorkSpaceCheck   ;检测磁盘   ;Call DefineReadINI  #读取INI文件中的内容   Call IsProgramRunning   #检测程序是否

yimengchenxi的专栏 1万+

windows中使用NSIS生成打包文件

当一个项目做好之后,将其打包成安装程序是常见的需要,在windows下我们可以C#来构造打包文件,也可以使用VS中的一些第三方的插件来生成安装程序。而在我的项目GDB实时数据库中,我使用的是NSIS来生成打包程序,下面我将向大家简要的分享一下,如果使用NSIS来制作打包文件,让大家可以在最短的时间内使用NSIS来完成自己的需求。 1.NSIS简介 NSIS创建能够安装,卸载,设置系统设置,提取文件等的安装程序。由于它基于脚本文件,因此您可以完全控制安装程序的每个部分。 脚本语言支持变量,函数和字符串操作

qq_39778055的博客 1640

Tauri项目中使用NSIS实现自定义安装包配置指南

在Windows平台开发桌面应用时,安装包的制作是一个重要环节。Tauri框架虽然提供了默认的安装包生成方案,但开发者有时需要更灵活的定制选项。本文将详细介绍如何在Tauri项目中通过NSIS脚本实现完全自定义的安装包配置。 ## NSIS简介 NSIS(Nullsoft Scriptable Install System)是一款开源的Windows安装程序制作工具。它通过脚本语言控制安装过程...

gitblog_00468的博客 941
上一篇: 设计模式之单例模式(C++)
下一篇: NSIS Script简介
csxiaoshui
博客等级 码龄16年 873粉丝 158原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值