InnoSetup的使用教程(二)

[Files] 段
这个段是可选的,但对于大多数安装程序来说是必不可少的。在这里定义了安装程序需要复制到用户的系统当中的全部文件。
在安装期间,卸载程序和数据被自动的复制到应用程序的目录当中去,因此你不必手工的将它们添加到 [Files] 段。

这是一个 [Files] 段的示例:

[Files]
Source: "CTL3DV2.DLL"; DestDir: "{sys}"; CopyMode: onlyifdoesntexist; Flags: uninsneveruninstall
Source: "MYPROG.EXE"; DestDir: "{app}"
Source: "MYPROG.HLP"; DestDir: "{app}"
Source: "README.TXT"; DestDir: "{app}"; Flags: isreadme
下面列出了支持的参数:

Source (必需的)

说明:
“源文件”的名称,如果没有提供全程路径时编译器会根据安装程序的源目录的路径预先设定号路径。

允许通配符,根据通配符可以在一项里面简单的指定一组文件。当使用了通配符的时候,所有匹配的文件使用相同的可选项。

当标记(flag) external 被指定的时候,Source 必须是一个在发布介质或用户的系统中已经存在的文件(或带有通配符)的全程路径。(例如“{src}/license.ini”).

示例:
Source: "MYPROG.EXE"
DestDir (必需的)

说明:
这个是文件将要被安装到用户的系统当中去的目录。它几乎总是以一个目录常量开始的。如果指定的路径不存在于用户的系统中,它将会被自动的创建。

示例:
DestDir: "{app}"
DestName

说明:
这个常数为将要安装到用户的系统中的文件指定一个新的名字。在默认的情况下,安装程序使用的是同 Source 参数一样的文件名,因此在多数情况下不需要指定该参数。

示例:
DestName: "MYPROG2.EXE"
CopyMode

默认:
normal

说明:
“复制模式”,指定文件复制的规则,必须是下列规则之一。

normal
这是最常使用的选项。如果文件已经存在于用户的系统当中并且比要复制的文件的版本更新时(由文件的版本信息决定),安装程序将会向用户提出询问是否要替换掉已经存在的文件。如果已经存在的文件不包含文件的版本信息,它将会被覆盖而不会向用户询问。

参见这个标题下面的注意中关于版本检查的重要说明。

onlyifdoesntexist
只有当用户的系统中的文件不存在时才复制文件。

alwaysoverwrite
总是覆盖已经存在的文件,甚至如果已经存在的文件比被安装的文件的版本更新的情况下也是如此。对于共享的系统文件永远也不要这样做!

alwaysskipifsameorolder
类似于 normal, 不同之处是如果遇到已经存在的文件不会向用户提出询问。当这个模式被使用时,更新的一经存在的文件时从来不会被替换的。

示例:
CopyMode: normal
Attribs

说明:
为文件指定附加的“属性”,它可以包括一个或多个属性,它们是:readonly, hidden, system. 如果没有指定这个参数,安装程序不会给文件指派任何特殊的属性。

示例:
Attribs: hidden system
FontInstall

说明:
告诉安装程序需要被安装的文件是一个字体文件,该值是被保存到注册表或 WIN.INI 文件中的字体名称,这个名称必须严格地和在资源管理器中双击字体文件看到的名称相对应。注意,安装程序会自动的在字体名称的末尾加上“(TrueType)”。

如果这个字体文件不是一个 TrueType 字体,你必须在 Flags 参数中指定 fontisnttruetype 标记。

建议在安装字体到 {fonts} 目录的时候使用复制模式参数 onlyifdoesntexist 和标记(flag)参数 uninsneveruninstall.

示例:
Source: "OZHANDIN.TTF"; DestDir: "{fonts}"; FontInstall: "Oz Handicraft BT"; CopyMode: onlyifdoesntexist; Flags: uninsneveruninstall
Flags

说明:
“标记”,这个参数是一个附加的选项集合,可以多个选项共同使用,使用空格分开多个选项。下面列出了被支持的选项:

