You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Inno Setup添加目录确认对话框及代码适配咨询

实现可修改主路径的目录确认功能(应用到你的Inno Setup代码)

方案1:启用默认的目录选择页面(基础需求)

Inno Setup自带目录选择页面,只需补充默认路径配置,就能让用户查看、修改主安装路径({app})。修改后的完整代码如下:

[Setup]
AppName=Test
AppVersion=1.0.0
DefaultGroupName=Test
OutputBaseFilename=Test
DisableWelcomePage=no
; 设置主路径的默认值,{app}会指向该路径,用户可在向导中修改
DefaultDirName={pf}\Test
; 确保目录选择页面不被禁用(默认即为no,此处显式声明更清晰)
DisableDirPage=no

[Components]
Name: "Format1";     Description: "Format1";      
Name: "Format2";     Description: "Format2";     

[Files]
Source: "I:\Format1.dll";  DestDir: "{app}\Test\Format1"; Flags:; Components: Format1
Source: "I:\Format2.dll";  DestDir: "{app}\Test\Format2"; Flags:; Components: Format2

方案2:添加额外路径确认弹窗(增强需求)

如果需要在用户选完路径后,弹出二次确认对话框,可通过Pascal脚本实现。修改后的代码如下:

[Setup]
AppName=Test
AppVersion=1.0.0
DefaultGroupName=Test
OutputBaseFilename=Test
DisableWelcomePage=no
DefaultDirName={pf}\Test
DisableDirPage=no

[Components]
Name: "Format1";     Description: "Format1";      
Name: "Format2";     Description: "Format2";     

[Files]
Source: "I:\Format1.dll";  DestDir: "{app}\Test\Format1"; Flags:; Components: Format1
Source: "I:\Format2.dll";  DestDir: "{app}\Test\Format2"; Flags:; Components: Format2

[Code]
function NextButtonClick(CurPageID: Integer): Boolean;
var
  SelectedPath: String;
begin
  Result := True;
  // 检测用户是否在目录选择页面点击下一步
  if CurPageID = wpSelectDir then
  begin
    SelectedPath := WizardDirValue;
    // 弹出确认对话框,展示当前选择的路径
    if MsgBox('确认要将程序安装到以下路径吗?' + #13#10 + SelectedPath, mbConfirmation, MB_YESNO) = IDNO then
    begin
      Result := False; // 返回False,停留在目录页面允许用户重新修改
    end;
  end;
end;

内容的提问来源于stack exchange,提问作者Ramzi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 18:35:30