Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

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

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

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

Ветеран


Contributor


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


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

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


Изменения
Автор: El Sanchez
Дата: 06-06-2020
Внимание! Данная тема предназначена только для обсуждения написания скриптов!
Остальные вопросы, а также последние версии компилятора в теме
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.3.0 [17.01.2015] - Скачать;



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

Скрипты Inno Setup. Помощь и советы [часть 6] | Скрипты Inno Setup. Помощь и советы [часть 6].7z
Скрипты Inno Setup. Помощь и советы [часть 7] | Скрипты Inno Setup. Помощь и советы [часть 7].7z
Скрипты Inno Setup. Помощь и советы [часть 8] | Скрипты Inno Setup. Помощь и советы [часть 8].7z
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:09, 04-04-2018

 

Аватара для nik1967

Старожил


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

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


Цитата ErikPshat:
создать новую форму именно такого же MsgBox под замену с чекбоксами и подменить стандартный. »
Я немного переделал скрипт - как раз сделал похожим на стандартный MsgBox.
Цитата ErikPshat:
Только мне нужно заменить, в окне выбора папки, кнопки "Далее >" и "Отмена" на кнопки "Да" и "Нет", потому что у меня не инсталлятор, а как бы авторан. »
Я не знаю, как реализовано окно выбора папки.

-------
Если сообщение оказалось полезным для Вас, то помимо спасибо, можно нажать на "Полезное сообщение".


Отправлено: 16:33, 20-11-2018 | #151



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

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


Аватара для ErikPshat

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


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

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


nik1967, в ообщем я сделал вот такую реализацию своей идеи, можете заценить и указать на ошибки:

Готовый примар реализации чекбоксов на странице выбора папки:
Код: Выделить весь код
#define   Name       "MyAppName"
#define   Version    "1.0 Build 1234"