comparetimestampalso
(专门用途) 如果要被复制到用户系统的文件已经存在于用户的系统当中并且它们具有相同的版本信息,告诉安装程序进行时间戳(文件的日期时间属性)的比较。 在正常情况下安装程序不会覆盖已经存在的文件,但是当使用了这个标记的时候, 如果已存在的文件的时间戳比它的版本信息还要旧,安装程序在安装文件时就会覆盖它。当复制模式不是 normal 或 alwaysskipifsameorolder 这两者之一时该标记不起作用。

confirmoverwrite
当文件已经存在每个文件在复制之前始终向用户提出询问。

deleteafterinstall
告诉安装程序象平常一样复制文件,但是当安装程序结束(或被中止)之后将这个文件删除。如果释放脚本的 [Run] 段所执行的程序所需要的临时的数据时这个选项是很有用的。

此标记不能和下列标记在一起组合使用: isreadme, regserver, regtypelib, restartreplace, sharedfile, uninsneveruninstall.

external
此标记告诉 Inno Setup 不要将由 Source 参数指定的文件编译进安装程序文件中,在复制文件的时候由发布介质或用户的系统中已经存在文件代替。要获得更多详细的信息请参见 Source 参数的说明。

fontisnttruetype
如果 FontInstall 参数指定的是一个 非 TrueType 字体则使用此标记。

isreadme
该文件是“自述(README)”文件,安装程序中只有一个文件能够使用此参数。当有一个文件使用了这个参数时,用户将被询问是否愿意在安装程序结束时查 看自述文件,如果选择了是,安装程序将会根据文件的类型用默认的程序打开这个文件,基于这个原因,自述文件应该具有象 .txt, .wri 或 .doc. 这样的扩展名。

注意如果安装程序要重新启动用户的计算机(比如安装了一个带有 restartreplace 参数的文件或在 [Setup] 段中的 AlwaysRestart
关键字的值为 yes),安装程序就不会向用户询问是否要查看自述文件。

overwritereadonly
始终覆盖一个只读 (read-only) 文件,如果没有这个参数,当一个已存在的只读文件要被覆盖时安装程序将会询问用户。

regserver
注册 OLE 服务器 (或称作 ActiveX 控件)。如果设置了此标记,安装程序将查找并执行 DLL/OCX 的 DllRegisterServer 输出,卸载程序调用 DllUnregisterServer. 当结合 sharedfile 标记一起使用,只有参照技术器的值归零时 DLL/OCX 才可能百取消登记 (unregistered).

要获得更多的详细信息请参见此标题最后的 注意。

regtypelib
注册类型库 (.tlb). 卸载程序将会取消注册类型库 (除非指定了 uninsneveruninstall 标记). 就像 regserver 标记那样,如果结合 sharedfile 标记一起使用,这个文件只有参照计数器的值归零时才可能被卸载。

要获得更多的详细信息请参见此标题最后的 注意。

restartreplace
此标记通常用于替换系统核心文件。如果文件已经预先存在并发现它已经被锁定结果导致安装程序无法替换该文件,安装程序就会注册此文件(对于 Windows 和 Windows NT 分别使用 WININIT.INI 和函数 MoveFileEx)在下次启动系统时被替换。当遇到这种情况,在安装过程结束时用户将被提示重新启动计算机。

要保持 Windows95/98 和 3.1 的兼容性,使用了此标记的项不应该使用长文件名,只能支持“8.3”格式的文件名。(Windows NT 和 2000 则没有此限制。)

重要提示:在 Windows NT/2000 下只有当用户具有管理员权限时使用 restartreplace 标记才可以成功的替换使用中的文件。如果用户没有管理员权限,将会显示如下的信息:“RestartReplace failed: MoveFileEx failed; code 5.”,因此,当使用 restartreplace 标记时强烈建议让你的安装程序需要管理员权限,在 [Setup] 段里面设置 "AdminPrivilegesRequired=1"。

sharedfile
(仅 Windows 95/NT 4+) 使用 Windows 的共享文件计数功能 (位于注册表的 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion /SharedDLLs). 这样会使应用程序之间能够共享一个文件,不用担心在不注意的情况下会删除文件。在每次安装共享文件的时候,与这个文件相对应的“参照计数器”的值就会加 一,而每次应用程序被卸载的时候,参照计数器的值就会减一,如果参照计数器的值归零的时候,该共享文件就会被删除(在用户确认的情况下)。

