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

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

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

Аватара для 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] - Скачать;


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

Отправлено: 19:06, 28-03-2013

 

Ветеран


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

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


neorom
читать дальше »
Код: Выделить весь код
[Setup]
AppName=IDM 6.15 Build 10 Final
AppVerName=Internet Download Manager
DefaultDirName={pf}\Internet Download Manager
DisableReadyPage=true
MergeDuplicateFiles=false
SolidCompression=false
Compression=lzma/ultra64
UseSetupLdr=true
AppID=Internet Download Manager
DefaultGroupName=Internet Download Manager
WizardImageFile=modern-wizard.bmp
WizardSmallImageFile=modern-header.bmp

[Languages]
Name: Ukrainian; MessagesFile: compiler:Languages\Ukrainian.isl

[Files]
Source: 01.bmp; Flags: dontcopy solidbreak
Source: 02.bmp; Flags: dontcopy solidbreak
Source: instaler\*.*; DestDir: {app}; Check: installer
Source: portable\*.*; DestDir: {app}; Check: portable

[Code]
var
  ISCustomPage1: TWizardPage;
  BitmapImage1: TBitmapImage;
  NewGroupBox1: TNewGroupBox;
  NewRadioButton1: TNewRadioButton;
  NewRadioButton2: TNewRadioButton;
  NewGroupBox2: TNewGroupBox;
  NewCheckBox1: TNewCheckBox;
  NewCheckBox2: TNewCheckBox;
  NewCheckBox3: TNewCheckBox;
  NewCheckBox4: TNewCheckBox;
  MouseLabel,SiteLabel: TLabel;
  ErrorCode: Integer;

function InitializeSetup(): Boolean;
begin
  if not FileExists(ExpandConstant('{tmp}\01.bmp')) then ExtractTemporaryFile('01.bmp');
  if not FileExists(ExpandConstant('{tmp}\02.bmp')) then ExtractTemporaryFile('02.bmp');
  Result := True;
end;

function installer: Boolean;
begin
  Result := NewRadioButton1.Checked;
end;

function portable: Boolean;
begin
  Result := NewRadioButton2.Checked;
end;

function Icons1: Boolean;
begin
  Result:= NewCheckBox1.Checked;
end;

function Icons2: Boolean;
begin
  Result:= NewCheckBox2.Checked;
end;

function Icons3: Boolean;
begin
  Result:= NewCheckBox3.Checked;
end;

function Icons4: Boolean;
begin
  Result:= NewCheckBox4.Checked;
end;

procedure SiteLabelOnClick(Sender: TObject);
begin
  ShellExec('open','http://toloka.hurtom.com','', '', SW_SHOW, ewNoWait, ErrorCode);
end;

procedure SiteLabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  SiteLabel.Font.Color := clRed;
  SiteLabel.Font.Style := [fsBold, fsUnderline];
end;

procedure SiteLabelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  SiteLabel.Font.Color := clBlue;
  SiteLabel.Font.Style := [fsBold, fsUnderline];
end;

procedure SiteLabelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
  SiteLabel.Font.Color := clGreen;
  SiteLabel.Font.Style := [fsBold, fsUnderline];
end;

