inno怎么调用外部的文件?

inno怎么调用外部的文件?,第1张

可以用组建的方式实现

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

DefaultDirName="E:TEST"

AppVersion=1.0

Compression=lzma2/max

ShowLanguageDialog=yes

[components]

Name: mainDescription:"主程序(必选)"Types:full compact customFlags: fixed

Name: dataDescription:"数据文件"Types:full

Name: helpDescription:"帮助文件"Types:full compact

[files]

需要打包的文件

Source: "F:desktopestipmsg.exe"DestDir: "{app}"Components:main

Source: "F:desktopestinit.exe"DestDir: "{app}"Components:main

Source: "F:desktopestin.dat"DestDir: "{app}"Components:data

Source: "F:desktopesthelp.chm"DestDir: "{app}" Components:help

Source: "F:desktopesteadme.txt"DestDir: "{app}"components:helpFlags: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:"别急,等一下就好"

你可以用编写一个无界面的小程序,让你的程序打开文本,打开文本后再退出你的小程序。你在做上边的可选项时,只用运行拍宏拦你的小程序就绝猛可以了。例如运行a.exe,执行第一个选项;运行b.exe,执袭胡行第二个选项。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8215890.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存