我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Inno Setup 3 :语法解析(二

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Inno Setup 3 :语法解析(二

  接上回。安装脚本段用于解析脚本中各个段的含义及使用方法。其包括[Setup]段、[Files]段、[Run]段等共17个字段,下面逐一进行分析。

[Setup]

  [Setup]段包含用于安装程序和卸载程序的全局设置。某些提示对于你创建的任何安装程序都是必须的。示例如下:

[Setup]
AppName=My Program
AppVerName=My Program Version 3.1
DefaultDirName={pf}\My Program
DefaultGroupName=My Program

  按默认,指令值的所有首位或末位无显示字符将被分离。这可以通过质控的值包含在双引号 "" 中避免。
  [Setup]段中可以包含编译器相关指令(如:SourceDir、OutoutDir、OutputBaseFileName等)和安装程序相关指令(如:AppId、AppName、AppVerName、DefaultGroupName等)。
  其中,[Setup]段必须包含的指令如下:

  • AppName
  • AppVerName
  • DefaultDirName

[Types]

  [Types]段是可选的,用来定义安装程序在选择组件页面时可供选择的所有安装类型。如果你在[Components]段定义了组件,但没有定义类型,在编译时将创建一个默认的安装类型设置。如果你正在使用默认(简体中文)消息文件,这些类型等同于下面示例中的类型。[Types]段示例如下:

[Types]
Name: "full"; Description: "Full installation"
Name: "compact"; Description: "Compact installation"
Name: "custom"; Description: "Custom installation"; Flags: iscustom

下列是[Types]段所有支持的参数列表:

  • Name(必需的)
    类型的内部名字。用于定义[Components]段中组件参数,告诉安装程序组件属于哪个类型。示例:

    Name: "full"
  • Description(必需的)
    类型的描述,可以包含常量。这个描述在安装期间显示。示例:

    Description: "完全安装"
  • Flags
    这个参数是额外选项是设置,多个选项可以使用空格隔开。支持羡慕的选项:
     iscustom :
     告诉安装程序这个类型是自定义类型。用户在安装期间手动改变了组件选择,安装程序会将安装类型设置为自定义类型。注意,如果未定义自定义类型,安装程序将只允许用户选择一个安装类型,并且不能手动选择/取消选择组件。仅一种类型可以包含该标记。示例如下:

    Flags: iscustom

    [Components]

      [Components]段是可选的,它定义安装程序向导的选择组件页面中显示的所有组件,以便于用户定制安装类型。
      只用这一个组件不会做任何事情,它需要“链接”到其他安装目录。示例如下:

    [Components]
    Name: "main"; Description: "主文件"; Types: full compact custom; Flags: fixed
    Name: "help"; Description: "帮助文件"; Types: full
    Name: "help\english"; Description: "English"; Types: full
    Name: "help\chinese"; Description: "简体中文"; Types: full

    该示例生成四个组件:"main"组件在最终用户选择一个名为"full"或"compact"的类型时安装。带有两个子组件的"help"组件仅在用户选择"full"类型时安装。
    下列是所支持的参数列表:

  • Name(必须的)
    组件的内部名称。
    在组件名称中的 \ 或 / 字符符合计数是调用组件的层次。任何在层次 1 或更高层次的组件是子组件。在子组件前列出的小于子组件层次的组件是上级组件。其他有相同上级组件的组件之间称为同级组件。
    如果上级组件未选定,则不能选定它的子组件。如果所有的子组件均未选定,则上级组件也不能选定,除非Components参数引用上级组件或上级组件包含checkablealone标记。
    如果同级组件已经标有exclusive标记,则它们之中只有一个可选。示例如下:

    Name: "help"
  • Description(必须的)
    组件的描述,可以包含常量。这个描述用于在安装期间显示给用户参考。示例如下:

    Description: "帮助文件"
  • Types
    用空格隔开所属组件的类型列表。如果用户从这个列表中选择了一个类型,这个组件将被安装。
    如果未使用fixed标记(见下文),这个列表中的任何自定义类型(使用iscustom标记的类型)均会被安装程序忽略。示例如下:
    Types: full compact
  • ExtraDiskSpaceRequired
    这个组件所需要的额外磁盘空间,类似于[Setup]段中的ExtrDiskSpaceRequired。示例如下:

    ExtraDiskSpaceRequired: 0
  • Flags
    这个参数是额外选项设置。多个选项可以使用空格隔开。其支持下面的选项:
     checkblealone:
     指定当一个组件的所有子组件未被选中时,该组件可以被选中。默认的,如果没有Components参数直接引用到该组件,所有未选中的子组件都将导致该组件被设置为未选中状态。
     dontinheritcheck:
     指定当该组件被上级选中时,不影响组件选择状态。这不影响对顶层的组件,且该标记不能与exclusive标记一起使用。
     exclusive:
     告诉安装程序该组件与其他拥有exclusive标记的组件是互斥的。
     fixed:
     告诉安装程序在安装流程中该组件不提供选择项供用户选择。
     restart:
     告诉安装程序若安装该组件,则无论是否需要,都告诉用户重启电脑。(例如,[Files]段条目用了restartreplace标记),这有点像AlwaysRestart,但并不是每个组件都需如此。
     diableenouninstallwarning:
     如果这个组件在电脑上已安装,则重建安装时用户取消安装该组件,该标记告诉安装程序不进行警告提示用户将不卸载该组件。
     根据组件的复杂性,可使用[installDelete]段和该标记来自动卸载未选定的组件。
    示例如下:
    Flags: fixed

    [Tasks]

      [Tasks]段是可选的,它定义安装程序执行安装期间由用户定制的任务。这些任务以选项框和单选项形式出现在附加任务向导页中。
      该段本身是不做任何事情的,它需要“链接”到其他安装条目。示例如下:

    [Tasks]
    Name: desktopicon; Description: "创建桌面快捷方式(&D)"; GroupDescription: "添加快捷方式:"; components: main
    Name: Desktopicon\common; Description: "对于所有用户"; GroupDescription: "添加快捷方式:"; Components: main; Flags: exclusive
    Name: desktopicon\user; Description: "仅对当前用户"; GroupDescription: "添加快捷方式: quicklaunchicon; Description: "创建快速启动栏快捷方式(&Q)"; GroupDescription: "添加快捷方式:"; Components: main; Flags: unchecked
    Name: associate; Description: "文件关联(&A)"; GroupDescription: "其他任务"; Flags: unchecked

    下面是所支持的参数列表:

  • Name(必需的)
      任务的内部名字。
      在组件名称中的 \ 或 / 字符符合计数是调用组件的层次。任何在层次 1 或更高层次的组件是子组件。在子组件前列出的小于子组件层次的组件是上级组件。其他有相同上级组件的组件之间称为同级组件。
      如果上级组件未选定,则不能选定它的子组件。如果所有的子组件均未选定,则上级组件也不能选定,除非Components参数引用上级组件或上级组件包含checkablealone标记。
      如果同级组件已经标有exclusive标记,则它们之中只有一个可选。示例如下:

    Name: "desktopicon"
    • Description(必需的)
        任务的描述,可包含常量。该描述用于在安装期间进行显示。示例如下:

      Description: "创建桌面快捷方式(&D)"
    • GroupDescription
        任务组的描述,可包含常量。拥有相同描述的连续任务将会被分配到同一个带文字标签的组中。该文字标签用于显示任务组的描述信息。示例如下:

      GroupDescription: "附加图标"
    • Components
      该任务所属的组件列表,列表中组件用空格隔开的。当用户选择一列表中组件时,该任务将被显示;不带组件参数的任务总是被显示。示例如下:

      Components: main
    • Flags
      这个参数是额外选项设置。多个选项可以使用空格隔开。其支持下面的选项:
       checkblealone:
       指定当一个组件的所有子组件未被选中时,该组件可以被选中。默认的,如果没有Components参数直接引用到该组件,所有未选中的子组件都将导致该组件被设置为未选中状态。
       dontinheritcheck:
       指定当该组件被上级选中时,不影响组件选择状态。这不影响对顶层的组件,且该标记不能与exclusive标记一起使用。
       exclusive:
       告诉安装程序该组件与其他拥有exclusive标记的组件是互斥的。
       fixed:
       告诉安装程序在安装流程中该组件不提供选择项供用户选择。
       restart:
       告诉安装程序若安装该组件,则无论是否需要,都告诉用户重启电脑。(例如,[Files]段条目用了restartreplace标记),这有点像AlwaysRestart,但并不是每个组件都需如此。
       diableenouninstallwarning:
       如果这个组件在电脑上已安装,则重建安装时用户取消安装该组件,该标记告诉安装程序不进行警告提示用户将不卸载该组件。
       根据组件的复杂性,可使用[installDelete]段和该标记来自动卸载未选定的组件。
      示例如下:
      Flags: unchecked

    [Dirs]

    [Files]

    [Icons]

    [INI]

    [InstallDelete]

    [Languages]

    [Messages]

    [CustomMessages]

    [LangOptions]

    [Registry]

    [Run]

    [UninstallDelete]

    [UninstallRun]

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Inno Setup 3 :语法解析(二

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Inno Setup 3 :语法解析(二

接上回。安装脚本段用于解析脚本中各个段的含义及使用方法。其包括[Setup]段、[Files]段、[Run]段等共17个字段,下面逐一进行分析。[Setup]  [Setup]段包含用于安装程序和卸载程序的全局设置。某些提示对于你创建的任何
2023-01-31

详解vue3.2中setup语法糖<script lang="ts" setup>

Vue3.2引入了语法,这是一种稍微不那么冗长的声明组件的方式,下面这篇文章主要介绍了详解vue3.2中setup语法糖<script lang="ts"setup>的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2023-01-09

一文详解Vue3中的script setup语法糖

Vue 3 的 Composition API 系列里,推出了一个全新的 setup 函数,它是一个组件选项,在创建组件之前执行,一旦 props 被解析,并作为组合式 API 的入口点。
2022-11-22

Vue3中的setup语法糖、computed函数、watch函数详解

这篇文章主要介绍了Vue3中的setup语法糖、computed函数、watch函数,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-03-01

详解Vue3中的setup语法糖、computed函数、watch函数

本篇文章带大家学习Vue3,了解Vue3中的setup语法糖、computed函数、watch函数,希望对大家有所帮助!
2023-05-14

vue3 setup语法糖之组件传参(defineProps、defineEmits、defineExpose)示例详解

defineProps 和 defineEmits 都是只能在 <script setup> 中使用的编译器宏,他们不需要导入,且会随着 <script setup> 的处理过程一同被编译掉,这篇文章主要介绍了vue3 setup语法糖之组件传参(defineProps、defineEmits、defineExpose)示例详解,需要的朋友可以参考下
2023-01-28

Python 3中的yield from语法详解

前言 最近在捣鼓Autobahn,它有给出个例子是基于asyncio 的,想着说放到pypy3上跑跑看竟然就……失败了。 pip install asyncio直接报invalid syntax,粗看还以为2to3处理的时 候有问题——这不
2022-06-04

vue3中setup语法糖下通用的分页插件实例详解

这篇文章主要介绍了vue3中setup语法糖下通用的分页插件,实例代码介绍了自定义分页插件:PagePlugin.vue,文中提到了vue3中setup语法糖下父子组件之间的通信,需要的朋友可以参考下
2022-11-13

LINUX DNS解析的3种修改方法

1.HOST 本地DNS解析vi /etc/hosts添加规则 例如:223.231.234.33 www.baidu.com 2.网卡配置文件DNS服务地址 vi /etc/sysconfig/network-scripts/ifcfg-
2023-01-31

C++ 函数声明的详细语法:从语法解析到规范用法解析

c++++函数声明语法为:returntype functionname(parametertype1 parametername1, ... , parametertypen parameternamen);,其中returntype为返
C++ 函数声明的详细语法:从语法解析到规范用法解析
2024-04-30

Python详细解析之二分查找算法

本篇文章给大家带来了关于python的相关知识,其中主要整理了二分查找算法的相关问题,包括了算法描述、算法分析、算法思路等等内容,下面一起来看一下,希望对大家有帮助。二分法是一种效率比较高的搜索方法回忆之前做过的猜数字的小游戏,预先给定一个小于100的正整数x,让你猜猜测过程中给予大小判断的提示,问你怎样快速地猜出来?我们之前做的游戏给定的是10次机会,如果我们学会.二分查找法以后,不管数字是多少,
2022-06-28

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录