title author date CreateTime categories
Inno Setup 安装包脚本 Run 的 Flags 标记
lindexi
2019-10-26 08:42:39 +0800
2019-10-25 09:47:40 +0800
安装包 InnoSetup

在制作安装包的时候,可以在 Inno Setup 安装包脚本的 Run 里面添加在解压缩安装包文件完成之后,整个安装结束之前执行指定的命令,是作为定制化最高的内容

有小伙伴觉得安装包脚本比较难写,也不熟悉,也不好调试。推荐的方法是自己写安装辅助 exe 程序,在安装包解压缩完成之后调用辅助安装程序,这样安装逻辑可以放在安装程序,而安装程序本身可以使用自己熟悉的语言开发

在 Inno Setup 安装包脚本,可以在 Run 里面添加执行命令,如下面代码

[Run]
Filename: "{app}\After.bat"; Description: "{cm:LaunchProgram,安装程序}";Flags: runhidden

上面代码就是在解压缩完成之后调用 After.bat 执行批处理,上面的 {app} 就是程序解压缩文件夹,也就是路径是绝对的

而想要执行命令,就会遇到如何执行命令的问题,有一些命令是让用户勾选才执行,如打钩点击完成启动 xx 程序,这部分就需要用到 Flags 的值

在 Flags 多个不同值用空格分开,可选内容如下

32bit

{sys} 常量应用到 32 的系统,将会修改 Filename 和 WorkingDir 的内容,默认在32系统上安装将会应用。这个标记设置之后不能加上 shellexec 内容

64bit

当使用 Filename 和 WorkingDir 参数将会设置里面用到的 {sys} 常量为 64 系统的工作路径,默认在 64 系统上安装将会应用

[Run]
Filename: "{sys}\After.bat"; Description: "欢迎访问我博客 blog.lindexi.com 大量 WPF 博客";Flags: 64bit

此时上面代码的 {sys} 将会根据设置的标记选用 32 或 64 系统文件夹

nowait

执行命令的时候,安装包进程不等待此命令执行完成

不能和 waituntilidlewaituntilterminated 组合

runascurrentuser

用当前用户权限运行

runasoriginaluser

传递权限运行

runhidden

执行命令,但是隐藏命令的界面

主要是调用批处理或命令行程序时,不会显示控制台界面

用上此标记可以在安装完成之前调用批处理程序时,不会让安装包调用时显示控制台界面

runmaximized

让调用的程序最大化

runminimized

让调用的程序最小化

shellexec

用默认程序打开传入的文件,在传入的文件不是可执行文件时,可以加上这个标记

skipifdoesntexist

如果传入的文件不存在,那么什么都不做就跳过

skipifnotsilent

如果当前不是静默安装模式,那么跳过

在 Inno Setup 安装包,可以通过 /silent 命令或 /verysilent 命令进行静默安装

使用 /silent 时,静默安装,但如果又报错,还是会提示,并且有进度条也就是用户能看见进度条界面,加上这个命令可以让安装包自动安装不需要让用户选择

使用 /verysilent 时,静默安装,更强制,不过是否报错,都不会有任何提示,也就是用户什么都没看见,用这个选项可以在后台静默安装。这样就能做到安装包在后台无界面安静安装

skipifsilent

如果当前是静默安装模式,那么跳过

postinstall

将会在安装完成界面创建一个可选按钮,让用户勾选或不勾选,当用户勾选时将会执行。默认选项是勾选

unchecked

配合 postinstall 将会修改默认值是不勾选,也就是点击完成不会执行命令

waituntilidle

等待调用的命令在等待用户输入时才执行下一步

waituntilterminated

等待调用的命令暂停或退出

如果以上内容有不明白的,请点击官方文档 Inno Setup Help

