Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup - создание инсталляционных пакетов (Часть 15)

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

ZVSRus1957



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


Цитата:
 

[Setup]  
 AppName=MyProg
 AppVerName=MyProg
 DefaultDirName={pf}\MyProg
 DefaultGroupName=MyProg
 OutputDir=.
 
//[Files]
// Source: "D:\Files\*"; DestDir: "{app}"; Flags: ignoreversion
 
[_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:=['unins000.dat','unins000.exe','*.png']; // указать файлы или маски нужные для бакупа через запятую. при указании маски '*' бакупятся все файлы с вложенными папками
       
MyDir:=ExpandConstant('{app}'+'\'); //папка откуда бакупить
       
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}'+'\'); //папка куда возвращать файлы
     
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;

 

Всего записей: 43 | Зарегистр. 14-05-2015 | Отправлено: 14:01 02-12-2016 | Исправлено: ZVSRus1957, 16:46 02-12-2016
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup - создание инсталляционных пакетов (Часть 15)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru