Artem_Butenko Цитата: Если коротко, то при одном значении md5 и размера исходного файла (в каталоге назначения) должна быть скопирована одна группа файлов, а при другом значении md5 и размера того же файла (с тем же именем), другая группа файлов.
[more=Ну типа того]
[Setup]
AppName=GetMD5OfFile
AppVerName=GetMD5OfFile v 1.0
DefaultDirName={code:GetRegDir}
OutputDir=.
[Files]
Source: "compiler:Examples\MyProg.exe"; Flags: dontcopy;
Source: "compiler:Examples\MyProg-x64.exe"; Flags: dontcopy;
[Code]
function GetRegDir(Dir: string): string;
begin
Dir := '';
RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Prog_is1','InstallLocation', Dir);
Result := Dir;
end;
procedure CurStepChanged(CurStep: TSetupStep);
var
s: string;
begin
if CurStep = ssInstall then
begin
if FileExists(ExpandConstant('{code:GetRegDir}\MyProg.exe')) then
begin
s := GetMD5OfFile(ExpandConstant('{code:GetRegDir}\MyProg.exe'));
begin
if s = '04ef9893ce03925182188a88b7923bc0' then
begin
ExtractTemporaryFile('MyProg.exe');
FileCopy(ExpandConstant('{tmp}\MyProg.exe'), ExpandConstant('{app}\MyProg_copy.exe'), True);
end;
end;
end;
if FileExists(ExpandConstant('{code:GetRegDir}\MyProg-x64.exe')) then
begin
s := GetMD5OfFile(ExpandConstant('{code:GetRegDir}\MyProg-x64.exe'));
begin
if s = '909ebdbc1a9e0bdd99c20a1428402150' then
begin
ExtractTemporaryFile('MyProg-x64.exe');
FileCopy(ExpandConstant('{tmp}\MyProg-x64.exe'), ExpandConstant('{app}\MyProg-x64_copy.exe'), True);
end;
end;
end;
end;
end;
[/more]
Ну или может проще как-то можно ...