Inno setup 使用“文件”部分自定义页面中的两个/多个选定目录
我需要创建两个目的地自定义页面 我已经做到了: 定义MyAppName TESTPROG [设置] AppName={MyAppName} DefaultDirName=C:\test\{MyAppName} DefaultGroupName={MyAppName} [守则] 变量 第页:TInputDirWizardPage; DataDir:字符串; 程序初始化; 开始 页面:=CreateInputDirPagewpWelcome, “选择个人数据位置”、“个人数据文件应存储在何处?”, “个人数据文件将存储在以下文件夹中。”+ '要继续,请单击“下一步”。'+ '如果要选择其他文件夹,请单击“浏览”。', 假,“新文件夹”; 页面。添加“本地应用程序”; 第页。添加“本地存储”; Page.Values[0]:='C:\My Program'; Page.Values[1]:='D:\My Program'; DataDir:=页值[0]; 终止 我需要知道如何使用Page.Values[0]和Page.Values[1]设置DefaultDirName以及在何处设置 我需要它,因为我的文件的某些部分将在一个文件夹中,而其他部分将在另一个文件夹中 例如:Inno setup 使用“文件”部分自定义页面中的两个/多个选定目录,inno-setup,pascalscript,Inno Setup,Pascalscript,我需要创建两个目的地自定义页面 我已经做到了: 定义MyAppName TESTPROG [设置] AppName={MyAppName} DefaultDirName=C:\test\{MyAppName} DefaultGroupName={MyAppName} [守则] 变量 第页:TInputDirWizardPage; DataDir:字符串; 程序初始化; 开始 页面:=CreateInputDirPagewpWelcome, “选择个人数据位置”、“个人数据文件应存储在何处?”,
[Files]
Source: C:\TEST\DLL1.bat; DestDir: Page.Values[0]\sys1;
Source: C:\TEST\DLL2.bat; DestDir: Page.Values[1]\sys2;
使用:
[档案]
来源:C:\TEST\DLL1.bat;DestDir:{code:GetDir | 0}\sys1
来源:C:\TEST\DLL2.bat;DestDir:{code:GetDir | 1}\sys2
[守则]
变量
第页:TInputDirWizardPage;
函数GetDirParam:string:string;
开始
结果:=页面值[StrToIntParam];
终止
程序初始化;
开始
页面:=CreateInputDirPage。。。;
...
终止
若要使用TInputDirWizardPage中的第一个路径之一,而不是选择目标位置页面中的路径,则有三个选项
使用以下命令禁用“选择目标位置”页面:
将路径从TInputDirWizardPage复制到隐藏的Select
目标位置页面,当用户按下下一步按钮时:
变量
第页:TInputDirWizardPage;
函数InputDirPageNextButtonClickSender:TWizardPage:Boolean;
开始
{使用第一条路径作为目标路径}
WizardForm.DirEdit.Text:=页面值[0];
结果:=真;
终止
程序初始化;
开始
页面:=CreateInputDirPage。。。;
...
Page.OnNextButtonClick:=@InputDirPageNextButtonClick;
终止
补充说明,您也可以考虑复制初始WiZADRADE窗体。通过这种方式,您可以确保1在重新安装/升级时,重复使用以前选择的值;2个工作。那就看吧
将的所有用法替换为{code:GetDir | 0} 使Inno安装程序不使用以下命令创建{app}路径: 这意味着DisableDirPage=yes 并使用以下命令将卸载文件存储在第一个路径中: 与1相反,使用这种方法,以前的安装路径不会被重新用于以后的升级/重新安装。要实现这一点,请参见 不要使用CreateInputDirPage,而是在选择目标位置页面SelectDirPage上添加第二个路径输入框 使用: [档案] 来源:C:\TEST\DLL1.bat;DestDir:{code:GetDir | 0}\sys1 来源:C:\TEST\DLL2.bat;DestDir:{code:GetDir | 1}\sys2 [守则] 变量 第页:TInputDirWizardPage; 函数GetDirParam:string:string; 开始 结果:=页面值[StrToIntParam]; 终止 程序初始化; 开始 页面:=CreateInputDirPage。。。; ... 终止 若要使用TInputDirWizardPage中的第一个路径之一,而不是选择目标位置页面中的路径,则有三个选项 使用以下命令禁用“选择目标位置”页面: 将路径从TInputDirWizardPage复制到隐藏的Select 目标位置页面,当用户按下下一步按钮时: 变量 第页:TInputDirWizardPage; 函数InputDirPageNextButtonClickSender:TWizardPage:Boolean; 开始 {使用第一条路径作为目标路径} WizardForm.DirEdit.Text:=页面值[0]; 结果:=真; 终止 程序初始化; 开始 页面:=CreateInputDirPage。。。; ... Page.OnNextButtonClick:=@InputDirPageNextButtonClick; 终止补充说明,您也可以考虑复制初始WiZADRADE窗体。通过这种方式,您可以确保1在重新安装/升级时,重复使用以前选择的值;2个工作。那就看吧
将的所有用法替换为{code:GetDir | 0} 使Inno安装程序不使用以下命令创建{app}路径: 这意味着DisableDirPage=yes 并使用以下命令将卸载文件存储在第一个路径中: 与1相反,使用这种方法,以前的安装路径不会被重新用于以后的升级/重新安装。要实现这一点,请参见 不要使用CreateInputDirPage,而是在选择目标位置页面SelectDirPage上添加第二个路径输入框DisableDirPage=yes
CreateAppDir=no
UninstallFilesDir={code:GetDir|0}