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

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

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

Ветеран


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


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

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


Изменения
Автор: jameszero
Дата: 08-11-2010
Описание: тема закрыта
Лимит страниц.
Тема закрыта.
Продолжение по ссылке Скрипты Inno Setup. Помощь и советы [часть 3]




Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


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

  • Inno Script Generator - ещё один редактор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать;

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы. Официальный сайт - недоступен.
    Последняя версия: 2.0.8 [12.11.2006] - Страница с зеркалами;

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

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

  • InnoSetup Script Joiner - Программа для объединения нескольких скриптов InnoSetup в один;

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


Ссылка на архив предыдущей темы (также можно скачать из вложения)

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 22:06, 23-08-2009

 

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


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

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


Помагите научитса пользоватса Inno Script Joiner!рускоэ FAQ по нему читал на когда пробую через командною строку то не срабативает! а как соедининить скрипти в IE я совсем не понял!

Отправлено: 12:21, 20-11-2009 | #431



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

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


Ветеран


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

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


Colapse, нужно просто выделить необходимые скрипты, нажать правую кнопку и в контекстном меню выбрать Join Scripts. И получите объединённый скрипт joined.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:14, 20-11-2009 | #432


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


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

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


Здравствуйте.
Подскажите пожалуйста, как можно сделать превью в виде картинки для каждого компонента? Если можно, по пунктам.
Заранее благодарен

Последний раз редактировалось VLADIS LOVE, 20-11-2009 в 20:33.


Отправлено: 17:43, 20-11-2009 | #433


Аватара для YURSHAT

Старожил


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

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


Цитата VLADIS LOVE:
Подскажите пожалуйста, как можно сделать превью в виде картинки для каждого компонента? »
Можно
так
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program version 1.5
DefaultDirName={pf}\My Program

[Files]
; Файлы с описанием
Source: ReadMe1.rtf; Flags: dontcopy
Source: ReadMe2.rtf; Flags: dontcopy
Source: ReadMe3.rtf; Flags: dontcopy
; Картинки к описаниям
Source: Image1.bmp; Flags: dontcopy
Source: Image2.bmp; Flags: dontcopy
Source: Image3.bmp; Flags: dontcopy
; Устанавливаемые файлы
; Будут установлены только если отмечен соответсвующий чекбокс
; Нумерация с нуля - CheckedBox(0) - первый; CheckedBox(1) - второй и т.д.
Source: compiler:MyProg.exe; DestDir: {app}; Flags: ignoreversion; Check: CheckedBox(0)
Source: compiler:MyProg.chm; DestDir: {app}; Flags: ignoreversion; Check: CheckedBox(1)
Source: Files\*; DestDir: {app}\add; Flags: ignoreversion recursesubdirs createallsubdirs; Check: CheckedBox(2)

[_Code]
var
  Page: TWizardPage;
  ListBox: TNewCheckListBox;
  Memo: TRichEditViewer;
  CheckLabel: TLabel;
  MouseY: integer;
  BitmapImage: TBitmapImage;
  InfoBmp: array of TBitmap;

function CheckedBox(ItemNumber: integer): Boolean;
begin                                    // проверка,
  Result:= ListBox.Checked[ItemNumber];  // отмечен ли соответствующий чекбокс
end;

// ВНИМАНИЕ! Данная реализация процедур CheckOnClick и CheckMouseMove применима только если ListBox отображается без скролбара,
// т.е. все чекбоксы видны без промотки.
procedure CheckOnClick (Sender: TObject); // событие на клик
begin
  if MouseY < ListBox.Items.Count then
    begin // выполняется, если кликнули на чекбокс с номером MouseY
      ListBox.Checked[MouseY]:= Not(ListBox.Checked[MouseY]);
      // если надо при клике выполнить еще что-то, дописываем сюда
    end;
end;

