设想有个主程序为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,执袭胡行第二个选项。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)