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

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

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

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

Ветеран


Contributor


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


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

Профиль | Отправить 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] - Скачать;


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:
Inno Setup [все вопросы] часть 1
Inno Setup [все вопросы] часть 2
Скрипты Inno Setup. Помощь и советы [часть 3]
Скрипты Inno Setup. Помощь и советы [часть 4]

Отправлено: 03:49, 21-05-2012

 

Аватара для Gnom_aka_Lexander

Ветеран


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

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


Цитата apozlevich:
Вот FAQ, Knowledge Base и референс от автора. »
А, ну да. там настолько мало полезного, что я и забыл совсем про них. А база знаний создавалась настолько давно, что половина примеров уже просто неактуальна. Родная встроенная справка - наше все. хотя, да, на примерах работать проще. именно для этого с инно идет немаленькая пачка примеров в папке Examples

-------
Я люблю помогать. Но не путайте: "Помогите мне" и "Сделайте за меня" - это совершенно разные понятия.

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

Отправлено: 14:10, 26-09-2012 | #1001



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

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


Аватара для Ivan_009

Ветеран


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

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


Возможно ли сделать так чтобы при запуске инсталлятора появлялось сообщение о выборе оформления одного или второго вида.... PS У меня инсталл в двух разных оформлениях нужно сделать так чтобы пользователь сам выбрал какое оформление ему использовать...Подскажите если кто знает как это реализовать...Заранее спасибо за любую помощь...

Отправлено: 14:49, 26-09-2012 | #1002


Аватара для R.i.m.s.k.y.

Ветеран


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

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


Ivan_009, складывается ощущение будто инсталл важнее инсталлириуемой проги
Что есть глюпость.

Цитата apozlevich:
Вот напишу по вашим примерам - выложу »
а) Все примеры в шапке.
б) Скрипт ты пишешь для себя сам.

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!


Отправлено: 14:52, 26-09-2012 | #1003


Аватара для Tco 03

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


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

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


Цитата Gnom_aka_Lexander:
в обработчике чекбокса пишешь:
Код:
case твой Чекбокс.Checked of
true : WizardForm.ComponentsList.CheckItem(0, cocheck);
false: WizardForm.ComponentsList.CheckItem(0, coUncheck);
end;
там, где нолик - порядковый номер твоего компонента. и учитывай, что нумерация начинается с нуля. »
Что-то не работает такая функция. Или Чекбокс обязательно должен находиться на SelectComponentsPage?

Отправлено: 15:21, 26-09-2012 | #1004


Аватара для Gnom_aka_Lexander

Ветеран


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

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


Цитата Tco 03:
Или Чекбокс обязательно должен находиться на SelectComponentsPage? »
Не обязательно. после нее тоже можно. а вот раньше - не факт - если был найден АппИД в реестре, то при входе на страницу выбора компонентов, все компоненты восстанавливаются по предидущей установке. но это только в первый раз. а потом уже должен сохраняться выбор

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

-------
Я люблю помогать. Но не путайте: "Помогите мне" и "Сделайте за меня" - это совершенно разные понятия.

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

Отправлено: 15:31, 26-09-2012 | #1005


Аватара для Ivan_009

Ветеран


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

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


Gnom_aka_Lexander, Примерчик не даш пожалуйста...

Отправлено: 15:48, 26-09-2012 | #1006


Аватара для Mailchik

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


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

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


Ivan_009,
Код: Выделить весь код
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Code]
var
 Test : boolean;

function InitializeSetup : boolean;
 begin
  Test := MsgBox('Использовать стандартное оформление?', mbInformation, MB_YESNO) = idYes;
  Result := True;
end;

procedure InitializeWizard;
 begin
  case Test of
   True: begin
    with WizardForm do begin
     ClientWidth := ScaleX(400);
     ClientHeight := ScaleX(400);
     Color := clRed;
    end;
   end;
   False: begin
    with WizardForm do begin
     ClientWidth := ScaleX(500);
     ClientHeight := ScaleX(200);
     Color := clLime;
    end;
   end;
  end;