procedure CheckMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin                                       // событие на движение мыши
  MouseY:= Y/ScaleY(16);
  if MouseY < ListBox.Items.Count then
    begin  // выполняется, если курсор пересекает чекбокс с номером MouseY
      Memo.RTFText:= TStrings(ListBox.ItemObject[MouseY]).Text;
      BitmapImage.Bitmap:= InfoBmp[MouseY];
      // если надо при движении курсора выполнить еще что-то, дописываем сюда
    end;
end;

procedure InitializeWizard();
var
  i: integer;
begin
  ExtractTemporaryFile('ReadMe1.rtf'); // распаковка фалов описания
  ExtractTemporaryFile('ReadMe2.rtf');
  ExtractTemporaryFile('ReadMe3.rtf');
  ExtractTemporaryFile('Image1.bmp');  // распаковка картинок к описаниям
  ExtractTemporaryFile('Image2.bmp');
  ExtractTemporaryFile('Image3.bmp');

  // Создание страницы, которая будет отображена после wpWelcome
  // Надо в другом месте, меняем wpWelcome на wpSelectDir или другую
  Page:=CreateCustomPage(wpWelcome, 'Интерфейс', 'Выберите компоненты, которые вы хотите установить.')

  ListBox:= TNewCheckListBox.Create(Page); // создание списка чекбоксов
  with ListBox do
    begin
      Left   := 15
      Top    := 0
      Width  := 200
      Height := 149
      Parent := Page.Surface
      // Добавляем нужное кол-во чекбоксов
      AddCheckBox('Моя программа', '', 0, True, True, True, True, TStringList.Create);
      AddCheckBox('Хелп', '', 1, True, True, False, True, TStringList.Create);
      AddCheckBox('Дополнительные файлы', '', 1, True, True, False, True, TStringList.Create);
      // Загружаем файлы описания (каждому чекбоксу - свой файл)
      TStrings(ItemObject[0]).LoadFromFile(ExpandConstant('{tmp}\ReadMe1.rtf'));
      TStrings(ItemObject[1]).LoadFromFile(ExpandConstant('{tmp}\ReadMe2.rtf'));
      TStrings(ItemObject[2]).LoadFromFile(ExpandConstant('{tmp}\ReadMe3.rtf'));
    end;

  Memo:= TRichEditViewer.Create(Page); // создаем Memo для отображения описаний
  with Memo do
    begin
      Left        := ListBox.Left + ListBox.Width + 8;
      Top         := ListBox.Top;
      Width       := ListBox.Width;
      Height      := ListBox.Height;
      Color       := clBtnFace;
      Enabled     := False;
      BorderStyle := bsNone;
      Parent      := Page.Surface;
    end;

  CheckLabel:= TLabel.Create(Page);  // создаем TLabel (для событий мыши)
  with CheckLabel do
    begin
      Width       :=ListBox.Width;
      Height      :=ListBox.Height;
      Autosize    :=False;
      Transparent :=True;
      OnMouseMove :=@CheckMouseMove;
      OnClick     :=@CheckOnClick;
      Parent      :=ListBox;
      Cursor      := 1;
    end;

  BitmapImage := TBitmapImage.Create(Page); // создаем TBitmapImage для
  with BitmapImage do                       // отображения картинок
    begin                                   // к описаниям
      AutoSize := True;
      Left        := ListBox.Left;
      Top         := ListBox.Top + ListBox.Height + 8;
      Width       := ListBox.Width;
      Height      := 32;
      Parent := Page.Surface;
    end;

  for i:=0 to ListBox.Items.Count - 1 do  // по кол-ву чекбоксов
    begin                                 // создаем  TBitmap-ы
      SetArrayLength(InfoBmp, i+1);
      InfoBmp[i]:= TBitmap.Create;
    end;
  // для каждого чекбокса грузим свою картинку к описанию
  InfoBmp[0].LoadFromFile(ExpandConstant('{tmp}\Image1.bmp'));
  InfoBmp[1].LoadFromFile(ExpandConstant('{tmp}\Image2.bmp'));
  InfoBmp[2].LoadFromFile(ExpandConstant('{tmp}\Image3.bmp'));
