有些时候我们的程序虽然能够很好的完成安装,但是程序的配置工作可能需要其他的一些程序来辅助完成,如果不执行这些程序,主程序就不能很好的完成工作,甚至不能完成工作,一个很明显的例子是,目前许多程序是通过NET技术开发的,这就要求计算机上必须安装有.net Framework,否则主程序运行不了,只有预先安装了NET Framework后主程序才能得以运行。这个时候可以通过Run段,指定程序完成安装后、在安装程序显示最终对话框之前要执行的程序。

设想有个主程序为ipmsg.exe,初始化程序为init.exe,主程序必须在init.exe运行一次之后方可很好的运行,这个时候可以这样做(这里的init.exe是我随便找的一个文件,和ipmsg没有必然的联系,只是用来演示):

DefaultDirName="E:\TEST"

AppVersion=1.0

Compression=lzma2/max

ShowLanguageDialog=yes

[components]

Name: main; Description:"主程序(必选)";Types:full compact custom;Flags: fixed

Name: data; Description:"数据文件";Types:full

Name: help;Description:"帮助文件";Types:full compact

[files]

;需要打包的文件

Source: "F:\desktop\test\ipmsg.exe"; DestDir: "{app}";Components:main

Source: "F:\desktop\test\init.exe"; DestDir: "{app}";Components:main

Source: "F:\desktop\test\bin.dat"; DestDir: "{app}";Components:data

Source: "F:\desktop\test\help.chm"; DestDir: "{app}" ;Components:help

Source: "F:\desktop\test\readme.txt"; DestDir: "{app}";components:help;Flags:isreadme

[run]

Filename: "{app}\INIT.EXE";

测试上面代码生成的打包文件,运行到最后出现finish之前,将会出现如下画面,后面的安装程序将挂起,等待run段下的程序执行完毕后方可继续运行。

聪明的读者可能已经想到,使用该方法也可以实现readme的功能。这里再谈谈该段的各个参数:

Filename:

该参数是必须的,用于说明需要执行的文件,或者需要打开的文件夹。如果Filename不是可执行文件(.exe或.com)或批处理文件(.bat或.cmd),你必须在条目中使用shellexec标记,由上面的代码可知,这个参数可以包含常量。

Description:

仅在[Run] 段有效。这是条目的描述,可以包含常量,如果没有指明,将会使用默认的描述

Parameters:

程序的可选命令行参数,可以包含常量例如有的控制台程序需要传递参数,这个时候就可以使用该参数了,示例如下:

Filename: "{app}\INIT.EXE";Description:"初始化程序";Parameters:"/t"

注意:如果你的程序不接受参数,传递的参数将会被忽略。

WorkingDir

程序在哪个目录启动。如果这个参数未指定则使用Filename参数中的目录。如果Filename 不包含路径,它将使用默认目录。这个参数可以包含常量。

StatusMsg

仅在[Run] 段有效。由于某些程序在执行期间是不可见的(处于安全或者其他原因),但是又不想让用户以为安装程序没有响应,可以通过该参数指定程序执行时显示在向导页的消息,如果这个参数未指定可是空白的,将使用默认的消息“正在完成安装...”。这个参数可以包含常量。例如下例:

[run]

Filename: "{app}\INIT.EXE";Description:"初始化程序"; StatusMsg:"别急,等一下就好"

则效果如下:

Flags:

这个参数是额外选项设置。多个选项可以使用空格隔开。支持下面的选项:

选项

说明

hidewizard

如果指定了这个标记,向导将在程序运行期间隐藏

nowait

如果指定了这个标记,它将在处理下一个[Run] 条目前或完成安装前不等待进程执行完成,不能与waituntilidle或waituntilterminated 组合使用

postinstall

仅在[Run] 段有效。告诉安装程序在安装完成向导页创建一个选择框,用户可以选中或不选中这个选择框从而决定是否处理这个条目。以前这个标记调用showcheckbox。如果安装程序已经重新启动了用户的电脑 (安装了一个带restartreplace标记的文件或如果[Setup]段的AlwaysRestart指示是yes 引起的),选择框没有机会出现,因此这些条目不会被处理。

runhidden

如果指定了这个标记,它将在隐藏窗口中运行程序。

runmaximized

如果指定了这个标记,将在最大化窗口运行程序或文档

runminimized

如果指定了这个标记,将在最小化窗口运行程序或文档。

shellexec

如果Filename 不是一个直接可执行文件(.exe或.com 文件),这个标记是必需的。当设置这个标记时,Filename可以是一个文件夹或任何已注册的文件类型,当使用shellexec标记时,将不等待,直到生成的进程终止,如果确实需要,则必须添加标记waituntilterminated

skipifdoesntexist

如果这个标记在[Run] 段中指定,如果文件名不存在,安装程序不显示错误消息;如果这个标记在[UninstallRun]段中指定,如果文件名不存在,卸载程序不显示“一些元素不能删除”的警告

skipifnotsilent

仅在[Run] 段有效。告诉安装程序如果安装程序未在后台运行则跳过这个条目

skipifsilent

告诉安装程序如果安装程序在后台运行则跳过这个条目

unchecked

告诉安装程序初始为不选中选择框。如果用户希望处理这个条目,可以通过选取选择框执行,如果postinstall标记未同时指定,这个标记被忽略

waituntilidle

