一、NSIS介绍_胡沈员介绍

一、NSIS介绍_胡沈员介绍概述最近需要写一个安装程序,比对了一下现有的安装工具,最后选定了NSIS,最主要的原因一是开源、二是灵活。下面把我的要求简单列举下:1、需要检查系统环境是否满足要求2、需要界面友好的安装过程

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一、NSIS介绍_胡沈员介绍概述

最近需要写一个安装程序,比对了一下现有的安装工具,最后选定了NSIS,最主要的原因一是开源、二是灵活。

下面把我的要求简单列举下:

1、需要检查系统环境是否满足要求

2、需要界面友好的安装过程

3、需要一些自定义界面,在安装过程中来获取一些必须的信息

4、需要根据界面的选择来执行或跳过一些安装过程

5、需要操作数据库

6、需要操作IIS

7、需要使用PowerShell命令设置AD/Exchange/Lync

8、需要操作注册表,用于标识安装步骤以用于卸载或回滚的执行

经过调查发现NSIS都能实现,但它有自己的一套脚本语言,需要学习成本,如果有编程基础这个其实不难,下载一个“NSIS用户手册”、一个”NSIS”(脚本编译)、一个“HM NIS Edit”(脚本编辑)一切就可以开始啦!

一、NSIS介绍_胡沈员介绍基本知识

那么首先,我们先看一下“NSIS用户手册”吧,你总得先了解一下NSIS这个东西的基本介绍和脚本的基本结构吧。

我把了解的最重要的东西列举一下,其他涉及到细节或遇到难题就可以随时查询用户手册或者google万能的网络:

1、安装程序的主体脚本文件 .nsi,可以包含一个或多个头文件 .nsh

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

2、一个安装程序的基本结构包含应用程序的基本信息定义、头文件引用、安装程序属性设置、安装程序页面、区段(安装过程脚本)和函数(安装页面创建之前、显示前和离开前的代码)等

应用程序的基本信息定义:产品的名称、版本、发布者、网站等信息;头文件引用:!include ***.nsh;

安装程序属性设置:安装程序语言、安装程序名称、输出安装文件、默认安装目录等信息;

安装程序页面:内建页面(欢迎页面、许可页面、目录选择页面、组件选择页面、安装记录页面、完成页面)、自定义页面;

区段:安装程序执行的实体,每一个 NSIS 安装程序包含一个或多个区段;

函数:最终要的是页面的回调函数(每个内建页面有三个回调函数(预置函数、显示创建函数和离开函数)、自定义的页面仅有两个回调函数(创建函数和离开函数))、

再就是安装的回调函数(.onInit、.onInstFailed、.onInstSuccess等)、还可以有一些自定义的函数;

3、保存值和使用值

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

 

Var str1
Var hasValue
Function StrOper
        StrCpy hasValue False     ; $hasValue = False
        ${If} $hasValue == True
              MessageBox MB_OK "$str1"
        ${EndIf}
  
        StrCpy $str1 "Hello,"     ; $str1 = Hello,
        StrCpy $str1 "$str1World" ; $str1 = Hello,World
        StrCpy hasValue True      ; $hasValue = True
        
        ${If} $hasValue == True
              MessageBox MB_OK "$str1"
        ${EndIf}
FunctionEnd

 

 另外一个保存值的方式是放入堆栈中,堆栈都知道是“先进后出”的,最重要的两个命令就是Push和Pop,下面一个简单的例子:

Var str1
Function StackOper
         Push "Hello"
         Pop $str1          ; $str1 = Hello
         Push "$str1 World" 
         Pop $str1          ; $str1 = Hello World
         MessageBox MB_OK "$str1"
FunctionEnd

NSIS脚本有一些内置的变量,如:$0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $R0, $R1, $R2, $R3, $R4, $R5, $R6, $R7, $R8, $R9;这些变量可以像用户变量一样使用,但不用声明这些变量;另外还有一些特殊含义的内置变量,如:$INSTDIR、$OUTDIR等。

NSIS脚本还有一些常量,如:$PROGRAMFILES,$DESKTOP,$WINDIR,$STARTMENU,$EXEDIR等等,有需要可以查看帮助文档

