inno setup5是否可以解决这样的问题 ( 积分: 30 )

  • 主题发起人 主题发起人 mynone
  • 开始时间 开始时间
M

mynone

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在用inno setup5来做,安装完的时候,只能马上运行某一个主的可执行文件.
如果程序中有几个exe文件(比如aa.exe,bb.exe,cc.exe),
我想安装完的时候,马上按顺序执行cc.exe,aa.exe,bb.exe它们。
 
我现在用inno setup5来做,安装完的时候,只能马上运行某一个主的可执行文件.
如果程序中有几个exe文件(比如aa.exe,bb.exe,cc.exe),
我想安装完的时候,马上按顺序执行cc.exe,aa.exe,bb.exe它们。
 
继续中,问题没搞定.
是否有其他安装软件支持呢?
 
肯定可以!!!我用过....4就可以
 
在application main executeable file中只能选一个exe啊!它不能多个啊!
可不可以具体一点啊!
谢谢!
 
直接在脚本里run段下面加入类似的代码就行:
[Run]
Filename: "{app}/Set3050.exe";
Flags: runminimized
Filename: "{app}/Set3060.exe";
Flags: runminimized
Filename: "{app}/Set3070.exe";
Flags: runminimized
Flags: runminimized表示最小化运行,具体可以根据你的需要自行设置别的参数
 
给你inno setup 4 RUN段的help 中文的 够清楚了吧。。。。
[Run] 段是可选的,用来指定程序完成安装后、在安装程序显示最终对话框之前要执行的程序数,[UninstallRun] 段也可样是可选的,用来指定在卸载第一步要执行的程序数。除在下面有注释的外,两个段用相同的语法。

程序按它们在脚本中的出现顺序执行。当处理 [Run]/[UninstallRun] 段条目时,安装程序/卸载程序将在处理下一个任务之前等待,直到程序终止。除非使用了 nowait,shellexec 或 waituntilidle 标记。

注意,按默认,如果 [Run] 段队列文件中的一个正在执行的程序要在下一次重新启动后替换 (通过调用 MoveFileEx 或通过修改 wininit.ini),安装程序将进行侦测,并在安装结束后提示用户重新启动电脑。如果你不想这么做,设置 RestartIfNeededByRun 指示为 no。

下面是 [Run] 段的一个示例。

[Run]
Filename: "{app}/INIT.EXE";
Parameters: "/x"
Filename: "{app}/README.TXT";
Description: "查看自述文件";
Flags: postinstall shellexec skipifsilent
Filename: "{app}/MYPROG.EXE";
Description: "运行应用程序";
Flags: postinstall nowait skipifsilent unchecked

下列是所支持的参数列表:
Filename (必需)
描述:
要执行的程序,或要打开的文件/文件夹。如果 Filename 不是一个可执行文件 (.exe 或 .com) 或批处理文件 (.bat 或 .cmd),你必须在条目中使用 the shellexec 标记。这个参数可以包含常量。
示例:
Filename: "{app}/INIT.EXE"

Description
描述:
仅在 [Run] 段有效。这是条目的描述,可以包含常量。这个描述用于带 postinstall 标记的条目。如果条目的描述未指定,安装程序将使用一个默认描述。这个描述根据条目的类型(normal 或 shellexec)。
示例:
Description: "查看自述文件"

Parameters
描述:
程序的可选命令行参数,可以包含常量。
示例:
Parameters: "/x"

WorkingDir
描述:
指定程序在哪个目录启动。如果这个参数未指定或是空白的,它使用 Filename 参数中的目录。如果 Filename 不包含路径,它将使用默认目录。这个参数可以包含常量。
示例:
WorkingDir: "{app}"

StatusMsg
描述:
仅在 [Run] 段有效。确定程序执行时显示在向导页的消息。如果这个参数未指定可是空白的,将使用默认的消息“正在完成安装...”。这个参数可以包含常量。
示例:
StatusMsg: "正在安装 BDE..."

RunOnceId
描述:
仅在 [UninstallRun] 段有效。如果已经安装了相同的应用程序,卸载日志文件中的“run”条目将被复制一个副本。通过分配一个字符给 RunOnceId,可以确保在卸载期间特殊的 [UninstallRun] 条目只执行一次。例如,如果卸载日志中有两个或更多“run”条目用“Delse
rvice”的 RunOnceId 设置,只执行最后一个用“Delse
rvice”的 RunOnceId 设置的条目;其它的将被忽略。注意 RunOnceId 比校是区分大小写的。
示例:
RunOnceId: "Delse
rvice"