如果指定了这个标记,它将在未输入期间等待,直到进程等待用户输入,而不是等待进程终止。(调用WaitForInputIdle Win32函数。)不能与nowait或waituntilterminted 组合使用

waituntilterminated

如果指定这个标记,将等待到进程完全终止。注意这是一个默认动作 (也就是你不需要指定这个标记),除非你使用了shellexec标记,在这种情况下,如果你要等待,需要指定这个标记。不能与nowait或waituntilidle 组合使用

Inno Setup入门(十一)——完成安装后执行某些程序相关推荐

  1. Inno Setup入门 (软件打包工具)学习笔记 (26课全)

    [] : 里面的就是 段 每个段里面的是属性 AppId : 软件的APPID尽量是唯一的,随机生成,尽量不跟其他软件的ID冲突,这个ID安装之后是要写进系统的注册表的,系统在管理和卸载你的软件的时候 ...

  2. Inno Setup入门(十六)——Inno Setup类参考(2)

    Inno Setup入门(十六)--Inno Setup类参考(2) 这里将接着在前面的基础上介绍如何在自定义页面上添加按钮.按钮属于Tbutton类,该类继承自TbuttonControl,类定义如 ...

  3. Inno Setup入门(十五)——Inno Setup类参考(1)

    Inno Setup入门(十五)--Inno Setup类参考(1) nno setup脚本能够支持许多的类,这些类使得安装程序的功能得到很大的加强,通过对这些类的使用,将会创建出许多让人惊奇的安装程 ...

  4. 用Inno Setup来解决.NetFramework安装问题

    前段时间朋友接了一个项目,具体是开发一个安装在局域网内的软件,这个软件会定时连接局域网内的服务器来更新本地客户端的一些信息,因为在局域网内存在着多种不同的Windows版本,从WindowsXP.Wi ...

  5. 使用Inno Setup软件直接给安装程序和卸载程序加数字签名

    使用Inno Setup软件直接给安装程序和卸载程序加数字签名 宏定义字段 添加 define MySignTools "mysigntools" [Setup]字段 添加 Sig ...

  6. 普元 AppServer 6.5 哑安装后执行启动命令./startup.sh后启动失败

    [问题] AppServer 6.5 哑安装后执行启动命令后启动失败,见下图: [解答] 原因:执行启动命令时,直接在安装包:Primeton_AppServer_6.5_Enterprise_Edi ...

  7. Electron-builder Windows平台打包安装后执行指定的bat脚本(exe)

    1. package.json 文件 build 下的 nsis 和 win 配置 "nsis": {"oneClick": false,"allow ...

  8. win10下的cajviewer 安装后 提示应用程序无法正常启动(0xc0000018)

    这里写自定义目录标题 win10下的cajviewer 安装后 提示应用程序无法正常启动(0xc0000018) 一.常规安装 二.解决无法打开的问题 win10下的cajviewer 安装后 提示应 ...

  9. 基石为勤能补拙的迷宫之旅——第二天(编程语言介绍、Python解释器介绍与安装、执行Python程序的方式和变量)

    一. 编程语言介绍 1.1 机器语言 直接用计算机能理解的二进制指令编写程序,直接控制硬件 1.2 汇编语言 用英文标签取代二进制指令取编写程序,本质也是在直接控制硬件 1.3 高级语言 用人能理解的 ...

最新文章

  1. php是否区分大小写
  2. 机器学习(MACHINE LEARNING)交叉验证(简单交叉验证、k折交叉验证、留一法)
  3. 打包无法识别lombok
  4. BZOJ-2618-凸多边形-CQOI2006
  5. formdata接收数据怎么接收数组_LBT是什么?怎么增加通信可靠性?
  6. 图像处理直方图匹配-巴氏系数原理及实现
  7. 搭建分布式hadoop2.x集群
  8. 网络原理往期考试题+部分详解+最终版
  9. gho镜像安装器linux,Ghost镜像安装器
  10. java 同步原语_你所不知道的有关Java 和Scala中的同步问题
  11. 10寸 nuc972_新唐ARM9之NUC972学习历程之系统的搭建和BSP包的使用
  12. DB2 改变日期格式
  13. 推荐几款微信小程序常用组件库
  14. 【分享】使用快递鸟接入圆通电子面单详解
  15. 轻松解决vscode官网下载慢问题
  16. laravel-excel 中设置列宽,单元格内容垂直和水平都居中
  17. 阿里云云虚拟主机开启安装SSL证书,开启HTTPS访问
  18. solidity msg.sender.transfer发送给谁
  19. 论云深商学院的一路走来
  20. Java日志框架-SLF4J入门 [ LogBack 样例实现 ]

热门文章

  1. 基于大数据分析的安全管理平台技术研究及应用
  2. 成人赛道IT职业教育将迎来“黄金发展期”
  3. 微机原理真题2019年,错题整理
  4. 一般计算机电源都在什么服务,工控服务器电源与普通电脑电源的区别
  5. 安装 pulseaudio
  6. VVC代码阅读(2)compressGOP函数(2)
  7. cad考试题库绘图题答案_CAD考试试题库及参考答案
  8. 技术美术面试问题整理
  9. 关于百度云在线视频加速的解决方法(不用另外软件)
  10. 【论文 CCF C】An Adaptive Box-Normalization Stock Index Trading Strategy Based on Reinforcement Learning