2019-10-26-Inno-Setup-安装包脚本-Run-的-Flags-标记的更多相关文章

  1. inno setup教程解释脚本

    inno setup教程解释脚本 2007-04-08 21:31:36|  分类: 科技-> Inno Setu |  标签:inno   |举报 |字号 订阅     下载LOFTER客户端 ...

  2. Inno Setup的常用脚本

    Inno Setup的常用脚本 分类: VC++神奇理论 2012-12-06 10:07 3234人阅读 评论(2) 收藏 举报 安装不同的目录: [Files] Source: "我的程 ...

  3. Inno Setup执行SQL脚本的方法

    作为和NSIS并立的.两个最流行的免费Windows应用程序安装包制作工具之一,Inno在学习难度上相对要低一些,非常适合对一些简单的桌面程序打包.但对于较复杂的安装过程,或者Web应用程序来说,我个 ...

  4. 分享一个自用的 Inno Setup 软件打包脚本

    此脚本支持打包mysql.安装mysql服务.安装windows服务.操作ini文件.操作注册表.高效压缩文件等功能,基本能满足常用的软件打包需求. ;定义各种常量 #define MyAppName ...

  5. 【Inno Setup】Pascal 脚本 ---- 事件函数

    转载 事件函数 Inno Setup支持以下函数和过程. 1. [安装初始化]该函数在安装程序初始化时调用,返回False 将中断安装,True则继续安装,测试代码如下: function Initi ...

  6. [InnoSetup]Inno Setup软件打包脚本

     脚本由 Inno Setup 脚本向导 生成! ; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档!   #define MyAppName "SFT期货交易系统&quo ...

  7. MySQL 5.6.26几种安装包的区别

    一.MySQL Installer 5.6.26 mysql-installer-community-5.6.26.0.msi, 364.2MBMySQL Installer 提供了简单易用.向导式的 ...

  8. MySQL 5.6.26几种安装包的差别

    http://downloads.mysql.com/archives/community/ 一.MySQL Installer 5.6.26 mysql-installer-community-5. ...

  9. Inno Step 安装包程序 写INI配置文件脚本

    [INI]Filename: "{app}\Config\config.ini"; Section: "config";Key: "name" ...

  10. 2019.10.26 CSP%您赛第三场

    \(CSP\)凉心模拟^_^ --题源\(lqx.lhc\)等各位蒟蒻 题目名称 比赛 传递消息 开关灯 源文件名 \(competition.cpp\) \(message.cpp\) \(ligh ...

随机推荐

  1. D - Tree and Hamilton Path

    题意 给一棵树,问一个排列,使得按顺序走过这些点的路径最长. N<=100000 解法 为了能让每条边被经过的次数达到上界, 我们首先找出重心, 然后容易得出一种排列方案,使得答案为以重心为根的 ...

  2. WIX、Squarespace、WordPress 三者的优劣分别是什么?

    层出不穷的智能建站,模板建站,源码建站,云建站,仿站,各种建站概念都抛洒于红海之中.到底什么样的网站适合自己,什么样的网站值得我们去消费,什么样的网站能长久,是个非常值得思考的问题. 网站建设技术非常 ...

  3. PAT甲级——A1013 Battle Over Cities

    It is vitally important to have all the cities connected by highways in a war. If a city is occupied ...

  4. Chrome 地址栏如何设置显示 http/https 和 www

    首先在 chrome 地址栏输入以下地址 chrome://flags/#omnibox-ui-hide-steady-state-url-scheme-and-subdomains 然后使用 Ctr ...

  5. id 工具: 查询用户所对应的UID 和GID 及GID所对应的用户组

    id 工具是用来查询用户信息,比如用户所归属的用户组,UID 和GID等:id 用法极为简单:我们举个例子说明一下: 语法格式: id  [参数]  [用户名] 至于有哪些参数,自己查一下 id -- ...

  6. Redis源码解析:25集群(一)握手、心跳消息以及下线检测

    Redis集群是Redis提供的分布式数据库方案,通过分片来进行数据共享,并提供复制和故障转移功能. 一:初始化 1:数据结构 在源码中,通过server.cluster记录整个集群当前的状态,比如集 ...

  7. Javascript-new Date() 与 Date() 的区别

    var today1 = Date() //返回一个字符串(string),没有getDate等日期对象方法,内容为当前时间 var today2 = new Date() //返回一日期对象,内容为 ...

  8. animation-fill-mode 之 forwards , transition-timing-function的取值 和 transform属性

    animation-fill-mode 有四个值可选,并且允许由逗号分隔多个值. none 不改变默认行为. forwards 当动画完成后,保持最后一个属性值(在最后一个关键帧中定义). backw ...

  9. 一探前端开发中的JS调试技巧(转)

    有请提示:文中涉及较多Gif演示动画,移动端请尽量在Wifi环境中阅读 前言:调试技巧,在任何一项技术研发中都可谓是必不可少的技能.掌握各种调试技巧,必定能在工作中起到事半功倍的效果.譬如,快速定位问 ...

  10. promise基础和进阶

    本文不对Promise的做过深的解析,只对基础的使用方法,然后会记录一些promise的使用技巧,可以巧妙的解决异步的常见问题. 在过去一直理解的是解决了一直异步回调的坑,但是用了npm async之 ...