Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 7]

Закрытая тема
Настройки темы
Скрипты Inno Setup. Помощь и советы [часть 7]

Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1274
Благодарности: 1030


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: El Sanchez
Дата: 16-02-2015
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:

Показать/скрыть: Ссылки на примеры скриптов:

Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;

  • Inno Script Generator - генератор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • ISSJoiner - Программа для объединения нескольких скриптов InnoSetup в один.
    Последняя версия: 3.0 [23.07.2009]

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;

  • RegExporter - Фриварная утилита для экспорта реестра и конвертации файлов *.reg и *.ini в инсталляционные скрипты Inno Setup и NSIS.
    Последняя версия: 1.2.0 [23.09.2014] - Скачать;



Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:

Скрипты Inno Setup. Помощь и советы [часть 6]

Отправлено: 11:48, 10-03-2014

 

Пользователь


Сообщения: 119
Благодарности: 0

Профиль | Отправить PM | Цитировать


Dodakaedr, походу, что да) Эта секция только для удаления компонентов? А, что делать с бекапом? Как мне это совместить?

Отправлено: 13:04, 06-07-2014 | #1071



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для Dodakaedr

Ветеран


Сообщения: 863
Благодарности: 262

Профиль | Отправить PM | Цитировать


Цитата Kashtan007:
Эта секция только для удаления компонентов? »
Для файлов и папок.
Цитата Kashtan007:
А, что делать с бекапом? Как мне это совместить? »
С этим я не могу помочь, у меня что-то не получается.

-------
Inno Setup 5 Ultra Unicode

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:04, 06-07-2014 | #1072


Новый участник


Сообщения: 43
Благодарности: 3

Профиль | Отправить PM | Цитировать


Kashtan007, Пример,дальше сам играйся https://yadi.sk/d/CP9bnROEW3iYq
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:27, 06-07-2014 | #1073


Аватара для Dodakaedr

Ветеран


Сообщения: 863
Благодарности: 262

Профиль | Отправить PM | Цитировать


Цитата Kashtan007:
А, что делать с бекапом? Как мне это совместить? »
Цитата Dodakaedr:
С этим я не могу помочь, у меня что-то не получается. »
Получилось вот такое соченить. Тестируйте, вроде работает. Спасибо Sergey3695 за помощь
читать дальше »
Код: Выделить весь код
[Setup]
//WizardImageFile=Images\Дизайн установщика\Приветствие.bmp
AppName=ModPackFull
AppVersion=0.9.1
//SetupIconFile=Images\Дизайн установщика\back.ico
DefaultDirName=ModPackFull
AppendDefaultDirName=no
DirExistsWarning=no

[Languages]
Name: "RU"; MessagesFile: "compiler:Languages\Russian.isl"

[InstallDelete]
Type: filesandordirs; Name: {app}\old_res_mods; Check: del

[ Code]
//--------// Бекап и удаление старых модов [Начало] //--------//
var
  ModCheck, BackupCheck: TNewCheckBox;
  //--------// Бекап и удаление старых модов [Конец] //--------//
function MoveFile(const srcFile, destFile: PAnsiChar): Integer; external 'MoveFileA@kernel32.dll stdcall';

function Del:Boolean;
begin
Result:=ModCheck.Checked;
end;

procedure InitializeWizard();

//--------// Бекап и удаление старых модов [Начало] //--------//
begin
   ModCheck:= TNewCheckBox.Create(PageFromID(wpSelectDir));
   ModCheck.Width := PageFromID(wpSelectDir).SurfaceWidth;
   ModCheck.Parent := PageFromID(wpSelectDir).Surface;
   ModCheck.Caption:='Удалить все старые моды';
   ModCheck.left:=wizardForm.DirEdit.left;
   ModCheck.Top:=wizardForm.DirEdit.top + ScaleY(30);

   BackupCheck:= TNewCheckBox.Create(PageFromID(wpSelectDir));
   BackupCheck.Width := PageFromID(wpSelectDir).SurfaceWidth;
   BackupCheck.Parent := PageFromID(wpSelectDir).Surface;
   BackupCheck.Caption:='Сохранить резервную копию старых модов';
   BackupCheck.left:=wizardForm.DirEdit.left;
   BackupCheck.Top:=ModCheck.top + ScaleY(30);