end;

Последний раз редактировалось Mailchik, 26-09-2012 в 21:27. Причина: !

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

Отправлено: 21:20, 26-09-2012 | #1007


Аватара для Johny777

Ветеран


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

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


Цитата t16bz:
Нужно сделать чтобы перед появлением WizardForm появлялась, например Forma1, и только после ее закрытия появлялась WizardForm »
пример 1:
читать дальше »
Код: Выделить весь код
[Setup]
AppName=Reg_Path_Demo
AppVerName=Reg_Path_Demo
DefaultDirName={pf}\Reg_Path_Demo



[  code]
function CreateFormAtFirst: boolean;
var
  fForm: TForm;
begin
  fForm := TForm.Create(nil);
  with fForm do
  begin
    ClientWidth := ScaleX(360);
    ClientHeight := ScaleY(487);
    Position := poScreenCenter;
    BorderStyle := bsDialog;
    Caption := 'Лучший зпголовок'

    
    with TButton.Create(nil) do
    begin
      Parent := fForm;
      SetBounds(fForm.ClientWidth - ScaleX(75),fForm.ClientHeight - ScaleY(30),Scalex(70),ScaleY(25));
      Caption := SetupMessage(msgButtonCancel);
      ModalResult := mrCancel;
      Cursor := crHand;
    end;

    with TButton.Create(nil) do
    begin
      Parent := fForm;
      SetBounds(fForm.ClientWidth - ScaleX(155),fForm.ClientHeight - ScaleY(30),Scalex(70),ScaleY(25));
      Caption := SetupMessage(msgButtonOK);
      ModalResult := mrOk;
      Cursor := crHand;
    end;
    
    Result := ShowModal = mrOk;
    Free; 
  end;
end;


function InitializeSetup(): Boolean;
begin
  Result := CreateFormAtFirst;
end;


пример 2:
читать дальше »
Код: Выделить весь код
[Setup]
AppName=Reg_Path_Demo
AppVerName=Reg_Path_Demo
DefaultDirName={pf}\Reg_Path_Demo



[  code]
procedure InitializeWizard();
var
  fForm: TForm;
begin
  fForm := TForm.Create(nil);
  with fForm do
  begin
    ClientWidth := ScaleX(360);
    ClientHeight := ScaleY(487);
    Position := poScreenCenter;
    BorderStyle := bsDialog;
    Caption := 'Лучший зпголовок'


    with TButton.Create(nil) do
    begin
      Parent := fForm;
      SetBounds(fForm.ClientWidth - ScaleX(75),fForm.ClientHeight - ScaleY(30),Scalex(70),ScaleY(25));
      Caption := SetupMessage(msgButtonCancel);
      ModalResult := mrCancel;
      Cursor := crHand;
    end;

    with TButton.Create(nil) do
    begin
      Parent := fForm;
      SetBounds(fForm.ClientWidth - ScaleX(155),fForm.ClientHeight - ScaleY(30),Scalex(70),ScaleY(25));
      Caption := SetupMessage(msgButtonOK);
      ModalResult := mrOk;
      Cursor := crHand;
    end;

    ShowModal;
    Free; 
  end;
  
  /// остальной код 
  
end;

в этом примере продолжению выполнения процедуры не даёт команда форме ShowModal;


Ваня!
для тебя родимого как вариант
если б делал выбор стилей сделал бы так:

читать дальше »
Код: Выделить весь код
[Setup]
AppName=Reg_Path_Demo
AppVerName=Reg_Path_Demo
DefaultDirName={pf}\Reg_Path_Demo



[  code]
var
  wAnswer: Byte;
  OK_Button: TButton;
  
procedure sComboBoxOnChange(Sedner: TObject);
begin
  OK_Button.SetFocus;
end;

function AskForStyle(DefStyle:Byte;sQuestion,sStyle1,sStyle2:String):Byte;
var
  sComboBox: TComboBox;
  sForm: TForm;
