论坛风格切换切换到宽版
  • 4838阅读
  • 5回复

InnoSetup 调用exe文件 [复制链接]

上一主题 下一主题
离线ricetendto2
 

发帖
31
金钱
310
威望
31
只看楼主 倒序阅读 0 发表于: 2015-03-05
       各位大大,小弟借此贴拜个晚年,祝大家羊年洋洋得意,喜气洋洋,万事如意,阖家幸福,工作顺利,天天快乐!!!
    顺便,小弟有个问题请教,我使用Innosetup打包,需要打包的文件中包含一个.exe文件,请问我如何设置,在安装过程中,运行此.exe文件时,能指定该安装程序的路径? 比如说,xxx.exe,默认安装路径为C:\Program Files\xxx,我的安装路径为D:\xxxxxxxx,我想要将.exe文件也安装到D:\xxxxxxxx下,请问怎么搞?
离线lovelost

发帖
140
金钱
1060
威望
106
只看该作者 1 发表于: 2015-03-05
看看注册表里或什么地方有没有记录xxx.exe的安装路径,然后就可以弄了。
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 2 发表于: 2015-03-07
这个完全取决于那个 exe 程序本身。你好好研究一下那个 exe 程序,看它是否支持命令行参数,也就是说是否可以用命令行参数来指定它的安装路径。
如果那个 exe 程序支持这样的命令行参数,那么你调用它时也加上参数并在参数中设置为你想要的路径。
离线ricetendto2

发帖
31
金钱
310
威望
31
只看该作者 3 发表于: 2015-03-08
回 2楼(gnatix) 的帖子
gnatix:这个完全取决于那个 exe 程序本身。你好好研究一下那个 exe 程序,看它是否支持命令行参数,也就是说是否可以用命令行参数来指定它的安装路径。如果那个 exe 程序支持这样的命令行参数,那么 .. (2015-03-07 15:58) 

好的,谢谢虎老大,我尝试下
离线ricetendto2

发帖
31
金钱
310
威望
31
只看该作者 4 发表于: 2015-03-08
回 2楼(gnatix) 的帖子
gnatix:这个完全取决于那个 exe 程序本身。你好好研究一下那个 exe 程序,看它是否支持命令行参数,也就是说是否可以用命令行参数来指定它的安装路径。如果那个 exe 程序支持这样的命令行参数,那么 .. (2015-03-07 15:58) 

exe文件本身就是用Innosetup 打包生成的,是否支持命令行参数? 参数是 -D "C:\xxx\xxx" 吗?
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 5 发表于: 2015-03-08
InnoSetup 制作的安装程序的命令行参数详见帮助文件。

安装命令行参数
安装程序接受可选的命令行参数。这些对于系统管理员以及其它程序调用安装程序时有用。

/SP-
在安装开始时禁用“这将安装... 你想继续吗?”的提示,当然,如果 [Setup] 段的指令 DisableStartupPrompt 设为 yes 时,这将无效。

/SILENT , /VERYSILENT
告诉安装程序后台或完全后台运行。当安装程序在后台运行时,向导和背景窗口将不显示,但安装进度窗口显示。当安装程序在完全后台安装时,这个安装进度窗口也不显示。其它的事件被象正常安装一样,例如安装期间显示错误消息框,以及启动时提示 (如果你没有在 DisableStartupPrompt 或上面说明的“/SP-”命令行选项中指定)。

如果需要重新启动,以及未使用“/NORESTART”命令行 (看下面),并且安装程序在后台运行,将显示“立即重新启动吗”消息框。如果在完全后台安装模式,将在不询问的情况下重新启动。

/SUPPRESSMSGBOXES
命令安装程序可禁止消息框。只在用“/SILENT”和“/VERYSILENT”编译时有效。

在这种情况下默认会有一个选择:

在“保留新文件吗”中会选择是。
在“文件存在,确认覆盖。”中会选择否。
在中断/重试情况下会选择中断。
在重试/取消情况下会选择取消。
在 DiskSpaceWarning/DirExists/DirDoesntExist/NoUninstallWarning/ExitSetupMessage/ConfirmUninstall 情况下会选择是 (继续)。
在 FinishedRestartMessage/UninstalledAndNeedsRestart 情况下会选择是 (重启)。
有 5 种消息不能禁止:

中断安装程序消息框。
“退出安装程序吗”消息框。
当安装程序需要在新磁盘安装但新磁盘未找到时显示的 FileNotInDir2 消息框。
在安装程序或卸载程序不能读取命令行参数之前显示的任何 (错误) 消息。
用 [Code] 段支持函数 MsgBox 显示的消息框。
/LOG
使安装程序在用户的临时目录创建一个记录安装程序安装期间 [Run] 段详细动作的日志文件。这对于安装调试有帮助。例如,在你认为一个文件应该被替换,但你怀疑它没有被替换时 (反之亦然),该日志文件将告诉你这个文件是否确实被跳过,并且为什么会跳过。

日志文件若要当前日期的唯一名字创建(它不覆盖或添加到现有的文件中)。

日志文件中包含的信息是用自然语言,非常容易看懂,对于用户来说不会难以理解。也不用进行机器分析;文件的格式是不预先通知服务改变。