绝大多数被安装到 Windows 系统目录下的文件都应当使用这个标记,包括 .OCX 和 .DPL (Delphi 3 package) 文件。不使用这个标记的仅有的一个例外是 MFC DLLs. 作为替代,应该在复制模式中使用 onlyifdoesntexist ,并结合 uninsneveruninstall 标记,或者是如果安装单独发布的 MFC DLL 的最近的版本,则使用复制模式 alwaysskipifsameorolder ,并结合使用标记 uninsneveruninstall 和 restartreplace.

当安装程序被运行在一个 NT 3.51 系统时,被安装的带有此标记的文件就再也不会被删除了。

skipifsourcedoesntexist
只有当 external 标记也使用了的时候这个标记才会有用。它会告诉安装程序如果源文件不存在的话则无任何提示的(静静的)跳过该项,如果没有使用这个标记则会显示一个错误消息。

uninsneveruninstall
从来不会卸载这个文件。此标记应当被保守地使用,而且通常它是和复制模式 onlyifdoesntexist 在一起结合使用。意思是用于安装一个特别公共的共享文件,就像 CTL3DV2.DLL 或者一个 MFC DLL, 你不应该用卸载程序去删除这个文件的原因是以后其它的应用程序也要使用到它。

示例:
Flags: isreadme
公共参数

注意

如果安装程序正在安装一个已经存在于用户的系统当中的 16 位的 DLL 或者 EXE 文件,两个文件的版本信息是不会相比较的,已存在的文件将始终被覆盖(除非当复制模式的参数是 onlyifdoesntexist),这是由一个 Windows 的限制决定的,32 位的程序就像 Inno Setup 只能读取 32 位可执行文件的版本信息。

在安装程序的最后一步安装程序会注册所有的带有 regserver 或 regtypelib 标记的文件。然而,如果 [Setup] 段关键字 AlwaysRestart 的值是 yes, 或如果有文件带有 restartreplace 标记,全部的文件将会在下次启动的时候注册(在 Windows 注册表的 RunOnce 创建一项)。

当带有 .HLP 扩展名(Windows 的帮助文件)的文件被卸载的时候,其对应的 .GID 和 .FTS 文件同样会被自动删除。

[Icons] 段
这个段是可选的,但对于大多数安装程序来说是必不可少的。它定义了所有的安装程序要在用户系统中创建的程序管理器/开始菜单的图标。它也能被用来在其它的位置创建应用程序图标(快捷方式),比如就像桌面。
卸载图标是由安装程序内部创建的,这样一来你就不需要在 [Icons] 段里面手工的添加它。默认情况下,安装程序运行在 Windows 95/NT 4+ 的时候是不创建卸载图标的 ――除了安装程序运行于 Windows NT 3.51 的时候。 要强制创建一个卸载图标,请使用 [Setup] 段里面的 AlwaysCreateUninstallIcon 关键字。

这是 [Icons] 段的一个示例:

[Icons]
Name: "{group}/My Program"; Filename: "{app}/MYPROG.EXE"; WorkingDir: "{app}"
下面列出了支持的参数:

Name (必需的)

说明:
要创建的应用程序图标的名称和位置。此参数可以使用任何任何“外壳文件夹常量”和“目录常量”。

注意: 记住 Windows 95/NT 4+ 的应用程序图标是作为文件直接存储的,这样一来普通文件所不允许使用的字符都不能用来作为应用程序图标的名称。

示例:
Name: "{group}/My Program"
Name: "{group}/Subfolder/My Program"
Name: "{userdesktop}/My Program"
Name: "{commonprograms}/My Program"
Filename (必需的)

说明:
应用程序图标的命令行文件名,它通常以一个目录常量开始。

示例:
Filename: "{app}/MYPROG.EXE"
Parameters

说明:
应用程序图标的可选的命令行参数,可以包括常量,在 Windows 95/NT 4+ 下运行时才可以包括引号。

示例:
Parameters: "/play filename.mid"
WorkingDir

说明:
应用程序图标的工作目录,应用程序启动的那个目录,如果没有指定该参数或该参数是空的,Windows 将使用一个默认的路径,它随着 Windows 的版本的不同而改变。这个参数可以包括常量。