[Setup]
AppName={#Name}
AppVersion={#Version}
DefaultDirName={src}

;[Files]
;Source: "{app}\4GB.txt"; DestDir: "{app}"; Check: Check0();
;Source: "{app}\2GB.txt"; DestDir: "{app}"; Check: Check1();
;Source: "{app}\NoLimit.txt"; DestDir: "{app}"; Check: Check2();
;Source: "{app}\Signed.txt"; DestDir: "{app}"; Check: Check3();

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

[Messages]
ru.WizardSelectDir=Выбор папки для разделения
ru.SelectDirDesc=Какую папку вы хотите разделить на части и упаковать их в PKG?
ru.SelectDirLabel3=Программа разделит выбранную папку на части по размерам,%nв зависимости от сделанного вами выбора в чекбоксах.
ru.SelectDirBrowseLabel=Для выбора папки, которую вам необходимо разделить, нажмите «Обзор».
ru.DiskSpaceMBLabel=Требуется как минимум 2 или 4 ГБ свободного дискового пространства.

[CustomMessages]
ru.Check4GB=Разделить папку на части по 4 Гигабайта
ru.Check2GB=Разделить папку на части по 2 Гигабайта
ru.CheckNot=Не разделять папку, упаковать целиком
ru.CheckSig=Подписать PKG (создать "retail_signed.pkg")

[ Code ]
var
Check: array [0..3] of TCheckBox;

function Check0(): boolean; begin Result := Check[0].Checked; end;
function Check1(): boolean; begin Result := Check[1].Checked; end;
function Check2(): boolean; begin Result := Check[2].Checked; end;
function Check3(): boolean; begin Result := Check[3].Checked; end;

procedure GetCheck(Sender: TObject);
begin
  case sender of
    Check[0]: if Check[0].Checked then begin Check[1].Checked := False; Check[2].Checked := False; end;
    Check[1]: if Check[1].Checked then begin Check[2].Checked := False; Check[0].Checked := False; end;
    Check[2]: if Check[2].Checked then begin Check[1].Checked := False; Check[0].Checked := False; end;
  end;
end;

procedure InitializeWizard();
begin
  Check[0] := TCheckBox.Create(WizardForm);
  with Check[0] do
  begin
    Parent := WizardForm.SelectDirPage;
    Checked := True;
    Left:= ScaleX(4);
    Top := ScaleY(115);
    Width:=ScaleX(280);
    OnClick := @GetCheck;
    // Будет 4GB.txt, если имеется в них необходимость, нужно раскомментировать их в секции [Files]
    Caption := ExpandConstant(' {cm:Check4GB}');
  end;

  Check[1] := TCheckBox.Create(WizardForm);
  with Check[1] do
  begin
    Parent := WizardForm.SelectDirPage;
    Left:= ScaleX(4);
    Top := ScaleY(135);
    Width:=ScaleX(280);
    OnClick := @GetCheck;
    // Будет 2GB.txt, если имеется в них необходимость, нужно раскомментировать их в секции [Files]
    Caption := ExpandConstant(' {cm:Check2GB}');
  end;

  Check[2] := TCheckBox.Create(WizardForm);
  with Check[2] do
  begin
    Parent := WizardForm.SelectDirPage;
    Left:= ScaleX(4);
    Top := ScaleY(155);
    Width:=ScaleX(350);
    OnClick := @GetCheck;
    // Будет NoLimit.txt, если имеется в них необходимость, нужно раскомментировать их в секции [Files]
    Caption := ExpandConstant(' {cm:CheckNot}');
  end;

  Check[3] := TCheckBox.Create(WizardForm);
  with Check[3] do
  begin
    Parent := WizardForm.SelectDirPage;
    Left:= ScaleX(4);
    Top := ScaleY(185);
    Width:=ScaleX(280);
    // Будет Signed.txt, если имеется в них необходимость, нужно раскомментировать их в секции [Files]
    Caption := ExpandConstant(' {cm:CheckSig}');
  end;
end;

Только какие потом отлавливать переменные я пока не придумал )))
  • Выбранная папка вроде: {#AppName}
  • Выбранный чекбокс как-то так: Check()

Отправлено: 19:52, 20-11-2018 | #152


Ветеран


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

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


Цитата ErikPshat:
потому что у меня не инсталлятор, а как бы авторан. Может вы мне подскажете, как это нужно организовать?»
Если у Вас не инсталляция, а «как бы авторан» — то используйте в качестве рабочего средства не Inno Setup, а другие, более подходящие для того инструменты, например, AutoPlay Media Studio и т.п.

Отправлено: 19:56, 20-11-2018 | #153


Аватара для Chudmin

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


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

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


Здравствуйте всем! Господа-товарищи, я так понимаю, в таком виде

Скрытый текст
Код: Выделить весь код
[Code]
var
  Check: array [0..3] of TCheckBox;

function Check_0(): Boolean;
begin
  Result:= Check[0].Checked;
end;

function Check_1(): Boolean;
begin
  Result:= Check[1].Checked;
end;

function Check_2(): Boolean;
begin
  Result:= Check[2].Checked;
end;

function Check_3(): Boolean;
begin
  Result:= Check[3].Checked;
end;

procedure Check0(Sender: TObject);
begin
  if Check[0].Checked then begin
    Check[1].Checked:= False;
    Check[2].Checked:= False;
    Check[3].Checked:= False;
  end;

  if (Check[0].Checked = False) and (Check[1].Checked = False) and (Check[2].Checked = False) and (Check[3].Checked = False) then Check[0].Checked:= True;
end;

procedure Check1(Sender: TObject);
begin
  if Check[1].Checked then begin
    Check[0].Checked:= False;
    Check[2].Checked:= False;
    Check[3].Checked:= False;
  end;

  if (Check[0].Checked = False) and (Check[1].Checked = False) and (Check[2].Checked = False) and (Check[3].Checked = False) then Check[1].Checked := True;
end;

procedure Check2(Sender: TObject);
begin
  if Check[2].Checked then begin
    Check[0].Checked:= False;
    Check[1].Checked:= False;
    Check[3].Checked:= False;
  end;

  if (Check[0].Checked = False) and (Check[1].Checked = False) and (Check[2].Checked = False) and (Check[3].Checked = False) then Check[2].Checked:= True;
end;

procedure Check3(Sender: TObject);
begin
  if Check[3].Checked then begin
    Check[0].Checked:= False;
    Check[1].Checked:= False;
    Check[2].Checked:= False;
  end;

  if (Check[0].Checked = False) and (Check[1].Checked = False) and (Check[2].Checked = False) and (Check[3].Checked = False) then Check[3].Checked:= True;
end;

procedure InitializeWizard();
begin
  Check[0]:= TCheckBox.Create(WizardForm);
  with Check[0] do begin
    Parent:= WizardForm.SelectTasksPage;
    Checked:= True;
    Left:=ScaleX(4);
    Top:= ScaleY(90);
    Width:=ScaleX(280);
    OnClick:= @Check0;
    // Будет Win_7.txt
    Caption:= ' Стандартные иконки в стиле Win 7';
  end;

  Check[1]:= TCheckBox.Create(WizardForm);
  with Check[1] do begin
    Parent:= WizardForm.SelectTasksPage;
    Left:=ScaleX(4);
    Top:= ScaleY(115);
    Width:=ScaleX(280);
    OnClick:= @Check1;
    // Будет Win_10.txt
    Caption:= ' Стандартные иконки в стиле Win 10';
  end;

  Check[2]:= TCheckBox.Create(WizardForm);
  with Check[2] do begin
    Parent:= WizardForm.SelectTasksPage;
    Left:=ScaleX(4);
    Top:= ScaleY(140);
    Width:=ScaleX(350);
    OnClick:= @Check2;
    // Будет Win_10_2.txt
    Caption:= ' Станадартные иконки в стиле Win 7 + Win 10';
  end;

  Check[3]:= TCheckBox.Create(WizardForm);
  with Check[3] do begin
    Parent:= WizardForm.SelectTasksPage;
    Left:=ScaleX(4);
    Top:= ScaleY(165);
    Width:=ScaleX(280);
    OnClick:= @Check3;
    // Будет Dop_Win_7.txt
    Caption:= ' Дополнительные иконки в стиле Win 7';
  end;
end;

чекбоксы прикрутить нельзя к самостоятельно созданной странице, только к стандартным?

Последний раз редактировалось Chudmin, 21-11-2018 в 11:15.


Отправлено: 11:06, 21-11-2018 | #154


Аватара для Dodakaedr

Ветеран


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

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


Chudmin,
Типа такого
Код: Выделить весь код
Check[0].Parent := CustomPage.Surface
CustomPage это созданная страница.

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


Последний раз редактировалось Dodakaedr, 21-11-2018 в 16:27.

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

Отправлено: 15:13, 21-11-2018 | #155


Аватара для Chudmin

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


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

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


Цитата Dodakaedr:
Типа такого »
Благодарствую, - ведь видел и в Справке и примерах, но вылетело из головы.

Отправлено: 20:57, 21-11-2018 | #156


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


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

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


Дорогие форумчане, интересует следующий вопрос.
Возможно ли как-нибудь уловить ошибки которые возникают при установке программы? Например: если ставить с пацарапанного или грязного диска получим ошибку "The Source file is corrupted",
которая успешно отобразится на экране. Мне же нужно название этой ошибки отправить на сервер (Или возможно есть другой способ).
У кого какие мысли возникают?

Отправлено: 11:38, 22-11-2018 | #157


Аватара для Chudmin

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


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

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


Здравствуйте всем! Подскажите пожалуйста, функция UpdateReadyMemo действует только для стандартных страниц, или можно включать сюда и созданные пользователем тоже.

Отправлено: 12:33, 22-11-2018 | #158


Аватара для boss911

Alien


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

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


Цитата RbwKz:
Мне же нужно название этой ошибки отправить на сервер »
Разве что отправить лог установки, где, возможно, будет отображена та или иная ошибка установки. Запускать инсталлятор нужно с параметром/ключом командной строки.

Код: Выделить весь код
/LOG
Указывает инсталлятору создать log-файл в папке TEMP для подробного отчета о действиях и событиях при установке, обработке записей секции [Run], предпринятых в ходе установки. Применяется при отслеживании ошибок. Например, если вы подозреваете, что файл не был заменен, хотя должен был, log-файл сообщит, что файл был действительно пропущен и почему это произошло.
Log-файлу присваивается уникальное имя на базе текущей даты. (Существующие файлы не перезаписываются и не дополняются.)
Информация, содержащаяся в log-файле, техническая и поэтому не может быть понята пользователем. Формат файла может измениться без уведомления.

/LOG="filename"
Параметр похож на /LOG, но в отличие от него позволяет указать фиксированный путь/имя файла для log-файла. Если файл с указанным именем уже существует, он будет заменен. Если файл не может быть создан, установка прервется и выдаст сообщение об ошибке.

Отправлено: 17:10, 22-11-2018 | #159


Аватара для magsood

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


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

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


I want create custom setup with inno setup like this:
https://drive.google.com/open?id=1L2...MJ7viq2KvhR6sA
Please help for iss code!

Отправлено: 11:30, 02-12-2018 | #160



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 7] El Sanchez Автоматическая установка приложений 2499 02-02-2015 08:59
Скрипты 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




 
Переход