end;

или
так
Код: Выделить весь код
[Setup]
AppName=AppName
AppVerName=AppVerName
CreateAppDir=false

[Files]
Source: compiler:WizModernSmallImage.bmp; DestDir: {tmp}; Flags: dontcopy
Source: compiler:WizModernSmallImage-IS.bmp; DestDir: {tmp}; Flags: dontcopy

[_Code]
Var
  Page: TWizardPage;
  Text1,Text2,Text3,Text4: TNewStaticText;
  Panel: TPanel;
  ListBox: TListBox;
  Check1,Check2: TCheckBox;
  NoChecks,Label1,Label2: TLabel;
  Image: TBitmapImage;

Function Checked1: Boolean;
begin
  Result:=Check1.Checked
end;

Function Checked2: Boolean;
begin
  Result:=Check2.Checked
end;

Procedure Check1OnClick (Sender: TObject);
begin
  Check1.Checked:=Not(Check1.Checked)
end;

Procedure Check2OnClick (Sender: TObject);
begin
  Check2.Checked:=Not(Check2.Checked)
end;

procedure Check1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
Text4.Enabled:=True
Text4.Caption:='Описание первого компонента'
Image.Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizModernSmallImage.bmp'))
Image.Visible:=True
end;

procedure Check2MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
Text4.Enabled:=True
Text4.Caption:='Описание второго компонента'
Image.Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizModernSmallImage-IS.bmp'))
Image.Visible:=True
end;

procedure NoChecksMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
Text4.Enabled:=False
Text4.Caption:='Наведите курсор мыши на название компонента, чтобы прочесть его описание.'
Image.Visible:=False
end;

Procedure InitializeWizard();
begin
  ExtractTemporaryFile('WizModernSmallImage.bmp')
  ExtractTemporaryFile('WizModernSmallImage-IS.bmp')

  Page:=CreateCustomPage(2, 'Компоненты устанавливаемой программы', 'Выберите компоненты, которые вы хотите установить.')

  Text1:=TNewStaticText.Create(Page)
  Text1.Left:=0
  Text1.Top:=0
  Text1.Width:=417
  Text1.Height:=28
  Text1.AutoSize:=False
  Text1.WordWrap:=True
  Text1.Caption:='Выберите компоненты программы, которые вы хотите установить. Нажмите на кнопку "Далее" для продолжения.'
  Text1.Parent:=Page.Surface

  Text2:=TNewStaticText.Create(Page)
  Text2.Left:=0
  Text2.Top:=63
  Text2.Width:=130
  Text2.Height:=42
  Text2.AutoSize:=False
  Text2.WordWrap:=True
  Text2.Caption:='Выберите компоненты программы для установки:'
  Text2.Parent:=Page.Surface

  Image:=TBitmapImage.Create(WizardForm)
  Image.Left:=0
  Image.Top:=Text2.Top + Text2.Height + 10;
  Image.Width:=55
  Image.Height:=55
  Image.Parent:=Page.Surface

  Panel:=TPanel.Create(Page)
  Panel.Left:=287
  Panel.Top:=60
  Panel.Width:=130
  Panel.Height:=160
  Panel.BevelInner:=bvLowered
  Panel.Parent:=Page.Surface

  Text3:=TNewStaticText.Create(Page)
  Text3.Left:=293
  Text3.Top:=54
  Text3.Font.Color:=clBlue
  Text3.Caption:='Описание'
  Text3.Parent:=Page.Surface

  Text4:=TNewStaticText.Create(Page)
  Text4.Left:=4
  Text4.Top:=10
  Text4.Width:=122
  Text4.Height:=140
  Text4.AutoSize:=False
  Text4.WordWrap:=True
  Text4.Parent:=Panel

  NoChecks:=TLabel.Create(Page)
  NoChecks.Width:=WizardForm.Width
  NoChecks.Height:=WizardForm.Height
  NoChecks.Autosize:=False
  NoChecks.Transparent:=True
  NoChecks.OnMouseMove:=@NoChecksMouseMove
  NoChecks.Parent:=Page.Surface

  ListBox:=TListBox.Create(Page)
  ListBox.Left:=135
  ListBox.Top:=60
  ListBox.Width:=140
  ListBox.Height:=160
  ListBox.Parent:=Page.Surface

  Check1:=TCheckBox.Create(Page)
  Check1.Left:=2
  Check1.Top:=0
  Check1.Checked:=True
  Check1.Parent:=ListBox

  Check2:=TCheckBox.Create(Page)
  Check2.Left:=2
  Check2.Top:=16
  Check2.Checked:=True
  Check2.Parent:=ListBox

  Label1:=TLabel.Create(Page)
  Label1.Left:=16
  Label1.Top:=2
  Label1.Caption:='Компонент 1'
  Label1.OnClick:=@Check1OnClick
  Label1.OnMouseMove:=@Check1MouseMove
  Label1.Parent:=Check1

  Label2:=TLabel.Create(Page)
  Label2.Left:=16
  Label2.Top:=2
  Label2.Caption:='Компонент 2'
  Label2.OnClick:=@Check2OnClick
  Label2.OnMouseMove:=@Check2MouseMove
  Label2.Parent:=Check2
