Inno Setup 还支持另外一套目录常量,这就是涉及到的外壳(shell)文件夹常量,它们具有和其它的目录常量相同的使用方法。然而,如果在脚本的 [Setup] 段里面放入了 MinVersion=4,3.51 这一行来表示允许支持 NT 3.51,那么将只有 {group} 这个外壳文件夹常量能被使用,并签只能用在 [Icons] 段。
下面的包含了“user”的常量涉及到当前登陆的用户私人文档(profile),而带有“
common”的常量会涉及到全部用户(All Users)的私人文档(profile)。当安装程序运行在 Windows NT/2000 操作系统下并且用户不具有管理员的权限时,所有的带有“common”的常量会强迫同带有“user”的常量等效。
* 标记表示带有“common”的常量在 Windows 9x 操作系统下同带有“user”的常量等效。
{group}
程序组的路径,取决于用户在安装程序向导的“选择程序组”页的选择。对于 Windows NT,这个文件夹始终被建立在所有用户的私人文档(All Users profile),除非用户正在安装的这个应用程序不具有管理员的权限,那么在这种情况下它将被建立在用户的私人文档中(profile).
{sendto}
当前用户的“发送”的路径。(没有公共的“发送”文件夹。)
{userappdata} & {commonappdata}
应用程序数据(Application Data)文件夹的路径。
{userdesktop} & {commondesktop} *
桌面文件夹的路径,推荐桌面快捷方式使用 {userdesktop}.
{userdocs} & {commondocs}
“我的文档”文件夹的路径(或者对于 NT 4.0,是指私人文件夹).
{userfavorites} & {commonfavorites}
“收藏夹”的路径,这个常量的使用方法是需要 MinVersion 的设置至少为“4.1, 4”,目前只有 Windows 2000 支持 {commonfavorites},如果使用的是在这之前的版本的 Windows,那么它将会被转换成和{userfavorites} 相同的目录。
{userprograms} & {commonprograms} *
在开始菜单里面的程序文件夹的路径。
{userstartmenu} & {commonstartmenu} *
开始菜单的定级路径。
{userstartup} & {commonstartup} *
开始菜单里面的启动文件夹的路径。
{usertemplates} & {commontemplates}
模板(Templates)文件夹的路径,目前只有 Windows 2000 支持 {
commontemplates},如果使用的是在这之前的版本的 Windows ,它将会被转换成和 {usertemplates} 相同的目录。
其他的常量
{\}
一个反斜杠字符,请参见本页前面提到的关于常量 {\} 和单字符 \ 在使用上有何不同的说明。
{%NAME}
内嵌一个环境变量,这个 NAME 是要使用的环境变量的名字。如果在用户的系统当中指定的环境变量不存在,这个常量就会被一个空的字符串所替代。
{computername}
安装程序正在运行的计算机的名称(就是“GetComputerName”函数的返回值)。
{groupname}
用户在安装程序向导的选择程序组页选择的程序组的名称,这个是不同于 {group} 的,它不包括路径。
{hwnd}
(专门用途)传送安装程序背景窗口的窗口句柄。
{reg:HKxx\SubkeyName,ValueName|DefaultValue}
内嵌一个注册表值。
HKxx 指定根键(root key),参见 [Registry] 段 文档所列出的根键。
SubkeyName 指定要读取的子键的名称。
ValueName 指定要读取的值的名称,要读取一个键的默认值就让 ValueName 为空。
DefaultValue 如果指定的注册表值不存在或者它不是一个字符串类型(REG_SZ 或者 REG_EXPAND_SZ),则嵌入这个值。
如果你希望包括一个逗号,竖线(字符“|”)或大括号闭弧“}”在常量里面,你必须通过“%-编码” 形式用“%”后紧跟一个两位的16进制代码转译后替换原来的字符,一个逗号是“%2c”,一个竖线符是“%7c”,一个大括号闭弧是“%7d”。
DefaultValue 可以包括常量,然而,如上所诉内嵌的常量的大括号的闭弧
(“}”) 必须被改成“%7d”才可以。
{srcexe}
安装程序的文件名全称(包括全程路径和文件名),例如“C:\SETUP.EXE”。
{username}
运行安装程序的用户的名称(函数 GetUserName 的返回值)。
公共参数