示例:
WorkingDir: "{app}"
Comment

说明:
指定快捷方式的“注释”(或“描述”)栏的内容,它决定了在 Windows 2000 下的弹出信息,早期的 Windows 版本忽略这个注释。

示例:
Comment: "This is my program"
IconFilename

说明:
要被显示的一个自定义的应用程序图标(位于用户的系统中)的文件名。它可以是一个包含图标的可执行文件映像 (.exe, .dll) 或一个 .ico 文件。如果没有指定该参数或该参速是空的,Windows 将会使用文件的默认图标。这个参数可以包括常量。

示例:
IconFilename: "{app}/myicon.ico"
IconIndex

默认:
0

说明:
由 IconFilename 指定的文件的以零开始的图标索引。

示例:
IconIndex: 0
Flags

说明:
“标记”,这个参数是一个附加的选项集合,可以多个选项共同使用,使用空格分开多个选项。下面列出了被支持的选项:

closeonexit
当设置了此标记时,安装程序将设置快捷方式的“退出时关闭”属性。这个标记仅对基于 MS-DOS 的应用程序有效 (具体说就是是否具有 .pif 扩展名)。如果这个标记和 dontcloseonexit 标记都没有指定,安装程序就不会去改变“退出时关闭”的属性。

createonlyiffileexists
当设置了此标记时,安装程序只创建已存在的由 Filename 参数指定的文件的应用程序图标。

dontcloseonexit
类似于 closeonexit, 只是会导致安装程序不选定“退出时关闭”属性。

runmaximized
当设置了此标记时,安装程序将应用程序图标的“运行方式”设置为“最大化”,这样当程序被启动时以最大化的模式初始化。当安装在 Windows NT 3.51 上时该标记不起作用。

runminimized
当设置了此标记时,安装程序将应用程序图标的“运行方式”设置为“最小化”,这样当程序被启动时以最小化的模式初始化。

uninsneveruninstall
告诉卸载程序不要删除这个应用程序图标。

useapppaths
当设置了此标记时,在 Filename 参数里仅指定没有路径的文件名,以后安装程序将会从注册表的 "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/App Paths" 键里面自动得到预先设定好的对应该文件名的路径名。

示例:
Flags: runminimized
公共参数

[INI] 段
此段时可选的,它定义了一些 .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 (必需的)

说明:
要被创建的段的名称,可以包括常量。

示例:
Section: "Settings"
Key

说明:
要被设定的键的名称,可以包括常量。如果没有指定这个参数或这个参数是空的就不会创建任何键。

示例:
Key: "Version"
String

说明:
赋给键的值,可以使用常量。如果没有指定该参数不会创建该键。

示例:
String: "1.0"
Flags

说明:
“标记”,这个参数是一个附加的选项集合,可以多个选项共同使用,使用空格分开多个选项。下面列出了被支持的选项:

createkeyifdoesntexist
只有该键不存在是才能给改建赋值。

uninsdeleteentry
程序被卸载时删除该项,它可以结合 uninsdeletesectionifempty 标记一起使用。

uninsdeletesection
当程序被卸载时,删除该项所在的整个段。对于由 Windows 本身使用的段(例如一些在 WIN.INI 中的段)来说这明显不是一个好的主意,你应当将它用到自己的应用程序中的段。

uninsdeletesectionifempty
类似于 uninsdeletesection, 但是只能在该段中没有了键的时候才能删除。它可以结合 uninsdeleteentry 标记一起使用。

示例:
Flags: uninsdeleteentry
公共参数

[InstallDelete] 段
它使用的是和 [UninstallDelete] 段相同的格式,不同的是它是在安装程序的第一步被处理的。  
[Messages] 段
[Messages] 段是用于定义安装程序和卸载程序所显示的消息。通常你不需要在你的脚本文件里面创建 [Messages] 段,默认情况下所有的显示消息都由 Inno Setup 包含的文件 Default.isl 定义。 (或由 [Setup] 段的关键字 MessagesFile 指定的任何文件).
然而,单独的消息可以被你的脚本中创建的 [Messages] 段覆盖。要这么做,首先你需要知道你要改变的消息的标识 (ID),在搜索 Default.isl 文件时能很容易的发现。例如,你想要改变安装向导的按钮 “下一步(&N)” 为 “向前(&F)”,该消息的标识为“ButtonNext”,那么你应该象这样创建 [Messages] 段:

[Messages]
ButtonNext=&Forward >

有些消息带有象 %1 和 %2 这样的参数,你可以重新排列参数的顺序(例如将 %2 移到 %1 的前面)并且如果需要的话可以重复使用参数(例如“
%1 ... %1 %2”)。在带有参数的消息中,使用两个连续的“%”代替一个嵌入的“%”,“%n”创建一个换行。

如果你希望将 Inno Setup 的文本翻译成其他语言修改并替换文件 Default.isl 或在你创建的脚本里面覆盖每个消息,做一个 Default.isl 的副本并另起一个名字就像 MyTranslation.isl. 在你要使用 MyTranslation.isl 的任何安装程序中,简单的将 [Setup] 段中的关键字 MessagesFile 指向该文件。

特殊用途的标识
有几个 [Messages] 段的项实际上不是用于在屏幕上显示的,它们是用于在安装程序中指定所使用的字体和字型号的。这些可选项中的每一个都有一个前导下划线字符 (“_”) 开始,请参阅 Default.isl 文件头部的注释的使用方法示例。

[Registry] 段
这个段是可选的,他定义了一些注册表项,用于在复制完文件之后创建在用户的系统中。
下面是 [Registry] 段的一个示例。

[Registry]
Root: HKCU; Subkey: "Software/My Company"; Flags: uninsdeletekeyifempty
Root: HKCU; Subkey: "Software/My Company/My Program"; Flags: uninsdeletekey
Root: HKLM; Subkey: "Software/My Company"; Flags: uninsdeletekeyifempty
Root: HKLM; Subkey: "Software/My Company/My Program"; Flags: uninsdeletekey
Root: HKLM; Subkey: "Software/My Company/My Program"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}"
下面列出了支持的参数:

Root (必需的)

说明:
根键,必须是下列各项之一:
HKCR (HKEY_CLASSES_ROOT)
HKCU (HKEY_CURRENT_USER)
HKLM (HKEY_LOCAL_MACHINE)
HKU (HKEY_USERS)
HKCC (HKEY_CURRENT_CONFIG)

示例:
Root: HKCU
Subkey (必需的)

说明:
子键名称,可以包括常量。

示例:
Subkey: "Software/My Company/My Program"
ValueType

说明:
键值的数据类型,必须是下列各项之一:
none
string
expandsz
multisz
dword
binary
如果指定了 none (默认设置),安装程序将创建一个没有键值的键,在这种情况下将忽略 ValueName 和 ValueData 参数。
如果指定了 string,安装程序将创建一个字符串 (REG_SZ) 值。
如果指定了 expandsz,安装程序将创建一个扩展字符串 (REG_EXPAND_SZ) 值。这种数据类型主要用在 Windows NT 上,但是也支持 Windows 95/98.
如果指定了 multisz,安装程序将创建一个多行文本 (REG_MULTI_SZ) 值。
如果指定了 dword,安装程序将创建一个整数 (REG_DWORD) 值。
如果指定了 binary,安装程序将创建一个二进制 (REG_BINARY) 值。

示例:
ValueType: string
ValueName

说明:
要创建的键值的名称,可以包含常量。如果它是空的,将会写入“默认”(Default)值中。如果ValueType 参数被设置为 none, 该参数将被忽略。

示例:
ValueName: "Version"
ValueData

说明:
键值的数据。如果 ValueType 参数是 string, expandsz 或 multisz, 该参数是一个可以包含常量的字符串。如果数据类型是 dword, 该参数可以是一个十进制整数(例如“123”)或者是一个十六进制整数(例如“$7B”)。如果数据类型是 binary, 这是一个十六进制字节序列的形式:“00 ff 12 34”。如果数据类型是 none, 该参数被忽略。