end;

-------
Если я знаю, что знаю мало, я добьюсь того, чтобы знать больше... В.И. Ленин
Krinkels.org - сжатие данных и создание инсталляторов

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

Отправлено: 21:51, 20-11-2009 | #434


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


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

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


Вопрос простой и наверняка уже задавался. Но 200 страниц я не осилю.
Что прописать в скрипте, для возможности выбора вот к примеру этих установок. И вообще появления этого окна во время установки.



С созданием ярлыков все понятно, а вот с установкой дополнительных программ ничего не получается.
Какой нибудь скрипт для примера с флагом для доп программ. А дальше я сам разберусь.
Спасибо.

Отправлено: 15:49, 21-11-2009 | #435


Аватара для Habetdin


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


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

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


100pudov, http://www.jrsoftware.org/ishelp/topic_taskssection.htm

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке


Отправлено: 15:53, 21-11-2009 | #436


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


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

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


Habetdin Спасибо конечно. Это из справки, я прочитал. Опять же там только про создание ярлыков.
Мне нужна всего одна строчка из [Tasks], которая добавит в установку, к примеру пункт (с флагом) для установки DirectX 9.0c.
На примере все понятнее.

Отправлено: 16:12, 21-11-2009 | #437


Аватара для Habetdin


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


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

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


100pudov, пример:
Код: Выделить весь код
[Tasks]
Name: dxinstall; Description: "Обновить DirectX"; GroupDescription: "Дополнительно:"

[Run]
Filename: "{src}\DirectX\dxsetup.exe"; Parameters: "/silent"; Tasks: dxinstall

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке

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

Отправлено: 16:18, 21-11-2009 | #438


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


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

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


Habetdin Спасибо. То, что надо. Все сработало, все легко.
На примере, всегда легче все воспринимается.
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:32, 21-11-2009 | #439


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


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

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


можно скрипт на черный цвет инстала,белиэ буквы в нем?плис!

Последний раз редактировалось Colapse, 22-11-2009 в 00:36.


Отправлено: 23:47, 21-11-2009 | #440



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58
[архив] Inno Setup .:[все вопросы]:. Mchik Автоматическая установка приложений 1329 23-08-2009 20:13
[архив - Часть 2] AutoIt скрипты Vadikan AutoIt 985 21-01-2008 09:58
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
[Архив - Часть 1.1] AutoIt скрипты EgOrus AutoIt 335 04-02-2006 16:58




 
Переход