使用Inno Setup制作安装包需要用到的常量

  • 使用Inno Setup制作安装包需要用到的常量已关闭评论
  • 5,347 视图
  • A+
所属分类:编程开发

心语家园 https://www.xinyucn.cc/ 为非盈利网站,纯公益性质,所有软件和插件均免费下载。象征性收取的少许费用,完全是为了维持网站运营,支付服务器费用。且收费有助于防止采集和拷贝。由于有些软件主题插件升级频繁,导致汉化不完全,如果你购买后发现此问题,可通过网站顶部“私信本站”反馈,我们将尽快完善汉化。

正文开始:

常量

脚本中的项目大部分可以嵌入常量。这些预定义的字符被包含在括弧 { } 中。安装程序或卸载程序会根据用户选择和系统配置将这些常量翻译为文字值。例如,{win} 在大部分系统中会被翻译为“C:\WINDOWS”。

字符“{”视作为常量开始。如果你想将它作为实际字符使用,你必须使用两个连续的“{”字符。(对于“}”则不需要。)

当在常量后面直接跟随一个反斜杠时,如果常量的值末端已经包含了一个反斜杠号,安装程序或卸载程序将自动删除该反斜杠号。 因此,如果一个特殊常量值是“C:\”,{constantname}\file 将翻译为“C:\file”,而不是“C:\\file”。如果你想防止意外,将反斜框放入{ } 字符中,例如,{app}{\}。

下面是支持的常量列表。

目录常量

{app}用户在安装向导中的选择目标位置页中选定的应用程序目录。

例如: 如果你在项目中指定了 {app}\MYPROG.EXE,用户选择了“C:\MYPROG”作为应用程序目录,安装程序将该文件安装到“C:\MYPROG\MYPROG.EXE”。

{win}系统的 Windows 目录。

例如: 如果你在项目中使用了 {win}\MYPROG.INI,且系统的 Windows 目录是“C:\WINDOWS”安装程序或卸载程序将它传送到“C:\WINDOWS\MYPROG.INI”。

{sys}系统的 Windows System 目录。

例如: 如果你在项目中使用了 {sys}\CTL3D32.DLL,且系统的 Windows System 目录是“C:\WINDOWS\SYSTEM”,安装程序或卸载程序将它传送到“C:\WINDOWS\SYSTEM\CTL3D32.DLL”。

在 64 位 Windows 中,按默认,此常量返回的System32路径映射到包含32位系统文件的目录,就像在32位Windows上。 (这可以通过启用64位模式来覆盖)。

{syswow64}在 64 位 Windows 中,系统的 SysWOW64 目录,一般是“C:\WINDOWS\SysWOW64”。这是在 32 位系统文件驻留的真实目录。在 32 位 Windows 中,32 位系统文件驻留在“System32”或“System”中,不是在单独的的“ {syswow64}” 目录,因此如果在这种情况下使用,这个常量将解析到与 {sys} 相同的目录。

不要使用此常数,除非您特定需要获取32位系统文件所在的实际目录的名称。 在{sys}足够的地方使用{syswow64}可能会导致问题。 (请查阅帮助文档 [Files] 段 sharedfile 标记示例。)

{src}安装程序文件所在目录。

例如: 你在项目中使用了 {src}\MYPROG.EXE,且用户正在从“S:\”进行安装,安装程序将它传送到“S:\MYPROG.EXE”。

{sd}Windows 系统所在的驱动器。一般来说是“C:”。这个目录常量等同于 SystemDrive 环境变量。
{pf}程序文件夹位置。系统的 Program Files 目录的路径。{pf} 等于 {pf32},除非安装程序运行于 64 位模式,在这种情况下它等于 {pf64}。
{pf32}32 位程序文件夹。系统的 32 位程序文件目录路径。一般来说它在 32 位 Windows 是“C:\Program Files”,在 64 位 Windows 中是“C:\Program Files (x86)”。
{pf64}仅指 64 位 Windows: 64 位程序文件夹。系统的 64 位程序文件目录路径,一般来说是“C:\Program Files”。如果尝试在 32 位的 Windows 中展开这个常量,将会出现异常。
{cf}

 

公共文件。系统公共文件目录路径。{cf} 等于 {cf32},除非安装程序运行于 64 位模式,在这种情况下它等于 {cf64}。
{cf32}

 

32 位公共文件。系统的 32 位公共文件目录路径。一般来说它在 32 位 Windows 是“C:\Program Files\Common Files”,在 64 位 Windows 中是“C:\Program Files (x86)\Common Files”。
{cf64}

 

仅指 64 位 Windows: 64 位公共文件。系统的 64 位公共文件目录路径,一般来说是“C:\Program Files\Common Files”。如果尝试在 32 位的 Windows 中展开这个常量,将会出现异常。
{tmp}

 

v用于安装程序或卸载程序的临时目录。这不是用户的 TEMP 环境变量值。它是在安装程序启动后在用户临时目录中创建的子目录 (象名为“C:\WINDOWS\TEMP\IS-xxxxx.tmp”)。目录中的所有文件和子目录在安装程序或卸载程序退出时删除。在安装时,这主要用于提取在 [Run] 段运行、但安装后不再需要的文件。
{fonts}字体目录。通常是在 Windows 下面的名字“FONTS”的目录。
{dao}DAO 目录,等同于 {cf}\Microsoft Shared\DAO。
{dotnet11}32位 .NET Framework 版本 1.1 根目录。

如果所使用的系统上没有 .NET Framework 版本 1.1,则显示内部错误原因。

{dotnet20}.NET Framework 版本 2.0 根目录。{dotnet20}等价于{dotnet2032},除非安装以64位模式运行,在这种情况下它等同于{dotnet2064}。

如果所使用的系统上没有 .NET Framework 版本 2.0,则显示内部错误原因。

{dotnet2032}

 

32位 .NET Framework 版本 2.0 根目根。

如果所使用的系统上没有 .NET Framework 版本 2.0,则显示内部错误原因。

{dotnet2064}

 

仅64位Windows: 64位 .NET Framework 版本 2.0 根目录。

如果所使用的系统上没有 .NET Framework 版本 2.0,则显示内部错误原因。

{dotnet40}

 

.NET Framework 版本 4.0 根目录。{dotnet40}等效于{dotnet4032},除非安装以64位模式运行,在这种情况下它等同于{dotnet4064}.

如果所使用的系统上没有 .NET Framework 版本 4.0,则显示内部错误原因。

{dotnet4032}

 

32-bit .NET Framework 版本 4.0 根目录。

如果所使用的系统上没有 .NET Framework 版本 4.0,则显示内部错误原因。

{dotnet4064}

 

仅64位Windows: 64位 .NET Framework 版本 4.0 根目录。

如果所使用的系统上没有 .NET Framework 版本 4.0,则显示内部错误原因。

 

外壳文件夹常量

Inno Setup 支持其它目录常量设置,作为外壳文件夹常量引用。它们可以与其它目录常量相同方法使用。

“common”常量引用到所有用户配置文件。

下面的“user”常量引用到当前登录的用户配置文件进行安装。此用户通常与当前登录的用户不同,因此请谨慎使用"user"常量。

除非有另外的注释,外壳文件夹常量工作于 Inno Setup 支持的所有 Windows 版本。

* = 如果登录用户缺少管理权限,或者如果PrivilegesRequired设置为最低,则将此常量的"common"形式映射到"user"表单。

{group}开始菜单文件夹路径,由用户在安装程序的选择开始菜单文件夹向导页中选定。这个文件夹总是创建在所有用户配置文件下,除非非用户安装程序的用户没有管理员权限,这种情况下它将创建在用户配置文件下。
{localappdata}本地Application Data文件夹。
{sendto}当前用户的 Send To 文件夹路径。(这里不是指公共 Send To 文件夹。)
{userappdata} & {commonappdata}Application Data文件夹路径。
{usercf}当前用户的Common Files目录的路径。 只有Windows 7和更高版本支持{usercf}; 如果在以前的Windows版本上使用,它将转换到与{localappdata} \ Programs \ Common相同的目录。
{userdesktop} & {commondesktop} *桌面文件夹路径。
{userdocs} & {commondocs}我的文档 (My Documents) 文件夹路径。
{userfavorites} & {commonfavorites} *收藏夹文件夹路径。
{userpf}

 

当前用户的Program Files目录的路径。 只有Windows 7和更高版本支持{userpf}; 如果在以前的Windows版本中使用,它将转换到与{localappdata} \ Programs相同的目录。
{userprograms} & {commonprograms} *开始菜单中程序文件夹路径。
{userstartmenu} & {commonstartmenu} *开始菜单顶层路径。
{userstartup} & {commonstartup} *开始菜单启动文件夹路径。
{usertemplates} & {commontemplates} *模板文件夹路径。

 

其它常量

{\}反斜杠字符。查阅本页顶部的注释获取使用 {\} 和只使用一个 \ 字符之间的差异。
{% NAME | DefaultValue }嵌入一个环境变量值。

NAME 用于指定要使用的环境变量的名字。

DefaultValue 确定如果指定的变量在用户系统中不存在时置入的字符串。

如果你想在常量内部包含一个逗号、竖条 (“|”),或括弧后半部 (“}”),你必须通过“%-encoding.”先用一个“%”字符然后跟随它的两上数字的十六进制代码替换,从而避开它。逗号是“%2c”,竖条是“%7c”括弧后半部是“%7d”。如果你想实际使用“%”,使用“%25”。