对于一个 string, expandsz 或者 multisz 类型的键值,在这个参数中你可以使用一个特殊的叫做 {olddata} 的常量。{olddata} 常量代表的是注册表键值原来的数据。如果你想要添加一个字符串到一个已经存在的键值时 {olddata} 常量时很有用的,例如,{olddata};{app}.如果该键值并不存在或者不是一个字符串类型,这时 {olddata} 常量会被默默地删除。如果正要被创建的键值是 multisz 类型,但是已经存在的键值并不是多行文本 (例如它是 REG_SZ 或 REG_EXPAND_SZ )类型,这时 {olddata} 常量也会被默默地删除,反之亦然。

对于一个 multisz 类型的键值,在这个参数中你可以使用一个特殊的叫做 {break} 的常量来嵌入换行(nulls)。

示例:
ValueData: "1.0"
Flags

说明:
“标记”,这个参数是一个附加的选项集合,可以多个选项共同使用,使用空格分开多个选项。下面列出了被支持的选项:

createvalueifdoesntexist
当指定了此标记时,只有当相同名称的键值不存在时安装程序才会创建该键值。如果数据类型是 none ,或者同时指定了 deletevalue 标记将忽略该标记。

deletekey
当指定了此标记时,如果该项已存在,安装程序会首先尝试去删除它,包括其中的键值和子键,然后如果 ValueType 不是 none 的话它将创建一个新的键和键值。

deletevalue
当指定了此标记时,如果该键值已存在,安装程序会首先尝试删除该键值。然后如果 ValueType 不是 none ,并且该键不存在时它将创建该键和新的键值。

dontcreatekey
当指定了此标记时,如果该键不存在于用户的系统中安装程序将不会试图创建该键或任何键值。如果改建不存在将不显示错误消息。

典型地该标记同 uninsdeletekey 标记结合使用,以便在安装时没有创建该键时确保在卸载期间删除该键。

noerror
如果安装程序在创建键或键值时无论什么原因失败不显示错误消息。

preservestringtype
该标记只用于 ValueType 参数为 string 或 expandsz 时。当指定了此标记并且该键值不存在或者已存在的键值不是字符串类型 (REG_SZ 或 REG_EXPAND_SZ) 时,该项将由 ValueType 指定的类型创建,如果该键值存在并且是一个字符串类型,该项将由与预先存在的键值相同的键值类型替代。

uninsclearvalue
当程序被卸载时,将设置该键值的数据为空的字符串 (类型 REG_SZ). 该标记不能同 uninsdeletekey 标记一起使用。

uninsdeletekey
当程序被卸载时,删除整个键,包括其下全部的键值和子键。对于由 Windows 自身使用的键来说使用该标记明显不是一个好的主意,你应当将该标记应用到你自己的应用程序键中。

uninsdeletekeyifempty
当程序被卸载时,如果该键下没有其它键值和子键则将其删除。该标记可以结合 uninsdeletevalue 标记一起使用。

uninsdeletevalue
当程序卸载时删除该键值,该标记可以结合 uninsdeletekeyifempty 标记一起使用。

注意:对于 Inno Setup 1.1 之前的版本,你可以与 none 数据类型一起使用该标记则将会成为 “delete key if empty” (如为空则删除该键)功能的标记。这个技巧现在已经不在被支持,你必须使用 uninsdeletekeyifempty 标记来实现该功能。

示例:
Flags: uninsdeletevalue
公共参数

[Run] & [UninstallRun] 段
[Run] 段是可选的,指定任意数量的程序在成功安装程序以后及显示结束对话框之前被执行。同样 [UninstallRun] 段也是可选的,指定任意数量的程序在“卸载程序”的第一步时被执行。除非下面有其它说明,两个段共有相同的语法。
每个程序按照你的脚本编排的顺序被执行,当出路 [Run]/[UninstallRun] 的项时,安装程序将会等到当前的程序终止之后才处理下一个,当然除非使用了 nowait 标记。

这是一个 [Run] 段的示例。

[Run]
Filename: "{app}/INIT.EXE"; Parameters: "/x"
下面列出了支持的参数:

Filename (必需的)

说明:
要被执行的程序,或要被打开的文件/文件夹。如果 Filename 不是一个 .exe 或 .com 文件,你必须在该项中使用 shellexec 标记。该参数可以包含常量。

示例:
Filename: "{app}/INIT.EXE"
Parameters

说明:
程序可选的命令行参数,该参数可以包含常量。

示例:
Parameters: "/x"
WorkingDir