Flags
描述:
这个参数是额外选项设置。多个选项可以使用空格隔开。支持下面的选项:
hidewizard
如果指定了这个标记,向导将在程序运行期间隐藏。
nowait
如果指定了这个标记,它将在处理下一个 [Run] 条目前或完成安装前不等待进程执行完成。不能与 waituntilidle 组合使用。
postinstall
仅在 [Run] 段有效。告诉安装程序在安装完成向导页创建一个选择框,用户可以选中或不选中这个选择框从而决定是否处理这个条目。以前这个标记调用 showcheckbox。
如果安装程序已经重新启动了用户的电脑 (安装了一个带 restartreplace 标记的文件或如果 [Setup] 段的 AlwaysRestart 指示是 yes 引起的),选择框没有机会出现,因此这些条目不会被处理。
[Files] 段条目中的 isreadme 标记现在已被废弃。如果编译器带 isreadme 标记的条目,它将从 [Files] 段条目中忽略这个标记,并在 [Run] 段条目列表的开头插入一个生成的 [Run] 条目。这相生成的 [Run] 段条目运行自述文件,并带有 shellexec、skipifdoesntexist、postinstall 和 skipifsilent 标记。
runhidden
如果指定了这个标记,它将在隐藏窗口中运行程序。请在执行一个要提示用户输入的程序中不要使用这个标记。
runmaximized
如果指定了这个标记,将在最大化窗口运行程序或文档。
runminimized
如果指定了这个标记,将在最小化窗口运行程序或文档。
shellexec
如果 Filename 不是一个直接可执行文件 (.exe 或 .com 文件),这个标记是必需的。当设置这个标记时,Filename 可以是一个文件夹或任何已注册的文件类型 -- 包括 .hlp,.doc 等。该文件将用用户系统中与这个文件类型关联的应用程序打开,与在资源管理器双击文件的方法是相同的。
当 Filename 中使用一个文件夹名时,推荐你在它后面加入一个反斜框字符 (例如“{group}/”),以确保不执行一个名字相同的程序。
使用 shellexec 标记有一个缺点: 它不能等待,直到进程终止。因此,它的工作方式就象指定了 nowait 标记。
skipifdoesntexist
如果这个标记在 [Run] 段中指定,如果文件名不存在,安装程序不显示错误消息。
如果这个标记在 [UninstallRun] 段中指定,如果文件名不存在,卸载程序不显示“一些元素不能删除”的警告。
skipifnotsilent
仅在 [Run] 段有效。告诉安装程序如果安装程序未在后台运行则跳过这个条目。
skipifsilent
仅在 [Run] 段有效。告诉安装程序如果安装程序在后台运行则跳过这个条目。
unchecked
仅在 [Run] 段有效。告诉安装程序初始为不选中选择框。如果用户希望处理这个条目,可以通过选取选择框执行。如果 postinstall 标记未同时指定,这个标记被忽略。
waituntilidle
如果指定了这个标记,它将在未输入期间暂停,直到进程等待用户输入,而不是等待进程终止。(调用 WaitForInputIdle Win32 函数。) 不能与 nowait 组合使用。
示例:
Flags: postinstall nowait skipifsilent
 
先谢谢楼上的。
1,如果我这样在RUN下面添几个*.exe后,安装完后。那么在--开始---程序--(显示出来的不是可执行文件,而是一个安装包啊!)
2,如果要写注册表的某个键值,是不是在[INI]中,具体要怎么写啊!
 
在开始->程序里显示的内容放到icon段里
写注册表在registry段。。。。。
-_-! 你的邮箱多少 我把inno setup 4 的HELP给你发过去
或者你去网上下载,去天空搜索应该有很多的 www.skycn.com
 
谢谢hs-kill。
rd1@goodmedia.com.hk
 
我的版本是5.0的没有registry段,但有[ini]段,应该一样的吧!
这个版本也没有 [UninstallRun] 段,是否手动添加就可以啊!
 
应该不一样吧
这是你希望安装程序在用户系统中设置 .INI 文件条目的可选段。


这里是 [INI] 段的例子:


[INI]
Filename: "{win}/MYPROG.INI";
Section: "InstallSettings";
Flags: uninsdeletesection
Filename: "{win}/MYPROG.INI";
Section: "InstallSettings";
Key: "InstallPath";
String: "{app}"


下列是所支持的参数列表:


Filename (必需)

描述:
你希望安装程序修改的 .INI 文件的名字,可以包含常量。如果这个参数是空白的,它写入到系统的 Windows 目录中的 WIN.INI 中。
示例:
Filename: "{win}/MYPROG.INI"


Section (必需)

描述:
要创建的用于放置 INI 条目的区段名,可以包含常量。

示例:
Section: "Settings"



Key

描述:
要设置的键名,可以包含常量。如果这个参数未指定或是空白的,将不创建键。
示例:
Key: "Version"


String

描述:
分配给键的值,可以使用常量。如果这个参数未指定,将不创建键。
示例:
String: "1.0"


Flags

描述:
这个参数是额外选项设置。多个选项可以使用空格隔开。支持下面的选项:


createkeyifdoesntexist
仅在如果键名不存在时分配到键。
uninsdeleteentry
当程序卸载时删除条目。这可以写 uninsdeletesectionifempty 标记组合使用。
uninsdeletesection
当程序卸载时,删除条目所在的整个区段。这对于在 Windows 它自身包含的 INI 文件 (象一些 WIN.INI 中的区段) 中使用,这具有很大的危险性。你应该只在应用程序私有的文件中使用这个标记。
uninsdeletesectionifempty
等同于 uninsdeletesection,但只在没有键剩余的情况下删除段,它可以与 uninsdeleteentry 标记组合使用。


示例:
Flags: uninsdeleteentry
这是4的ini段的解释
 
接受答案了.
 
后退
顶部