NAME 和 DefaultValue 可以包含常量。注意,你不需要将常量中的括弧替换成上面所说的字符;上面所说的括弧后半部只在使用于其它地方时需要替换。

示例:

{%COMSPEC}

{%PROMPT|$P$G}

{cmd}系统标准命令解释器的完整路径名。Windows\System32\cmd.exe。注意当展开这个常量时 COMSPEC 环境变量不使用。
{computername}正在运行安装程序或卸载程序的电脑名 (等同于由Windows GetComputerName 函数返回的值)。
{drive: Path }从指定的路径中提取并返回驱动器卷标和冒号 (例如“C:”)在 UNC 路径的场合中,它返回服务器和共享名 (例如“\\SERVER\SHARE”)。

Path 指定路径。

如果你想在常量内部包含一个逗号、竖条 (“|”),或括弧后半部 (“}”),你必须通过“%-encoding.”先用一个“%”字符然后跟随它的两上数字的十六进制代码替换,从而避开它。逗号是“%2c”,竖条是“%7c”括弧后半部是“%7d”。如果你想实际使用“%”,使用“%25”。

Path 可以包含常量。注意,你不需要将常量中的括弧替换成上面所说的字符;上面所说的括弧后半部只在使用于其它地方时需要替换。

示例:

{drive:{src}}