procedure SiteLabelMouseMove2(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
  SiteLabel.Font.Color := clBlue;
  SiteLabel.Font.Style := [fsBold];
end;

procedure NewRadioButtonClick(Sender: TObject);
begin
  case TNewRadioButton(Sender) of
    NewRadioButton1:
    begin
      NewCheckBox1.Checked:= NewRadioButton1.Checked;
      NewCheckBox2.Checked:= NewRadioButton1.Checked;
      NewCheckBox3.Checked:= NewRadioButton1.Checked;
      NewCheckBox4.Checked:= NewRadioButton1.Checked;
      NewCheckBox1.Enabled:= NewRadioButton1.Checked;
      NewCheckBox2.Enabled:= NewRadioButton1.Checked;
      NewCheckBox3.Enabled:= NewRadioButton1.Checked;
      NewCheckBox4.Enabled:= NewRadioButton1.Checked;
      BitmapImage1.Bitmap.LoadFromFile(ExpandConstant('{tmp}\01.bmp'));
    end;
    NewRadioButton2:
    begin
      NewCheckBox1.Enabled:= NewRadioButton1.Checked;
      NewCheckBox2.Enabled:= NewRadioButton1.Checked;
      NewCheckBox3.Enabled:= NewRadioButton1.Checked;
      NewCheckBox4.Enabled:= NewRadioButton1.Checked;
      NewCheckBox1.Checked:= NewRadioButton1.Checked;
      NewCheckBox2.Checked:= NewRadioButton1.Checked;
      NewCheckBox3.Checked:= NewRadioButton1.Checked;
      NewCheckBox4.Checked:= NewRadioButton1.Checked;
      BitmapImage1.Bitmap.LoadFromFile(ExpandConstant('{tmp}\02.bmp'));
    end;
  end;
end;

procedure NewCheckBox1Click(Sender: TObject); forward;
procedure NewCheckBox2Click(Sender: TObject); forward;
procedure NewCheckBox3Click(Sender: TObject); forward;
procedure NewCheckBox4Click(Sender: TObject); forward;
procedure PageNameLabelClick(Sender: TObject); forward;

procedure RedesignWizardForm;
begin
  ISCustomPage1 := CreateCustomPage(wpSelectComponents, 'Вибір типа компонентів встановлення', '  ...');
  with ISCustomPage1.Surface do
  begin
    Name := 'ISCustomPage1';
  end;

  BitmapImage1 := TBitmapImage.Create(WizardForm);
  with BitmapImage1 do
  begin
    Name := 'BitmapImage1';
    Parent := ISCustomPage1.Surface;
    Left := ScaleX(232);
    Top := ScaleY(32);
    Width := ScaleX(180);
    Height := ScaleY(180);
  end;

  NewGroupBox1 := TNewGroupBox.Create(WizardForm);
  with NewGroupBox1 do
  begin
    Name := 'NewGroupBox1';
    Parent := ISCustomPage1.Surface;
    Left := ScaleX(8);
    Top := ScaleY(8);
    Width := ScaleX(209);
    Height := ScaleY(65);
    Caption := 'Мова інтерфейсу за умовчанням';
  end;

  NewRadioButton1 := TNewRadioButton.Create(WizardForm);
  with NewRadioButton1 do
  begin
    Name := 'NewRadioButton1';
    Parent := NewGroupBox1;
    Left := ScaleX(8);
    Top := ScaleY(16);
    Width := ScaleX(196);
    Height := ScaleY(17);
    Checked := True;
    Caption := 'Встановлення звичайної версії';
    OnClick := @NewRadioButtonClick;
  end;

  NewRadioButton2 := TNewRadioButton.Create(WizardForm);
  with NewRadioButton2 do
  begin
    Name := 'NewRadioButton2';
    Parent := NewGroupBox1;
    Left := ScaleX(8);
    Top := ScaleY(40);
    Width := ScaleX(196);
    Height := ScaleY(17);
    Caption := 'Розпакування портативної версії';
    OnClick := @NewRadioButtonClick;
  end;

  NewGroupBox2 := TNewGroupBox.Create(WizardForm);
  with NewGroupBox2 do
  begin
    Name := 'NewGroupBox2';
    Parent := ISCustomPage1.Surface;
    Left := ScaleX(8);
    Top := ScaleY(112);
    Width := ScaleX(209);
    Height := ScaleY(113);
    Caption := 'Додатково';
  end;

  NewCheckBox1 := TNewCheckBox.Create(WizardForm);
  with NewCheckBox1 do
  begin
    Name := 'NewCheckBox1';
    Parent := NewGroupBox2;
    Left := ScaleX(8);
    Top := ScaleY(16);
    Width := ScaleX(196);
    Height := ScaleY(17);
    Checked := True
    Caption := 'Закріпити в панелі задач';
    OnClick := @NewCheckBox1Click;
  end;

  NewCheckBox2 := TNewCheckBox.Create(WizardForm);
  with NewCheckBox2 do
  begin
    Name := 'NewCheckBox2';
    Parent := NewGroupBox2;
    Left := ScaleX(8);
    Top := ScaleY(40);
    Width := ScaleX(196);
    Height := ScaleY(17);
    Checked := True
    Caption := 'Закріпити в меню ПУСК';
    OnClick := @NewCheckBox2Click;
  end;

  NewCheckBox3 := TNewCheckBox.Create(WizardForm);
  with NewCheckBox3 do
  begin
    Name := 'NewCheckBox3';
    Parent := NewGroupBox2;
    Left := ScaleX(8);
    Top := ScaleY(64);
    Width := ScaleX(196);
    Height := ScaleY(17);
    Checked := True
    Caption := 'Ярлик(и) на робочому столі';
    OnClick := @NewCheckBox3Click;
  end;

  NewCheckBox4 := TNewCheckBox.Create(WizardForm);
  with NewCheckBox4 do
  begin
    Name := 'NewCheckBox4';
    Parent := NewGroupBox2;
    Left := ScaleX(8);
    Top := ScaleY(88);
    Width := ScaleX(196);
    Height := ScaleY(17);
    Checked := True
    Caption := 'Ярлики в меню ПУСК';
    OnClick := @NewCheckBox4Click;
  end;

  with WizardForm.WizardSmallBitmapImage do
  begin
    Left := ScaleX(0);
    Width := ScaleX(150);
  end;

  with WizardForm.PageDescriptionLabel do
  begin
    Left := ScaleX(200);
    Top := ScaleY(27);
    Width := ScaleX(293);
  end;

  with WizardForm.PageNameLabel do
  begin
    OnClick := @PageNameLabelClick;
    Left := ScaleX(200);
    Width := ScaleX(269);
  end;

  MouseLabel := TLabel.Create(WizardForm);
  MouseLabel.Width := WizardForm.Width;
  MouseLabel.Height := WizardForm.Height;
  MouseLabel.Autosize := False;
  MouseLabel.Transparent := True;
  MouseLabel.OnMouseMove := @SiteLabelMouseMove2;
  MouseLabel.Parent := WizardForm;

  SiteLabel := TLabel.Create(WizardForm);
  SiteLabel.Left := 10;
  SiteLabel.Top := 330;
  SiteLabel.Cursor := crHand;
  SiteLabel.Font.Color := clBlue;
  SiteLabel.Caption := 'RePack by neorom';
  SiteLabel.Font.Style := [fsBold];
  SiteLabel.OnClick := @SiteLabelOnClick;
  SiteLabel.OnMouseDown := @SiteLabelMouseDown;
  SiteLabel.OnMouseUp := @SiteLabelMouseUp;
  SiteLabel.OnMouseMove := @SiteLabelMouseMove;
  SiteLabel.Parent := WizardForm
end;

procedure PageNameLabelClick(Sender: TObject);
begin

end;


procedure NewCheckBox1Click(Sender: TObject);
begin

end;

procedure NewCheckBox2Click(Sender: TObject);
begin

end;

procedure NewCheckBox3Click(Sender: TObject);
begin

end;

procedure NewCheckBox4Click(Sender: TObject);
begin

end;

procedure InitializeWizard();
begin
  RedesignWizardForm;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  case CurPageID of
    ISCustomPage1.ID: if NewRadioButton1.Checked then BitmapImage1.Bitmap.LoadFromFile(ExpandConstant('{tmp}\01.bmp'));
  end;
end;

Последний раз редактировалось saurn, 07-05-2013 в 22:36.


Отправлено: 21:23, 07-05-2013 | #381



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

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


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


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

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


Нет меня интересуєт именно тот скрипт из попереднього моєго сообшчения.
Сообшчения - P.S. Мне писали чтоби я сматрел у сборнике вопросов и ответов FAQ Ru-Board.chm, и я нашол много скриптов коториэ не роботают так как написано в описаниэ. (Я использую две версии розширениє версии компилятора остальной версии (ANSI i UNICODE ))И один скриптов. (Скрипт єтот не меняєт цвет и не єсть текст подчеркнутим при навидения мишки на него). Описаниэ - Как на BeveledLabel "повесить" ссылку, чтобы текст по умолчанию не был подчеркнут, а при наведении на текст, он подчеркивался и конечно, хотелось бы, менять цвет шрифта!
читать дальше »
[Setup]
AppName=AppName
AppVerName=AppVerName
DefaultDirName={pf}\My Program

[Messages]
BeveledLabel= Copyright 2007 © Microsoft

[_Code]
procedure BevelLabelClick(Sender: TObject);
var ErrorCode: Integer;
begin
ShellExec('open','http://www.innosetup.com','', '', SW_SHOW, ewNoWait, ErrorCode)
end;

procedure InitializeWizard();
begin
with WizardForm do begin
with BeveledLabel do begin
OnClick:=@BevelLabelClick;
Font.Color:=clBlue;
Enabled:=True;
Cursor:=crHand;
end;
end;
end;

Отправлено: 21:39, 07-05-2013 | #382


Ветеран


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

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


neorom, в этом примере нет ни строчки про изменение цвета и подчеркивание при наведении, потому и не работает. Обновил пример в предыдущем посте.

Отправлено: 22:37, 07-05-2013 | #383


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


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

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


Цитата saurn:
в этом примере нет ни строчки про изменение цвета и подчеркивание при наведении, потому и не работает. »
Как нету, про изменение цвета и подчеркивание при наведении, смотри фото

Отправлено: 22:51, 07-05-2013 | #384


Ветеран


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

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


neorom, подчеркивание будет выглядеть так:
Код: Выделить весь код
BeveledLabel.Font.Style := [fsUnderline]
Изменение текста(цвет, подчеркивание, стиль, шрифт и т.д.) в реальном времени, то есть при наведении курсора мыши осуществляется через Sender: TObject
Код: Выделить весь код
procedure LabelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
  SiteLabel.Font.Color := clGreen; //изменение цвета
  SiteLabel.Font.Style := [fsBold, fsUnderline]; //изменение стиля
end;

...
OnMouseDown := @...;
OnMouseUp := @...;
OnMouseMove := @...;
Вы видите, что либо подобное в скрипте? Вот. Я знаю этот пример, и там только обработка клика на BeveledLabel. Мой пост с примером скрипта я обновил здесь. Там нужное вам подчеркивание и изменение цвета.
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:59, 07-05-2013 | #385


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


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

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


Извините меня за назойливасть , тот скрипр длинний мне не надо не чего менять, я лиш прашу довести до пуття тот кароткий.

Отправлено: 23:23, 07-05-2013 | #386


Ветеран


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

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


neorom, тот скрипт - это ваш скрипт, который был в архиве, с уже доведенными до ума короткими и длинными. Я просто объединил основной скрипт. Он готовый, берите и компилируйте. Хотите отдельно только кликабельный лейбл, могу дать отдельно, но будете объединять сами тогда.

Отправлено: 23:31, 07-05-2013 | #387


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


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

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


Цитата saurn:
Хотите отдельно только кликабельный лейбл, могу дать отдельно, но будете объединять сами тогда. »
Да, я прашу просто до делать скрипт так как там написано.
читать дальше »
[Setup]
AppName=AppName
AppVerName=AppVerName
DefaultDirName={pf}\My Program

[Messages]
BeveledLabel= Copyright 2007 © Microsoft

[_Code]
procedure BevelLabelClick(Sender: TObject);
var ErrorCode: Integer;
begin
ShellExec('open','http://www.innosetup.com','', '', SW_SHOW, ewNoWait, ErrorCode)
end;

procedure InitializeWizard();
begin
with WizardForm do begin
with BeveledLabel do begin
OnClick:=@BevelLabelClick;
Font.Color:=clBlue;
Enabled:=True;
Cursor:=crHand;
end;
end;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:45, 07-05-2013 | #388


Ветеран


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

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


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

[Messages]
BeveledLabel=RePack by neorom

[Code]
var
mLabel: TLabel;
ErrorCode: Integer;

procedure BevelLabelClick(Sender: TObject);
begin
  ShellExec('open', 'http://toloka.hurtom.com', '', '', SW_SHOW, ewNoWait, ErrorCode)
end;

procedure MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  WizardForm.BeveledLabel.Font.Color := clRed;
  WizardForm.BeveledLabel.Font.Style := [fsBold, fsUnderline];
end;

procedure MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  WizardForm.BeveledLabel.Font.Color := clBlue;
  WizardForm.BeveledLabel.Font.Style := [fsBold, fsUnderline];
end;

procedure MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
  WizardForm.BeveledLabel.Font.Color := clGreen;
  WizardForm.BeveledLabel.Font.Style := [fsBold, fsUnderline];
end;

procedure lMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
  WizardForm.BeveledLabel.Font.Color := clBlue;
  WizardForm.BeveledLabel.Font.Style := [fsBold];
end;

procedure InitializeWizard();
begin
  with WizardForm do
  begin
    mLabel := TLabel.Create(nil)
    mLabel.Width := WizardForm.Width;
    mLabel.Height := WizardForm.Height;
    mLabel.Autosize := False;
    mLabel.Transparent := True;
    mLabel.OnMouseMove := @lMouseMove;
    mLabel.Parent := WizardForm;
    with BeveledLabel do
    begin
      Font.Color := clBlue;
      Font.Style := [fsBold];
      Enabled := True;
      Cursor := crHand;
      OnClick := @BevelLabelClick;
      OnMouseDown := @MouseDown;
      OnMouseUp := @MouseUp;
      OnMouseMove := @MouseMove;
    end;
  end;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:59, 07-05-2013 | #389


Аватара для alert30

Ветеран


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

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


neorom, можете хоть правильно написать на русском языке?

Отправлено: 02:49, 08-05-2013 | #390



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

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

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




 
Переход