码农之家

专注优质代码开发,为软件行业发展贡献力量

Inno Setup 改变默认路径

[Setup]
 AppName=MyProgram
 AppVersion=1.0
 DefaultDirName={code:GetDefaultInstallRoot}MyProgram
  
 [code]
 function GetDefaultInstallRoot(Param: String): String;
 begin
     if ((GetWindowsVersion shr 16) >= $0600) then
         Result := ExpandConstant('{userappdata}')
     else  
         Result := ExpandConstant('{pf}');
 end;

以上是对于 NT6 也就是 Vista 开始的系统。你可以根据要求改一下,比如 > $0601 就是 Windows 8。

inno setup [setup]段参数说明
[Setup]: DefaultDirName 
说明: 
这是个必需的关键字,该值是默认的目录名称,用于“选择目录页”向导。通常它有一个目录常量前缀。 
如果 UsePreviousAppDir 是 yes (默认值)并且安装程序发现已经安装了一个相同应用程序的早期版本,它将用先前选择的目录代替默认的目录名称。 

示例: 

如果你使用: 
DefaultDirName={sd}MYPROG 
在 Setup 中,典型地应有如下显示: 
C:MYPROG 

如果你使用: 
DefaultDirName={pf}My Program 
在 Setup 中,典型地应有如下显示: 
C:Program FilesMy Program 

[Setup]: DisableDirPage 
有效值: yes 或 no 
默认值: no 

说明: 
如果该项设置为 yes, 安装程序将不会显示“选择目标文件夹”向导页。在这种情况下,它将始终使用默认的目录名。

[Setup]: DisableFinishedPage 
有效值: yes 或 no 
默认值: no 

说明: 
如果该项设置为 yes, 安装程序将不会显示“安装完成”向导页,并且在一次安装过程结束后会立即关闭安装程序。如果在 [Run] 段里面有一个要被执行的程序使用了 nowait 标记,并且你不希望在该程序被启动之候安装完成窗口还逗留在后台,此时该项是有用的。 

注意安装程序认为要重新启动计算机,或如果指派了一个文件给 [Setup] 段的 InfoAfterFile 关键字,都将忽略 DisableFinishedPage 关键字。象这些情况,仍然会显示“安装完成”向导页。 

[Setup]: DisableProgramGroupPage 
有效值: yes 或 no 
默认值: no 

说明: 
如果该项设置为 yes, 安装程序将不会显示“选择程序组”向导页。在这种情况下,它将使用由 [Setup] 段的 DefaultGroupName 关键字指定的组名,或者“(Default)”如果没有指定组名的话。

0 评论数