{drive:c:\path\file}

{drive:\\server\share\path\file}

{groupname}用户在安装程序向导页的选择开始菜单文件夹中选定的文件夹名。它不同于 {group},只有名字,不包含路径。
{hwnd}(特殊用途) 转换为安装程序的背景窗口句柄。
{wizardhwnd}(特殊用途) 转换为安装程序的向导窗口句柄。如果向导窗口句柄在翻译完成时不能用,这个句柄设置为“0”
{ini: Filename , Section , Key | DefaultValue }从 .INI 文件插入一个值。

Filename 指定要读取的 .INI 文件的名字。

Section 指定读取的段名。

Key 指定读取的键名。

DefaultValue 确定如果指定的键不存在时要插入的字符。

如果你想在常量内部包含一个逗号、竖条 (“|”),或括弧后半部 (“}”),你必须通过“%-encoding.”先用一个“%”字符然后跟随它的两上数字的十六进制代码替换,从而避开它。逗号是“%2c”,竖条是“%7c”括弧后半部是“%7d”。如果你想实际使用“%”,使用“%25”。

Filename, Section, 和 Key 可以包含常量。注意,你不需要将常量中的括弧替换成上面所说的字符;上面所说的括弧后半部只在使用于其它地方时需要替换。

示例:

{ini:{win}\MyProg.ini,Settings,Path|{pf}\My Program}

{language}选定语言的内部名字。查阅 [Languages] 段帮助文档获取更多信息。
{cm: MessageName }

{cm: MessageName , Arguments }

根据活动语言嵌入一个自定义消息值。

MessageName 用于指定要读取的自定义消息名。查阅 [CustomMessages] 段帮助文档获取更多信息。