4、指令

NSIS脚本的执行是依靠一个个的指令,这些指令包括字符串操作指令、数学操作指令、文件操作指令、注册表读写指令、用户界面指令、流程控制指令等等,具体指令可以随时查看用户手册,另外你还可以通过插件来扩展它的能力,这些插件通常是一个DLL文件,关于插件以后章节会详细说明。

以上,我们通过快速浏览NSIS用户手册,了解了脚本的基本结构和基本语法方面的信息。下面,我们需要搭建NSIS的开发和编译环境。

一、NSIS介绍_胡沈员介绍编译环境

下载了NSIS最新的安装包,根据向导一步步安装即可,安装完成后会在系统目录上有NSIS目录,里面就有用户手册和一些脚本例子,另外就是在脚本文件.nsi点击右键会出来NSIS快捷菜单,如下图所示:

一、NSIS介绍_胡沈员介绍一、NSIS介绍_胡沈员介绍

 

一、NSIS介绍_胡沈员介绍编辑/IDE工具

编译环境都好了,接下来就该说到编辑脚本的工具了,最简单的是用文本文件,其实任何可以编辑文本文件的工具都可以,但一是没有任何格式不好看,再就是对于一个才开始编辑NSIS脚本的新手来说一头雾水,不知从何下手啊,好了,工具来了,下载HM NIS Edit最新版本,这是一个针对NSIS的免费的编辑/集成开发工具,安装后就可以使用啦,我能告诉你它不光让脚本更容易读写,最最打动我的其实是它的新建脚本向导功能,我在无从下手时通过向导生成的脚本省了很多工夫,也通过这些脚本更深刻的理解了脚本的结构和一些语法信息,再就是通过菜单NSIS可以直接编译脚本,脚本编译过程的输出信息会在输出界面显示,错误直接定位,界面如下所示:

一、NSIS介绍_胡沈员介绍

 

好了,基本介绍啰啰嗦嗦这么多,应该有点记忆了吧,下章我们就从制作一个简单的NSIS安装包开始吧!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/167755.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 最短路径算法——Dijkstra算法——python3实现

    最短路径算法——Dijkstra算法——python3实现本文参考来自数据结构与算法分析java语言描述。问题描述问题分析实现过程如何使用数据变化表问题描述现有一个有向赋权图。如下图所示:问题:根据每条边的权值,求出从起点s到其他每个顶点的最短路径和最短路径的长度。说明:不考虑权值为负的情况,否则会出现负值圈问题。s:起点v:算法当前分析处理的顶点w:与v邻接的顶点dvdvd_v:从s到v的距离…

  • JAVA异或运算符_java位运算符详解

    JAVA异或运算符_java位运算符详解目录目录性质应用举例其他用途示例异或是一种基于二进制的位运算,用符号XOR或者^表示,起运算法则是对运算符两侧数的每一个二进制位同值则取0,异值则取1.简单理解就是不进位加法,如1+1=0,0+0=0,1+0=1.性质1、交换律2、结合律(即(a^b)^c==a^(b^c))3、对于任何数x,都有x^x=0,x^0=x4、自反性AXORBXORB=

  • MinGW安装过程

    MinGW安装过程一. 下载MinGW官网下载地址:http://sourceforge.net/projects/mingw/二. 安装1. 双击下载好的压缩文件。 2. 然后出现如下界面,点击install(安装)开始安装。 3.指定安装参数选择(安装目录,用户目录选择)后,点击Continue继续下一步。 4.如下界面是下载和设置MinGW的安装配置

  • 互联网架构演变

    互联网架构演变互联网架构演变

  • J2EE架构师之路

    J2EE架构师之路不经意的回首,工作进入第五个年头了,发现走过了从Java程序员到J2EE架构师的历程。发现电脑上安装了各种各样的J2EE工具:JBuilder,WSAD,Eclipse,Rose,Together,Weblogic,Jtest,Optimizator,Mysql…发现电脑上保存了各种各样的OpenSource项目:Tomcat,JBoss,Ant,Hibernate,Spr

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号