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
相关产品推荐
相关产品推荐

