Inno setup 具有三个目标文件夹的Inno安装程序

Inno setup 具有三个目标文件夹的Inno安装程序,inno-setup,Inno Setup,我需要创建一个简单的Inno安装程序,将三组不同的文件复制到三个用户可选择的文件夹中,用于C:或D:等 这只是文件,没有应用程序 我确实找到了一个脚本“为数据提示一个额外的文件夹”,但下一页只有一个文件夹 谢谢 例如: 编辑:这是我得到的代码: [Setup] AppName=MyProg AppVerName=MyProg DefaultDirName={pf}\MyProg DisableProgramGroupPage=yes UninstallDisplayIcon={app}\My

我需要创建一个简单的Inno安装程序,将三组不同的文件复制到三个用户可选择的文件夹中,用于C:或D:等

这只是文件,没有应用程序

我确实找到了一个脚本“为数据提示一个额外的文件夹”,但下一页只有一个文件夹

谢谢

例如:

编辑:这是我得到的代码:

[Setup]
AppName=MyProg
AppVerName=MyProg
DefaultDirName={pf}\MyProg
DisableProgramGroupPage=yes
UninstallDisplayIcon={app}\MyProg.exe

[Files]
;Main program that will be installed in {app} folder
Source: MyProg.exe; DestDir: {app}

;Database file that will installed where user choosed
Source: DataBase.mdb; DestDir: {code:GetDataDir}
[代码]
变量
DataDirPage:TInputDirWizardPage;
程序初始化;
开始
{创建页面}
DataDirPage:=CreateInputDirPage(wpSelectDir,
“选择个人数据目录”、“个人数据文件应安装在何处?”,
'选择安装程序应在其中安装个人数据文件的文件夹,'+
“然后单击“下一步”。”,
假');
DataDirPage.Add(“”);
DataDirPage.Values[0]:=GetPreviousData('DataDir','';
结束;
过程寄存器PreviousData(PreviousDataKey:整数);
开始
{存储所选文件夹以便进一步重新安装/升级}
SetPreviousData(PreviousDataKey,'DataDir',DataDirPage.Values[0]);
结束;
函数NextButtonClick(CurPageID:Integer):布尔值;
开始
{设置默认文件夹(如果为空)}
如果DataDirPage.Values[0]='',则
值[0]:=ExpandConstant('{sd}\DataDir');
结果:=真;
结束;
函数UpdateReadyMemo(空格、换行符、MemoUserInfoInfo、MemoDirInfo、MemoTypeInfo、,
MemoComponentInfo、MemoGroupInfo、MemoTasksInfo:String):字符串;
变量
S:字符串;
开始
{用正常设置和自定义设置填充“就绪备忘录”}
S:='';
S:=S+MemoDirInfo+换行符+换行符;
S:=S+‘数据库路径’+换行符;
S:=S+Space+DataDirPage.Values[0]+换行符;
结果:=S;
结束;
函数GetDataDir(参数:String):String;
开始
{返回所选数据目录}
结果:=DataDirPage.Values[0];
结束;

您可以这样写:

[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program

[Files]
; the parameter passed to the GetDir function here is the index of a directory
; input page item, so the following 3 files will be installed each into one of
; the directories specified in the input page items
Source: "File1.txt"; DestDir: "{code:GetDir|0}"
Source: "File2.txt"; DestDir: "{code:GetDir|1}"
Source: "File3.txt"; DestDir: "{code:GetDir|2}"
[代码]
变量
DirPage:TInputDirWizardPage;
函数GetDir(参数:String):String;
开始
结果:=DirPage.Values[stroint(Param)];
结束;
程序初始化;
开始
{创建目录输入页}
目录页:=CreateInputDirPage(
wpSelectDir,'Caption','Description','suboption',False',);
{添加目录输入页面项}
DirPage.Add('Prompt 1');
DirPage.Add('Prompt 2');
DirPage.Add('Prompt 3');
{为以前存储的数据中的项目分配默认目录;如果}
{没有存储以前安装的数据,请使用默认文件夹}
{由你选择}
DirPage.Values[0]:=GetPreviousData('Directory1','C:\HardcodedPath');
值[1]:=GetPreviousData('Directory2',ExpandConstant('{userdocs}');
值[2]:=GetPreviousData('Directory3',ExpandConstant('{localappdata}');
结束;
过程寄存器PreviousData(PreviousDataKey:整数);
开始
{为下一次运行安装程序存储选定的目录}
SetPreviousData(PreviousDataKey,'Directory1',DirPage.Values[0]);
SetPreviousData(PreviousDataKey,'Directory2',DirPage.Values[1]);
SetPreviousData(PreviousDataKey,'Directory3',DirPage.Values[2]);
结束;

要处理标准的“安装目录”,请参阅:

您找到的示例是您需要执行的操作,但您需要创建三个控件和三个函数来获取路径。我发布了上面的代码。谢谢我的答案仍然有效,您只需将添加到页面中的项目增加三倍,并且每次都会提到。我需要为此更改主脚本吗?或者只是inno setup.ss文件?