/LOG= " 文件名 "
与 /LOG 相同,另外它还允许你为日志文件指定一个固定的路径/文件。如果相同的名字在路径中已经存在则将被覆盖,如果不能创建文件,安装程序将带错误消息中断。

/NOCANCEL
通过禁用“取消”按钮和忽略在“关闭”按钮的单击动作,来防止用户在安装进行时取消操作,与 /SILENT 或 /VERYSILENT 一起使用有用。

/NORESTART
Prevents Setup from restarting the system following a successful installation, or after a Preparing to Install failure that requests a restart. Typically used along with /SILENT or /VERYSILENT.

/RESTARTEXITCODE= 退出代码
Specifies a custom exit code that Setup is to return when the system needs to be restarted following a successful installation. (By default, 0 is returned in this case.) Typically used along with /NORESTART。请查阅安装退出代码。

/CLOSEAPPLICATIONS
Instructs Setup to close applications using files that need to be updated by Setup if possible.

/NOCLOSEAPPLICATIONS
Prevents Setup from closing applications using files that need to be updated by Setup. If /CLOSEAPPLICATIONS was also used, this command line parameter is ignored.

/RESTARTAPPLICATIONS
Instructs Setup to restart applications if possible. If Setup didn't close these applications (for example because /NOCLOSEAPPLICATIONS was used), this command line parameter is ignored.

/NORESTARTAPPLICATIONS
Prevents Setup from restarting applications. If /RESTARTAPPLICATIONS was also used, this command line parameter is ignored.

/LOADINF= " 文件名 "
告诉安装程序在选中命令行后从指定的文件载入设置。这个文件可以是使用下面说明的“/SAVEINF=”命令提供的。

如果文件名包含空格,不要忘记使用引号。

/SAVEINF= " 文件名 "
告诉安装程序保存安装设置到指定的文件。

告诉安装程序保存安装设置到指定的文件。

/LANG= 语言
指定要使用的语言。指定的语言是 [Languages] 段条目中指定的语言内部名字。

当使用了一个有效的 /LANG 参数时,选择语言对话框将被禁用。

/DIR= " x :\ 目录名 "
不考虑在选择目标位置向导页中显示的默认目录名。必须指定一个完整的路径。 May include an "expand:" prefix which instructs Setup to expand any constants in the name. For example: '/DIR=expand:{pf}\My Program'.

/GROUP= " 文件夹名 "
不考虑在选择开始菜单文件夹向导而中显示的默认文件夹名。May include an "expand:" prefix, see '/DIR='. 如果 [Setup] 段指令 DisableProgramGroupPage 设为 yes,这条命令行参数将被忽略。

/NOICONS
告诉安装程序在初始时选中选择开始菜单文件夹向导页中的“不创建任何图标”选择框。

/TYPE= 类型名
不考虑默认安装类型。

If the specified type exists and isn't a custom type, then any /COMPONENTS parameter will be ignored。

/COMPONENTS= " 用逗号分隔的组件名列表 "
不考虑默认组件设置。使用这个命令行参数使安装程序自动选择一个自定义安装类型。

Only the specified components will be selected; the rest will be deselected。

If a component name is prefixed with a "*" character, any child components will be selected as well (except for those that include the dontinheritcheck flag). If a component name is prefixed with a "!" character, the component will be deselected。

This parameter does not change the state of components that include the fixed flag。

示例:
Deselect all components, then select the "help" and "plugins" components:
/COMPONENTS="help,plugins"
示例:
Deselect all components, then select a parent component and all of its children with the exception of one:
/COMPONENTS="*parent,!parent\child"
/TASKS= " 用逗号分隔的任务名列表 "
指定初始应该是选中状态或不选中状态的 任务 列表。要取消任务的选中,用“!”字符作为名字的前缀。

只有指定的任务 (以及它的子任务) 将被选中;其余任务不被选中。如果你想保持默认的任务设置,只选中/不选中某些任务,请使用 /MERGETASKS。

If a task name is prefixed with a "*" character, any child tasks will be selected as well (except for those that include the dontinheritcheck flag). If a task name is prefixed with a "!" character, the task will be deselected。

示例:
不选中所有任务,然后选择“desktopicon”和“fileassoc”任务:
/TASKS="desktopicon,fileassoc"
示例:
不选中所有任务,然后选择上级任务项目,但它的子任务中的某个不选中:
/TASKS="*parent,!parent\child"
/MERGETASKS= " 用逗号分隔的任务名列表 "
像 /TASKS 参数,除指定的任务将被与已有的任务集合并外,其它按默认选择。

如果 UsePreviousTasks 设为 yes,指定的任务将在上一次任务回复后被选中/不选中。

示例:
保持选定任务的默认设置,但另外选中“desktopicon”和“fileassoc”任务:
/MERGETASKS="desktopicon,fileassoc"
示例:
保持选定任务的默认设置,但不选中“desktopicon”任务:
/MERGETASKS="!desktopicon"
/PASSWORD= 密码
指定要使用的密码。如果 [Setup] 段指令 Password 未设置,这条命令行参数被忽略。

当指定无效的密码时,这个命令行参数也被忽略。