begin
  sForm := TForm.Create(nil);
  with sForm do
  begin
    ClientWidth := ScaleX(200);
    ClientHeight := ScaleY(70);
    Position := poScreenCenter;
    BorderStyle := bsDialog;
    Caption := sQuestion;

    sComboBox := TComboBox.Create(nil)         
    with sComboBox do
    begin
      Parent := sForm;
      SetBounds(ScaleX(5),ScaleY(10),ScaleX(130),ScaleY(21));
        Items.add(sStyle1);
        Items.add(sStyle2);
      Style := csDropDownList;
      Cursor := crHand;
      ItemIndex := DefStyle;
      OnChange := @sComboBoxOnChange;
    end;

    with TButton.Create(nil) do
    begin
      Parent := sForm;
      SetBounds(sForm.ClientWidth - ScaleX(75),sForm.ClientHeight - ScaleY(30),Scalex(70),ScaleY(25));
      Caption := SetupMessage(msgButtonCancel);
      ModalResult := mrCancel;
      Cursor := crHand;
    end;

    OK_Button := TButton.Create(nil)
    with OK_Button do
    begin
      Parent := sForm;
      SetBounds(sForm.ClientWidth - ScaleX(155),sForm.ClientHeight - ScaleY(30),Scalex(70),ScaleY(25));
      Caption := SetupMessage(msgButtonOK);
      ModalResult := mrOk;
      Cursor := crHand;
    end;
    
    sForm.ActiveControl := OK_Button;

    if ShowModal = mrOk then Result := mrOk + sComboBox.ItemIndex else Result := 0;

    Free; 

  end;
end;


function InitializeSetup(): Boolean;
begin
  ///////////////////(стиль по умолчаниб - 0 или 1//// название заголовка окна//// название первого стиля /// название второго стиля)
  /// Функция вернёт число равное 0 - нажали на отмену, 1 - 1 + индекс выбранного айтема(0+1), 2 - индекс выбранного айтема
  wAnswer := AskForStyle(1,'какой стиль юзать?','Стиль 1','Стить 2');
  Result := wAnswer <> 0;
end;


procedure InitializeWizard();
begin
  /// здесь общий код для двух стилей

  if wAnswer = 1 then
  begin
    /// код для первого слитя
  
    MsgBox('будет использован стиль 1', mbInformation, MB_OK);
  end else
  begin
    /// код для вторго слитя

    MsgBox('будет использован стиль 2', mbInformation, MB_OK);
  end;
    
end;

Последний раз редактировалось Johny777, 27-09-2012 в 15:22.

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

Отправлено: 11:33, 27-09-2012 | #1008


Аватара для ispolin

Ветеран


Автор проектов


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

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


подскажите плиз что куда прописать

http://img837.imageshack.us/img837/259/87614951.jpg

нужно скрыть что куда распаковывается и оставить лишь надпись "Распаковка файлов..."

и ещё

http://img337.imageshack.us/img337/7807/86402742.jpg

как надпись сделать другим цветом, уж больно блёклая

-------


Отправлено: 12:59, 27-09-2012 | #1009


Аватара для R.i.m.s.k.y.

Ветеран


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

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


Цитата ispolin:
нужно скрыть что куда распаковывается и оставить лишь надпись "Распаковка файлов..."
как надпись сделать другим цветом, уж больно блёклая»
Код: Выделить весь код
procedure InitializeWizard();
begin
//прячем имена файлов
WizardForm.FileNameLabel.Visible:= False;
//голубой цвет текста вместо блеклого
  with WizardForm do begin
    with BeveledLabel do begin
    Font.Color:=clBlue;
    Enabled:=True;
    end;
  end;
end;

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!


Последний раз редактировалось R.i.m.s.k.y., 27-09-2012 в 13:25.

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

Отправлено: 13:09, 27-09-2012 | #1010



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты 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
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
Inno Setup tradeukraine Вебмастеру 3 13-06-2006 20:39




 
Переход