Ques/Help/Req Inno Setup. Разбор кода

Одноногий

Местный
Регистрация
15 Окт 2020
Сообщения
1,680
Реакции
117
Credits
23
Привет.

Есть такой код:

#include "SHFileOperation.iss"

Код:
//Если папка с игрой уже существует, переименовываем____Первая часть
procedure CurStepChanged(CurStep: TSetupStep);
begin
  case CurStep of
    ssInstall: begin
      RenameFile(ExpandConstant('{app}\bin'), ExpandConstant('bin'));
    end;
  end;
end;

//Начало кода, Backup_________Вторая часть
function MoveFile(const srcFile, destFile: PAnsiChar): Integer; external '[email protected] stdcall';
 
procedure CreateBackup;
var
srcFile, destFile: string;
basePath, shortPath: string;
//begin //Для активации кнопки для Бэкапа убрать в начале begin "//". И в [Tasks] перед Name убрать ";"
//if IsTaskSelected('src') then //Для активации кнопки для Бэкапа убрать в начале if "//". И в [Tasks] перед Name убрать ";"
begin
  basePath := ExpandConstant('{app}');
    srcFile := ExpandConstant(CurrentFileName);
    shortPath := srcFile;
   StringChangeEx(shortPath, basePath, '', True);
   destFile := ExpandConstant('{app}_\Backup') + shortPath; //Создание папки под названием "_Backup" в программе. Те файлы которые будут ЗАМЕНЕНЫ отправятся в эту папку
 ForceDirectories(ExtractFilePath(destFile));
 MoveFile(PAnsiChar(srcFile), PAnsiChar(destFile));
end;
//end; //Для активации кнопки для Бэкапа убрать в начале end; "//". И в [Tasks] перед Name убрать ";"
 
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
 if CurUninstallStep = usPostUninstall then
begin
  MoveDir(ExpandConstant('{app}\_Backup\'), ExpandConstant('{app}')); //От куда брать файлы при восстановлении бэкапа
  RemoveDir(ExpandConstant('{app}\_Backup')); //При uninstall удалятся указанная папка _Backup
end;
end;
//Конец кода, Backup

Первая часть делает бэкап папки и помещает её в папку откуда идёт установка. Нужно чтоб пвпка помещалась в целевую папку под названием _Backup engine и на раб.столе создавался ярлык на uninstall с восстановлением из бекапа. Нужно чтоб в процессе uninstall папка bin удалялась,а на её место восстанавливался бекап!

Вторая часть всё делает как надо,но при деинст. папка _Backup не удаляется.

Я не прораммист - тонкостей не знаю. Ищу коды и вставляю в скрипт. Переписать не умею. Если можете то подскажите\перепишите код.