Inno Setup软件如何把多个安装包程序打包在一起,并一起运行呢?我看你的问题你会了吧,谢谢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Inno Setup软件如何把多个安装包程序打包在一起,并一起运行呢?我看你的问题你会了吧,谢谢相关的知识,希望对你有一定的参考价值。

INNO SETUP先向导创建脚本
[Files]
Source: "你要打包的软件目录\软件1.exe"; DestDir: "app"; Flags: ignoreversion
Source: "你要打包的软件目录\软件2.exe"; DestDir: "app"; Flags: ignoreversion
添加以下代码即可,如果系统为64为,Flags: 64bit
[Run]
Filename:“"app\软件1.exe”;Flags: ignoreversion
Filename:“"app\软件2.exe”;Flags: ignoreversion
若是安装过程中同时启动两个程序,写个.bat文件,start:两个程序,在INNO SETUP 里执行.bat即可。也可使用Flags完成追问

你好 我是新手 如何写.bat文件呢 把多个.exe程序

追答

同一文件件下:
D:\安装包所在文件件\
@echo on或@echo off
cd D:\安装包所在文件件\
start 软件1.exe
start 软件2.exe
不同目录下的两个程序
start d:\目录1\软件1.exe
start d:\目录2\软件1.exe

参考技术A 在run阶段添加运行就可以了追问

您好,想让多个安装包程序都打包在一起,当安装时直接安装一个安装包就行,能举个例子吗?新手 就让两个安装包.exe程序打包在一起。

Inno Setup 如何读写文件

  软件安装的实质就是拷贝,对于简单的打包当然不需要考虑修改某(配置)文件。通过inno修改文件的目的在于把安装时相关信息写入文件中,提供其它应用的读取,而这些信息也只能在安装时才能确定,比如安装用户选择的安装目录,或者是通过自定义界面输入的端口号等信息。所以其它与安装无关的信息可以尽量不要使用inno来写入文件,这样只是在增加工作量。

  Inno修改文件内容的方式有很多。我自己总结的有以下三种方式:通过[INI]段来直接写入配置信息,调用外部程序来读写文件,使用内置读写文件函数来修改文件。

1、[INI]段方式写

  Inno本身提供了对ini文件的写入操作。在[INI]段里面加入下面的代码。

Filename: "{app}\\MyProg.ini"; Section: "1"; Key: "InstallPath"; String: "{app}" ;Flags: uninsdeletesection

Filename: "{app}\\MyProg.ini"; Section: "2"; Key: "InstallPath"; String: "{app}" ;Flags: uninsdeletesection

Filename: "{app}\\MyProg.ini"; Section: "3"; Key: "InstallPath"; String: "{app}" ;Flags: uninsdeletesection

Filename: "{app}\\MyProg.ini"; Section: "4"; Key: "InstallPath"; String: "{app}" ;Flags: uninsdeletesection

Filename: "{app}\\MyProg.ini"; Section: "5"; Key: "InstallPath"; String: "{app}" ;Flags: uninsdeletesection

  Filename是你希望安装程序修改的 .INI 文件的名字。如果这个参数是空白的,它将写入到系统的 Windows 目录中的 WIN.INI 中,其中的{app}是用户在安装向导中的选择目标位置页中选定的应用程序目录。

  Section是要创建的用于放置 INI 条目的区段名。

  Key是要设置的键名。如果这个参数未指定或是空白的,将不创建键。

  Sring则是与Key对应的值,合成一个键值对。

  Flags标志了uninsdeletesection,顾名思义在卸载时将会删除这个区段。

安装完毕后生成的ini文件内容如下:

 

这种ini文件可以被大部分编程语言所识别,如C语言的GetPrivateProfileString、 WritePrivateProfileString就是专门读写ini格式文件的。

 

2、通过inno调用外部程序来读写文件

  遇到修改非ini格式文件,如xml文件,并且又不希望使用pascal语言来完成时,选择自己最得心应手的语言来完成写文件操作最佳。但是现在的问题是你所写的那个写文件的程序该怎么知道软件安装时用户的一些信息呢,比如安装所在目录,用户在界面上输入的apache端口数据。答案是通过命令行传参的方式!

  假设我用来写文件的应用程序叫wf.exe,首先需要将它和软件一起打包,之后在[run]段可以这样启动:Filename: "{app}\\wf.exe"; Description:"修改文件"; Parameters:{code:getParams}; StatusMsg:"正在配置信息…"; Flags: runhidden

  上面的Parameters是给wf.exe运行指定命令行参数,{code:getParams}表示该参数是通过code段里面的叫getParams函数返回得到。而getParams函数的定义如下:

function getParams(Param: string): string;

begin

  Result := \'"\' + ApacheEdit.Text + \'" "\' +  \'{app}\' + \'"\';

end;

  其中{app}作为参数之一将安装目录告诉了wf.exe,ApacheEdit.Text是获取ApacheEdit里面的文本,而ApacheEdit是一个自定义编辑框,用来接收安装时用户输入的apache端口。wf.exe得到了安装目录,也可以知道用户在界面上输入的一些信息,接下来怎么实现就看你怎么去编写wf.exe了。另外注意的是getParams返回的字符串格式,对于wf.exe需要多个参数时,返回的每个参数之间都是用双引号来隔开,不使用空格是因为很多路径存在空格的情况,这样在wf.exe里面将得到错误的参数信息。

 

3、通过inno提供的函数(pascal语言)来实现修改文件

  读写文件的操作最普遍的做法就是读取文件里面所有的内容,根据字符串匹配来进行合适的修改,最后再写入文件。对于pascal语言也不例外,而其中最主要的难点就是如何熟练的使用inno里面提供的字符串操作函数了。针对各种情况下的写文件操作详见以下传送:http://www.cnblogs.com/hbcppcdr/p/6236252.html

以上是关于Inno Setup软件如何把多个安装包程序打包在一起,并一起运行呢?我看你的问题你会了吧,谢谢的主要内容,如果未能解决你的问题,请参考以下文章

inno setup安装包制作问题?

程序打包(安装包制作,Inno setup打包教程,QT程序打包)

程序打包(安装包制作,Inno setup打包教程,QT程序打包)

程序打包(安装包制作,Inno setup打包教程,QT程序打包)

Inno Setup打包软件怎么把安装路径改为直接安装到D盘

解决Inno Setup制作安装包无法创建桌面快捷方式的问题