说明:
程序起始位置的目录。如果没有指定该参数或该参数是空的,将不会改变任何特殊的目录。该参数可以包含常量。

示例:
WorkingDir: "{app}"
RunOnceId

说明:
只在 [UninstallRun] 段里面有效。如果相同的应用程序被安装超过了一次,“run”项将会重复出现在卸载记录文件里面。通过将一个字符串赋值给 RunOnceId, 你可以确保一个独特的 [UninstallRun] 项在卸载期间只被执行一次。例如,如果在卸载记录中的“run”中有两个或者更多的带有 RunOnceId 参数并被设置为“DelService”的项,则只有最后一个带有一个 RunOnceId 参数并被设置为“DelService”的项会被执行。其余的将被忽略。注意 RunOnceId 参数是大小写敏感的。

示例:
RunOnceId: "DelService"
Flags

说明:
“标记”,这个参数是一个附加的选项集合,可以多个选项共同使用,使用空格分开多个选项。下面列出了被支持的选项:

nowait
如果指定了该标记,将不会等待该项处理被结束运行之前就进行到下一个 [Run] 项,或者结束安装程序。不能结合 waituntilidle
标记一起使用。

shellexec
如果 Filename 不是一个可以直接执行的文件(一个 .exe 或 .com 文件)则该标记是必需的。当设置了该标记时,Filename 可以是一个文件夹或者任何已注册的文件类型 ―― 包括 .hlp, .doc 等等。文件将会被用户系统中的与该文件类型相关联的应用程序打开,就像用户在资源管理器中用鼠标双击该文件一样。

当在 Filename 中使用一个文件夹名称时,建议在后面加上一个反斜杠字符(例如“{group}/”),以确保可能有相同名称的程序不会被执行。同样要注意文件夹只能在 Windows 95/NT 4+ 上被打开,因为从那时起使用了一个新的资源管理器的外壳。

使用 shellexec 标记有一个缺点,那就是无法等待该过程结束,因此,它始终就像被指定了 nowait 标记一样操作。

skipifdoesntexist
如果指定了该标记,如果 Filename 不存在安装程序将不会显示错误消息。它只适用于 [Run] 段,因为卸载程序从来不显示错误消息在 [UninstallRun] 项执行失败时。

runmaximized
如果指定了该标记,将会在一个最大化的窗口启动程序或文档。

runminimized
如果指定了该标记,将会在一个最小化的窗口启动程序或文档。

waituntilidle
如果指定了该标记,它将暂停直到该过程正在等待用户的输入并且没有未决的输入时,取而代之的是等待该过程的结束。(该标记调用 WaitForInputIdle Win32 函数.) 不能结核 nowait 一起使用。

示例:
Flags: nowait
公共参数

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Inno Setup 是一个免费的 Windows 下的安装程序制作工具,它可以帮助你方便地创建 Windows 应用程序的安装程序。下面是 Inno Setup 的中文教程: 1. 下载 Inno Setup 你可以在 Inno Setup 的官网(http://www.jrsoftware.org/isdl.php)下载最新版本的 Inno Setup。 2. 安装 Inno Setup 双击下载好的 Inno Setup 安装程序,按照提示进行安装。 3. 创建安装程序 打开 Inno Setup,选择 File -> New,然后选择一个模板(如“Standard Installation”),点击 OK 开始创建安装程序。 4. 配置安装程序 在界面左侧,你可以看到 Inno Setup 的脚本文件。你需要编辑这个脚本文件来配置你的安装程序。以下是一些常用的配置项: - [Setup] 部分:用于设置安装程序的基本信息,如应用程序名称、版本号、安装目录等。 - [Files] 部分:用于添加需要安装的文件。你可以选择需要安装的文件和目录,以及它们需要拷贝到的目标目录。 - [Icons] 部分:用于添加快捷方式和开始菜单项。 - [Run] 部分:用于添加安装完成后需要执行的程序或脚本。 5. 编译安装程序 编辑好脚本文件后,选择菜单中的 Build -> Compile,Inno Setup 会将脚本文件编译成一个可执行的安装程序。 6. 测试安装程序 双击可执行的安装程序,测试它是否能够正常安装你的应用程序。 以上就是 Inno Setup 的中文教程,希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值