Перейти к содержимому
Zone of Games Forum
~GOLEM~

Создатель Setup пакетов

Рекомендованные сообщения

Проблема такова, нужно создать установщик, естественно он только записывает файлы поверх.

Пользуюсь Smart Install Maker, простой, функциональный но не может создавать бэкап заменяемых файлов, чтобы при удалении он восстанавливал оригинальные файлы.

Я так понимаю, что его можно научить, он понимает INI файлы.

Или посоветуйте программу у которой это уже есть автоматом.

Заранее спасибо!

Изменено пользователем ~GOLEM~

Поделиться сообщением


Ссылка на сообщение

Inno Setup

там вообще целые программы можно писать,

которые при установке даже комп заставят сплясать

Поделиться сообщением


Ссылка на сообщение

Ну я писать не умею и учится ради пару сетапов то не хочу.

Сейчас стартует Альфа перевода на MODO а люди некоторые (тестеры) не умеют оперировать с папками (здесь скопируй, там замени, здесь удали а потом ....).

Поделиться сообщением


Ссылка на сообщение
Ну я писать не умею и учится ради пару сетапов то не хочу.

А учиться писать и не нужно, существует масса готовых решений. Если действительно нужно, можно немного и вникнуть.

 

Spoiler

 

[setup] AppName=MyProg AppVerName=MyProg DefaultDirName={pf}\MyProg DefaultGroupName=MyProg OutputDir=. [_Code] var MyTask: TCheckBox; function MoveFile(const srcFile, destFile: PChar): Integer; external 'MoveFileA@kernel32.dll stdcall'; procedure CurStepChanged(CurStep: TSetupStep); var FindFiles: TFindRec; i: integer; MyFiles: array of string; MyDir, BackDir: string; begin   if CurStep=ssInstall then begin     if MyTask.Checked then begin       MyFiles:=['TS3.exe','gameplay.package','*.precomp','*.jpg']; // указать файлы или маски нужные для бакупа через запятую. при указании маски '*' бакупятся все файлы с вложенными папками       MyDir:=ExpandConstant('{app}'+'\Game\Bin\'); //папка откуда бакупить       BackDir:=ExpandConstant('{app}'+'\Backup\'); // папка куда бакупить       for i:=0 to GetArrayLength(MyFiles)-1 do       begin         if FindFirst(MyDir+MyFiles[i], FindFiles) then begin           repeat             if not DirExists(BackDir) then begin               CreateDir(BackDir);             end;             MoveFile(MyDir+FindFiles.Name, BackDir+FindFiles.Name);           until not FindNext(FindFiles);           FindClose(FindFiles);         end;       end;     end;   end; end; procedure InitializeWizard(); begin   MyTask:=TCheckBox.Create(WizardForm);   with MyTask do   begin     Parent:=WizardForm.SelectDirPage;     Caption:='Сделать Бэкап';     Left:=ScaleX(0);     Top:=ScaleY(100);     Width:=ScaleX(400);     Height:=ScaleY(15);     TabOrder:=0;     Checked:=True;   end; end; procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); var FindFiles: TFindRec; MyDir, BackDir: string; begin   if CurUninstallStep = usPostUninstall then begin     MyDir:=ExpandConstant('{app}'+'\Game\Bin\'); //папка куда возвращать файлы     BackDir:=ExpandConstant('{app}'+'\Backup\'); // папка откуда брать файлы     if DirExists(BackDir) then begin       if MsgBox('Восстановить данные из бэкапа?', mbConfirmation, MB_YESNO) = IDYES then begin         if FindFirst(BackDir+'*', FindFiles) then begin           repeat             MoveFile(BackDir+FindFiles.Name, MyDir+FindFiles.Name);           until not FindNext(FindFiles);           FindClose(FindFiles);           RemoveDir(BackDir);         end;       end;     end;   end; end;

 

http://forum.ru-board.com/topic.cgi?forum=...&start=4920[/post]

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас



Zone of Games © 2003–2025 | Реклама на сайте.

×