Arguments 可随意在消息值中指定逗号分隔的声明列表。

如果你想在常量内部包含一个逗号,垂直条 (“|”),或括号 (“}”),你必须使用“%-encoding.”避开它,用“%”字符,后面跟随它的两位数十六进制代码替换。逗号是“%2c”,垂直条是“%7c”,括号是“%7d”,如果你想包含一个实际的“%”字符,用“%25”。

每个 Arguments 中的声明可以包含常量。注意,你不需要避开上面描述的常量中的括号,只有在别处使用这种括号时需要避开。

示例:

{cm:LaunchProgram,Inno Setup}

如果活动语言是简体中文,上面的示例被翻译为“运行 Inno Setup”。

{reg:HK xx \ SubkeyName , ValueName | DefaultValue }插入一个注册表值。

HKxx 指定注册表根键;查阅 [Registry] 段帮助文档获取可用根键列表。

SubkeyName 指定要读取的子键名。

ValueName 指定要读取的值名;如果你想读取键的“默认”值,将 ValueName 留空。

DefaultValue 确定在指定的注册表值不存在,或不是一个字符串类型的值 (REG_SZ 或 REG_EXPAND_SZ) 时要插入的字符。

如果你想在常量内部包含一个逗号、竖条 (“|”),或括弧后半部 (“}”),你必须通过“%-encoding.”先用一个“%”字符然后跟随它的两上数字的十六进制代码替换,从而避开它。逗号是“%2c”,竖条是“%7c”括弧后半部是“%7d”。如果你想实际使用“%”,使用“%25”。

SubkeyName, ValueName, 和 DefaultValue 可以包含常量。注意,你不需要将常量中的括弧替换成上面所说的字符;上面所说的括弧后半部只在使用于其它地方时需要替换。

示例:

{reg:HKLM\Software\My Program,Path|{pf}\My Program}

{param: ParamName | DefaultValue }插入一个命令行参数值。

ParamName 指定要读取的命令行参数名。

DefaultValue 确定如果指定的命令行参数不存在,或它的值不能确定时要插入的字符。

如果你想在常量内部包含一个逗号、竖条 (“|”),或括弧后半部 (“}”),你必须通过“%-encoding.”先用一个“%”字符然后跟随它的两上数字的十六进制代码替换,从而避开它。逗号是“%2c”,竖条是“%7c”括弧后半部是“%7d”。如果你想实际使用“%”,使用“%25”。

ParamName 和 DefaultValue 可以包含常量。注意,你不需要将常量中的括弧替换成上面所说的字符;上面所说的括弧后半部只在使用于其它地方时需要替换。

示例:

{param:Path|{pf}\My Program}

如果指定命令行 /Path="c:\My Program",上面的例子翻译为 c:\My Program。

{srcexe}安装程序文件的完整路径名,例如“C:\SETUP.EXE”。
{uninstallexe}由安装程序提取的卸载程序的完整路径名,例如“C:\Program Files\My Program\unins000.exe”。这个常量一般用于在 [Icons] 段条目创建一个卸载图标。它只在 Uninstallable 设为 yes (默认设置) 时有效。
{sysuserinfoname}

{sysuserinfoorg}

Windows 已许可的名字和组织,这个信息从注册表中读取。
{userinfoname}

{userinfoorg}

{userinfoserial}

用户在用户信息向导页 (可以通过 UserInfoPage 指令来启用) 中分别输入的名字,组织和序列号。一般来说,这些常量用于在 [Registry] 或 [INI] 条目中保存它们以后要使用的值。
{username}正在运行安装程序或卸载程序的用户的名字 (也可以用 GetUserName 函数返回)。
{log}日志文件的名称,如果 logging 没启用则返回一个空字符。

 

本站所有发布资源均支持繁体中文,但因繁体中文用户量太少,大部分资源你需要申请汉化才能提供。从2021年1月1日开始,本站所有资源必须注册登陆后才能下载,全部免费。10家园币=1元人民币。如果你不想花钱,可以通过每天登陆、签到或邀请注册等方式免费获得家园币。
weinxin
官方微信公众号
扫一扫关注微信公众号,如果你觉得本站帮到了你,请通过下面的赏字按钮捐赠本站,谢谢!