end;
//--------// Бекап и удаление старых модов [Конец] //--------//

//--------// Бекап и удаление старых модов [Начало]  //--------//

procedure CurStepChanged(CurStep: TSetupStep);
var
FindFiles: TFindRec;
i: integer;
MyFiles: array of string;
MyDir, BackDir: string;
begin
if CurStep=ssInstall then begin
if BackupCheck.Checked then begin
MyFiles:=['*.exe','*.package','*.precomp','*.jpg','*.txt','*.psd']; // указать файлы или маски нужные для бакупа через запятую. при указании маски '*' бакупятся все файлы с вложенными папками
MyDir:=ExpandConstant('{app}'+'\res_mods\'); //папка откуда бакупить
BackDir:=ExpandConstant('{app}'+'\old_res_mods\'); // папка куда бакупить
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 CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var
FindFiles: TFindRec;
MyDir, BackDir: string;
begin
if CurUninstallStep = usPostUninstall then begin
MyDir:=ExpandConstant('{app}'+'\res_mods\'); //папка куда возвращать файлы
BackDir:=ExpandConstant('{app}'+'\old_res_mods\'); // папка откуда брать файлы
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;
//--------// Бекап и удаление старых модов [Конец]  //--------//

-------
Inno Setup 5 Ultra Unicode

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:33, 07-07-2014 | #1074


Пользователь


Сообщения: 119
Благодарности: 0

Профиль | Отправить PM | Цитировать


Dodakaedr, спасибо огромное за помощь) Передай Sergey3695 тоже спасибо)
P.S. Пойду тестировать)

Отправлено: 15:51, 07-07-2014 | #1075


Пользователь


Сообщения: 119
Благодарности: 0

Профиль | Отправить PM | Цитировать


Dodakaedr, к сожалению не работает(
Пробовал много раз, нету ни удаления, ни бекапа(

Отправлено: 16:30, 07-07-2014 | #1076


Аватара для Dodakaedr

Ветеран


Сообщения: 863
Благодарности: 262

Профиль | Отправить PM | Цитировать


Цитата Kashtan007:
к сожалению не работает(
Пробовал много раз, нету ни удаления, ни бекапа( »
Я у себя проверил. Работает и удаление и бекап. Что-то вы напутали у себя. Скиньте в личку ваш оригинальный скрипт с которым вы работаете.....посмотрим что не так. Попробуйте еще этот пример:
читать дальше »
Код: Выделить весь код
[Setup]
//WizardImageFile=Images\Дизайн установщика\Приветствие.bmp
AppName=ModPackFull
AppVersion=0.9.1
//SetupIconFile=Images\Дизайн установщика\back.ico
DefaultDirName=ModPackFull
AppendDefaultDirName=no
DirExistsWarning=no

[Languages]
Name: "RU"; MessagesFile: "compiler:Languages\Russian.isl"

[ Code]
//--------// Бекап и удаление старых модов [Начало] //--------//
var
  ModCheck, BackupCheck: TNewCheckBox;
//--------// Бекап и удаление старых модов [Конец] //--------//
function MoveFile(const srcFile, destFile: PAnsiChar): Integer; external 'MoveFileA@kernel32.dll stdcall';

procedure InitializeWizard();

//--------// Бекап и удаление старых модов [Начало] //--------//
begin
   ModCheck:= TNewCheckBox.Create(PageFromID(wpSelectDir));
   ModCheck.Width := PageFromID(wpSelectDir).SurfaceWidth;
   ModCheck.Parent := PageFromID(wpSelectDir).Surface;
   ModCheck.Caption:='Удалить все старые моды';
   ModCheck.left:=wizardForm.DirEdit.left;
   ModCheck.Top:=wizardForm.DirEdit.top + ScaleY(30);

   BackupCheck:= TNewCheckBox.Create(PageFromID(wpSelectDir));
   BackupCheck.Width := PageFromID(wpSelectDir).SurfaceWidth;
   BackupCheck.Parent := PageFromID(wpSelectDir).Surface;
   BackupCheck.Caption:='Сохранить резервную копию старых модов';
   BackupCheck.left:=wizardForm.DirEdit.left;
   BackupCheck.Top:=ModCheck.top + ScaleY(30);
end;
//--------// Бекап и удаление старых модов [Конец] //--------//

//--------// Бекап и удаление старых модов [Начало]  //--------//

procedure CurStepChanged(CurStep: TSetupStep);
var
FindFiles: TFindRec;
i: integer;
MyFiles: array of string;
MyDir, BackDir: string;
begin
if CurStep=ssInstall then begin
if ModCheck.Checked then
begin
DelTree(ExpandConstant('{app}\old_res_mods'), True, True, True);
end;
if BackupCheck.Checked then begin
MyFiles:=['*.exe','*.package','*.precomp','*.jpg','*.txt','*.psd']; // указать файлы или маски нужные для бакупа через запятую. при указании маски '*' бакупятся все файлы с вложенными папками
MyDir:=ExpandConstant('{app}'+'\res_mods\'); //папка откуда бакупить
BackDir:=ExpandConstant('{app}'+'\old_res_mods\'); // папка куда бакупить
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 CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var
FindFiles: TFindRec;
MyDir, BackDir: string;
begin
if CurUninstallStep = usPostUninstall then begin
MyDir:=ExpandConstant('{app}'+'\res_mods\'); //папка куда возвращать файлы
BackDir:=ExpandConstant('{app}'+'\old_res_mods\'); // папка откуда брать файлы
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;
//--------// Бекап и удаление старых модов [Конец]  //--------//


P.S. Если вы копипастом вставляли, то надо в строчке [ Code] удалить пробел. Вы это сделали?

-------
Inno Setup 5 Ultra Unicode


Последний раз редактировалось Dodakaedr, 07-07-2014 в 20:32.

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:00, 07-07-2014 | #1077


Новый участник


Сообщения: 43
Благодарности: 3

Профиль | Отправить PM | Цитировать


Ребят,может кто-то подсказать можно как-то решить чтобы антивирус не блокировал dll?
Можно как-то добавить сертификат подпись и вообще возможно-ли его создать и прикрутить

Отправлено: 10:11, 08-07-2014 | #1078


SHVtYW4=


Сообщения: 3451
Благодарности: 1273

Профиль | Отправить PM | Цитировать


Цитата Dodakaedr:
P.S. Если вы копипастом вставляли, то надо в строчке [ Code] удалить пробел. Вы это сделали? »
Dodakaedr, Чтоб не было подобного у пользователя: вариант.

В Inno Setup Compiler задумано ещё проще.
Знакомьтесь с настройками Inno Setup Compiler повнимательней:
Откройте Inno Setup Compiler
Инструменты » Настройки редактора
Перейдите во вкладку Копирование текста
Найдите: При копировании текста как UBB код, переключите на Использовать тег [Code] и нажмите ОК
На этом всё.

А дальше, копируете код который хотите вставить:
Выделяете содержимое; Жмёте правую кнопку мыши и выбираете Копировать как UBB код.

И всё, вам при вставке, даже не придётся здесь нажимать т.к при копировании код будет со всеми необходимыми тегами:
[code][Code]
[/code]


Цитата saneksanek:
Можно как-то добавить сертификат подпись и вообще возможно-ли его создать и прикрутить »
SignTool
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:13, 08-07-2014 | #1079


Аватара для Dodakaedr

Ветеран


Сообщения: 863
Благодарности: 262

Профиль | Отправить PM | Цитировать


Цитата Nordek:
В Inno Setup Compiler задумано ещё проще.
Знакомьтесь с настройками Inno Setup Compiler повнимательней:
Откройте Inno Setup Compiler
Инструменты » Настройки редактора
Перейдите во вкладку Копирование текста
Найдите: При копировании текста как UBB код, переключите на Использовать тег [code] и нажмите ОК
На этом всё. »
Спасибо! Но в не которых случаях копируется не корректно!

-------
Inno Setup 5 Ultra Unicode


Последний раз редактировалось Dodakaedr, 08-07-2014 в 19:31.


Отправлено: 19:24, 08-07-2014 | #1080



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 7]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 6] El Sanchez Автоматическая установка приложений 2494 10-03-2014 11:51
Скрипты Inno Setup. Помощь и советы [часть 5] El Sanchez Автоматическая установка приложений 1999 28-03-2013 19:09
Скрипты Inno Setup. Помощь и советы [часть 4] El Sanchez Автоматическая установка приложений 2099 22-05-2012 23:16
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34




 
Переход