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

Компьютерный форум 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

 

Ветеран


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

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


Цитата Zolotnik:
(в идеале разбить бы как то секцию [Tasks] на 2 странички: одна(с вариантами установки) до странички выбора компонентов, вторая - после.) »
Пример
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes

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

[Types]
Name: full; Description: Полная установка
Name: custom; Description: Выборочная установка; Flags: iscustom

[Components]
Name: a; Description: Моя программа™; Types: full custom
Name: a\a; Description: Руководство пользователя; Types: full
Name: a\a\a; Description: Русский; Flags: exclusive
Name: a\a\b; Description: English; Flags: exclusive
Name: a\b; Description: Справка; Types: full

[Tasks]
Name: main; Description: Я точно зарегистрированный пользователь :); GroupDescription: Вы точно зарегистрированный пользователь?; Flags: unchecked

[Files]
Source: compiler:Examples\MyProg.exe; DestDir: {app}; Components: a
Source: compiler:Examples\Readme-ru.txt; DestDir: {app}; Components: a\a\a
Source: compiler:Examples\Readme-en.txt; DestDir: {app}; Components: a\a\b
Source: compiler:Examples\MyProg.chm; DestDir: {app}; Components: a\b

[Code]
var
  Page: TInputOptionWizardPage;
  IsRegisteredUser: Boolean;

procedure InitializeWizard();
begin
  // Создание страницы
  Page:= CreateInputOptionPage(wpSelectDir, 'Лицензионное соглашение',
         'Вы зарегистрированный пользователь?',
         'Если вы зарегистрированы, поставьте флажок ниже и нажмите Далее.',False, False);
  // Добавление значений
  Page.Add('Я зарегистрированный пользователь');
  // Задание первоначальных значений (не обязательно)
  Page.Values[0]:= False;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  if CurPageID > Page.ID then
  // Передача значений переменным
  IsRegisteredUser:= Page.Values[0];
end;

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

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

Отправлено: 23:37, 22-11-2009 | #461



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

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


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


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

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


кто-то может помочь мне с моей проблемой?

Отправлено: 00:32, 23-11-2009 | #462


Ветеран


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

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


Цитата RapMan:
как с помощь Form Designer можно заюзать свою страницу в Inno Setup ? »
Открываете Form Designer создаёте страницу и копируете код из вкладки Пример кода. Затем вставляете в свой скрипт.
Пример
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes

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

[CustomMessages]
SampleForm_Caption=SampleForm Caption
SampleForm_Description=SampleForm Description
SampleForm_Label1_Caption0=This is a demo label
SampleForm_Button1_Caption0=Button1
SampleForm_Button2_Caption0=Button2
SampleForm_ListBox1_Line0=Line1
SampleForm_ListBox1_Line1=Line2
SampleForm_ListBox1_Line2=Line3
SampleForm_ListBox1_Line3=Line4
SampleForm_ListBox1_Line4=Line5
SampleForm_CheckBox1_Caption0=CheckBox1
SampleForm_CheckBox2_Caption0=CheckBox2
SampleForm_CheckBox3_Caption0=CheckBox3
SampleForm_RadioButton1_Caption0=RadioButton1
SampleForm_RadioButton2_Caption0=RadioButton2

[Code]
var
  Label1: TLabel;
  Panel1: TPanel;
  Button1: TButton;
  Button2: TButton;
  ListBox1: TListBox;
  NewProgressBar1: TNewProgressBar;
  CheckBox1: TCheckBox;
  CheckBox2: TCheckBox;
  CheckBox3: TCheckBox;
  Panel2: TPanel;
  RadioButton1: TRadioButton;
  RadioButton2: TRadioButton;

{ SampleForm_Activate }

procedure SampleForm_Activate(Page: TWizardPage);
begin
  // enter code here...
end;

{ SampleForm_ShouldSkipPage }

function SampleForm_ShouldSkipPage(Page: TWizardPage): Boolean;
begin
  Result := False;
end;

{ SampleForm_BackButtonClick }

function SampleForm_BackButtonClick(Page: TWizardPage): Boolean;
begin
  Result := True;
end;

{ SampleForm_NextkButtonClick }

function SampleForm_NextButtonClick(Page: TWizardPage): Boolean;
begin
  Result := True;
end;

{ SampleForm_CancelButtonClick }

procedure SampleForm_CancelButtonClick(Page: TWizardPage; var Cancel, Confirm: Boolean);
begin
  // enter code here...
end;

{ SampleForm_CreatePage }

function SampleForm_CreatePage(PreviousPageId: Integer): Integer;
var
  Page: TWizardPage;
begin
  Page := CreateCustomPage(
    PreviousPageId,
    ExpandConstant('{cm:SampleForm_Caption}'),
    ExpandConstant('{cm:SampleForm_Description}')
  );

{ Label1 }
  Label1 := TLabel.Create(Page);
  with Label1 do
  begin
    Parent := Page.Surface;
    Caption := ExpandConstant('{cm:SampleForm_Label1_Caption0}');
    Left := ScaleX(16);
    Top := ScaleY(8);
    Width := ScaleX(92);
    Height := ScaleY(13);
  end;

  { Panel1 }
  Panel1 := TPanel.Create(Page);
  with Panel1 do
  begin
    Parent := Page.Surface;
    Left := ScaleX(8);
    Top := ScaleY(32);
    Width := ScaleX(393);
    Height := ScaleY(193);
    BevelInner := bvLowered;
    BevelWidth := ScaleX(2);
    BorderStyle := bsSingle;
    TabOrder := 0;
  end;

  { Button1 }
  Button1 := TButton.Create(Page);
  with Button1 do
  begin
    Parent := Panel1;
    Caption := ExpandConstant('{cm:SampleForm_Button1_Caption0}');
    Left := ScaleX(14);
    Top := ScaleY(14);
    Width := ScaleX(75);
    Height := ScaleY(23);
    TabOrder := 0;
  end;

  { Button2 }
  Button2 := TButton.Create(Page);
  with Button2 do
  begin
    Parent := Panel1;
    Caption := ExpandConstant('{cm:SampleForm_Button2_Caption0}');
    Left := ScaleX(94);
    Top := ScaleY(14);
    Width := ScaleX(75);
    Height := ScaleY(23);
    TabOrder := 1;
  end;

  { ListBox1 }
  ListBox1 := TListBox.Create(Page);
  with ListBox1 do
  begin
    Parent := Panel1;
    Left := ScaleX(14);
    Top := ScaleY(46);
    Width := ScaleX(153);
    Height := ScaleY(129);
    Items.Add(ExpandConstant('{cm:SampleForm_ListBox1_Line0}'));
    Items.Add(ExpandConstant('{cm:SampleForm_ListBox1_Line1}'));
    Items.Add(ExpandConstant('{cm:SampleForm_ListBox1_Line2}'));
    Items.Add(ExpandConstant('{cm:SampleForm_ListBox1_Line3}'));
    Items.Add(ExpandConstant('{cm:SampleForm_ListBox1_Line4}'));
    TabOrder := 2;
  end;

  { NewProgressBar1 }
  NewProgressBar1 := TNewProgressBar.Create(Page);
  with NewProgressBar1 do
  begin
    Parent := Panel1;
    Left := ScaleX(174);
    Top := ScaleY(158);
    Width := ScaleX(206);
    Height := ScaleY(17);
    Min := 0;
    Max := 100;
    Position := 50;
  end;

  { CheckBox1 }
  CheckBox1 := TCheckBox.Create(Page);
  with CheckBox1 do
  begin
    Parent := Panel1;
    Caption := ExpandConstant('{cm:SampleForm_CheckBox1_Caption0}');
    Left := ScaleX(182);
    Top := ScaleY(14);
    Width := ScaleX(97);
    Height := ScaleY(17);
    Font.Height := ScaleY(-11);
    Font.Name := 'Tahoma';
    TabOrder := 3;
  end;

  { CheckBox2 }
  CheckBox2 := TCheckBox.Create(Page);
  with CheckBox2 do
  begin
    Parent := Panel1;
    Caption := ExpandConstant('{cm:SampleForm_CheckBox2_Caption0}');
    Left := ScaleX(182);
    Top := ScaleY(38);
    Width := ScaleX(97);
    Height := ScaleY(17);
    TabOrder := 4;
  end;

  { CheckBox3 }
  CheckBox3 := TCheckBox.Create(Page);
  with CheckBox3 do
  begin
    Parent := Panel1;
    Caption := ExpandConstant('{cm:SampleForm_CheckBox3_Caption0}');
    Left := ScaleX(182);
    Top := ScaleY(62);
    Width := ScaleX(97);
    Height := ScaleY(17);
    TabOrder := 5;
  end;

  { Panel2 }
  Panel2 := TPanel.Create(Page);
  with Panel2 do
  begin
    Parent := Panel1;
    Left := ScaleX(174);
    Top := ScaleY(88);
    Width := ScaleX(205);
    Height := ScaleY(59);
    TabOrder := 6;
  end;

  { RadioButton1 }
  RadioButton1 := TRadioButton.Create(Page);
  with RadioButton1 do
  begin
    Parent := Panel2;
    Caption := ExpandConstant('{cm:SampleForm_RadioButton1_Caption0}');
    Left := ScaleX(16);
    Top := ScaleY(8);
    Width := ScaleX(113);
    Height := ScaleY(17);
    TabOrder := 0;
  end;

  { RadioButton2 }
  RadioButton2 := TRadioButton.Create(Page);
  with RadioButton2 do
  begin
    Parent := Panel2;
    Caption := ExpandConstant('{cm:SampleForm_RadioButton2_Caption0}');
    Left := ScaleX(16);
    Top := ScaleY(32);
    Width := ScaleX(113);
    Height := ScaleY(17);
    TabOrder := 1;
  end;

  with Page do
  begin
    OnActivate := @SampleForm_Activate;
    OnShouldSkipPage := @SampleForm_ShouldSkipPage;
    OnBackButtonClick := @SampleForm_BackButtonClick;
    OnNextButtonClick := @SampleForm_NextButtonClick;
    OnCancelButtonClick := @SampleForm_CancelButtonClick;
  end;

  Result := Page.ID;
end;

{ SampleForm_InitializeWizard }

procedure InitializeWizard();
begin
  SampleForm_CreatePage(wpWelcome);
end;

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


Отправлено: 00:51, 23-11-2009 | #463


Аватара для malyta

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


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

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


Цитата Colapse:
можно скрипт на черный цвет инстала,белиэ буквы в нем?плиc скажите!нашел все скрипти што мне нужны кроме етого! »
Пример скрипта (черный цвет инсталлятора, черные кнопки, темная папка на странице выбора установки приложения,растянутое фоновое изображение,растянутое изображение WizardSmallImage.bmp, изображение в левом нижнем углу,на странице завершения установки WizardImage.bmp )
ссылка на архив с изображениями которые используются в скрипте
Цитата:
читать дальше »
; http://forum.oszone.net/thread-148703-47.html
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{35133CCE-057F-4218-9C63-007B8E03A776}
AppName=My Program
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
WizardImageFile=D:\image\WizardImage.bmp
WizardSmallImageFile=D:\image\WizardSmallImage.bmp

[Languages]
Name: "default"; MessagesFile: "compiler:Default.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "C:\Program Files\Inno Setup 5\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\image\button.bmp"; DestDir: "{tmp}"; Flags: dontcopy
Source: "D:\image\black_folder.bmp"; DestDir: "{tmp}"; Flags: dontcopy
Source: "D:\image\logo.bmp"; DestDir: "{tmp}"; Flags: dontcopy
Source: "D:\image\background.bmp"; DestDir: "{tmp}"; Flags: dontcopy
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"
Name: "{commondesktop}\My Program"; Filename: "{app}\MyProg.exe"; Tasks: desktopicon

[Run]
Filename: "{app}\MyProg.exe"; Description: "{cm:LaunchProgram,My Program}"; Flags: nowait postinstall skipifsilent

[code]
const
ButtonWidth = 80; //Указываем размер кнопок
ButtonHeight = 23;

bidBack = 0;
bidNext = 1;
bidCancel = 2;
bidDirBrowse = 3;
bidGroupBrowse = 4;

var
ButtonPanel: array [0..4] of TPanel;
ButtonImage: array [0..4] of TBitmapImage;
ButtonLabel: array [0..4] of TLabel;

procedure ButtonLabelClick(Sender: TObject);
var
Button: TButton;
begin
ButtonImage[TLabel(Sender).Tag].Left:=0
case TLabel(Sender).Tag of
bidBack: Button:=WizardForm.BackButton
bidNext: Button:=WizardForm.NextButton
bidCancel: Button:=WizardForm.CancelButton
bidDirBrowse: Button:=WizardForm.DirBrowseButton
bidGroupBrowse: Button:=WizardForm.GroupBrowseButton
else
Exit
end
Button.OnClick(Button)
end;

procedure ButtonLabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if ButtonLabel[TLabel(Sender).Tag].Enabled then
ButtonImage[TLabel(Sender).Tag].Left:=-ButtonWidth
end;

procedure ButtonLabelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ButtonImage[TLabel(Sender).Tag].Left:=0
end;

procedure LoadButtonImage(AButton: TButton; AButtonIndex: integer);
var
Image: TBitmapImage;
Panel: TPanel;
Labl: TLabel;

begin
Panel:=TPanel.Create(WizardForm)
Panel.Left:=AButton.Left
Panel.Top:=AButton.Top
Panel.Width:=AButton.Width
Panel.Height:=AButton.Height
Panel.Tag:=AButtonIndex
Panel.Parent:=AButton.Parent
ButtonPanel[AButtonIndex]:=Panel

Image:=TBitmapImage.Create(WizardForm) //Рисунок который ложится на кнопку
Image.Width:=160 //Обязательно прописать оригинальный размер рисунка
Image.Height:=23
Image.Enabled:=False
Image.Bitmap.LoadFromFile(ExpandConstant('{tmp}\button.bmp'))
Image.Parent:=Panel
ButtonImage[AButtonIndex]:=Image

with TLabel.Create(WizardForm) do begin
Tag:=AButtonIndex
Parent:=Panel
Width:=Panel.Width
Height:=Panel.Height
Transparent:=True
OnClick:=@ButtonLabelClick
OnDblClick:=@ButtonLabelClick
OnMouseDown:=@ButtonLabelMouseDown
OnMouseUp:=@ButtonLabelMouseUp
end

Labl:=TLabel.Create(WizardForm) //Текст кнопок
Labl.Left:=13 //Указываем положение текста
Labl.Top:=5
Labl.Autosize:=True
Labl.Alignment:=taCenter
Labl.Tag:=AButtonIndex
Labl.Transparent:=True
Labl.Font.Color:=clWhite //Цвет текста
Labl.Caption:=AButton.Caption
Labl.OnClick:=@ButtonLabelClick
Labl.OnDblClick:=@ButtonLabelClick
Labl.OnMouseDown:=@ButtonLabelMouseDown
Labl.OnMouseUp:=@ButtonLabelMouseUp
Labl.Parent:=Panel
ButtonLabel[AButtonIndex]:=Labl
end;

procedure UpdateButton(AButton: TButton;AButtonIndex: integer);
begin
ButtonLabel[AButtonIndex].Caption:=AButton.Caption
ButtonPanel[AButtonIndex].Visible:=AButton.Visible
ButtonLabel[AButtonIndex].Enabled:=Abutton.Enabled
end;

procedure LicenceAcceptedRadioOnClick(Sender: TObject);
begin
ButtonLabel[bidNext].Enabled:=True
end;

procedure LicenceNotAcceptedRadioOnClick(Sender: TObject);
begin
ButtonLabel[bidNext].Enabled:=False
end;

procedure CurPageChanged1(CurPageID: Integer);
begin
UpdateButton(WizardForm.BackButton,bidBack)
UpdateButton(WizardForm.NextButton,bidNext)
UpdateButton(WizardForm.CancelButton,bidCancel)
end;

procedure InitializeWizard1();
begin
WizardForm.BackButton.Width:=ButtonWidth
WizardForm.BackButton.Height:=ButtonHeight

WizardForm.NextButton.Width:=ButtonWidth
WizardForm.NextButton.Height:=ButtonHeight

WizardForm.CancelButton.Width:=ButtonWidth
WizardForm.CancelButton.Height:=ButtonHeight

WizardForm.DirBrowseButton.Left:=337
WizardForm.DirBrowseButton.Width:=ButtonWidth
WizardForm.DirBrowseButton.Height:=ButtonHeight

WizardForm.GroupBrowseButton.Left:=337
WizardForm.GroupBrowseButton.Width:=ButtonWidth
WizardForm.GroupBrowseButton.Height:=ButtonHeight

WizardForm.LicenseAcceptedRadio.OnClick:=@LicenceAcceptedRadioOnClick

WizardForm.LicenseNotAcceptedRadio.OnClick:=@LicenceNotAcceptedRadioOnClick

ExtractTemporaryFile('button.bmp')
LoadButtonImage(WizardForm.BackButton,bidBack)
LoadButtonImage(WizardForm.NextButton,bidNext)
LoadButtonImage(WizardForm.CancelButton,bidCancel)
LoadButtonImage(WizardForm.DirBrowseButton,bidDirBrowse)
LoadButtonImage(WizardForm.GroupBrowseButton,bidGroupBrowse)
end;

procedure InitializeWizard2();
begin
with WizardForm do begin
with MainPanel do
Height := Height - 1;
with WizardSmallBitmapImage do begin
Left := 0;
Top := 0;
Height := 55; //Размер рисунка
Width := 483; //
end;
with PageNameLabel do begin
Font.Name := 'Tahoma'
Width := Width - 483; //Поставьте здесь значения на 0, если хотите вернуть текст
Left := Left + 483; //
end;
with PageDescriptionLabel do begin
Font.Name := 'Tahoma'
Width := Width - 483; //Поставьте здесь значения на 0, если хотите вернуть текст
Left := Left + 483; //
end;
end;
end;

const
Color = clblack;

procedure InitializeWizard3();
begin
WizardForm.PageNameLabel.Font.Color:=clWhite;
WizardForm.Font.Color:=clWhite;
WizardForm.Color:=Color;
WizardForm.WelcomePage.Color:=Color;
WizardForm.InnerPage.Color:=Color;
WizardForm.FinishedPage.Color:=Color;
WizardForm.LicensePage.Color:=Color;
WizardForm.PasswordPage.Color:=Color;
WizardForm.InfoBeforePage.Color:=Color;
WizardForm.UserInfoPage.Color:=Color;
WizardForm.SelectDirPage.Color:=Color;
WizardForm.SelectComponentsPage.Color:=Color;
WizardForm.SelectProgramGroupPage.Color:=Color;
WizardForm.SelectTasksPage.Color:=Color;
WizardForm.ReadyPage.Color:=Color;
WizardForm.PreparingPage.Color:=Color;
WizardForm.InstallingPage.Color:=Color;
WizardForm.InfoAfterPage.Color:=Color;
WizardForm.DirEdit.Color:=Color;
WizardForm.DiskSpaceLabel.Color:=Color;
WizardForm.DirEdit.Color:=Color;
WizardForm.GroupEdit.Color:=Color;
WizardForm.PasswordLabel.Color:=Color;
WizardForm.PasswordEdit.Color:=Color;
WizardForm.PasswordEditLabel.Color:=Color;
WizardForm.ReadyMemo.Color:=Color;
WizardForm.TypesCombo.Color:=Color;
WizardForm.WelcomeLabel1.Color:=Color;
WizardForm.InfoBeforeClickLabel.Color:=Color;
WizardForm.MainPanel.Color:=Color;
WizardForm.PageNameLabel.Color:=Color;
WizardForm.PageDescriptionLabel.Color:=Color;
WizardForm.ReadyLabel.Color:=Color;
WizardForm.FinishedLabel.Color:=Color;
WizardForm.YesRadio.Color:=Color;
WizardForm.NoRadio.Color:=Color;
WizardForm.WelcomeLabel2.Color:=Color;
WizardForm.LicenseLabel1.Color:=Color;
WizardForm.InfoAfterClickLabel.Color:=Color;
WizardForm.ComponentsList.Color:=Color;
WizardForm.ComponentsDiskSpaceLabel.Color:=Color;
WizardForm.BeveledLabel.Color:=Color;
WizardForm.StatusLabel.Color:=Color;
WizardForm.FilenameLabel.Color:=Color;
WizardForm.SelectDirLabel.Color:=Color;
WizardForm.SelectStartMenuFolderLabel.Color:=Color;
WizardForm.SelectComponentsLabel.Color:=Color;
WizardForm.SelectTasksLabel.Color:=Color;
WizardForm.LicenseAcceptedRadio.Color:=Color;
WizardForm.LicenseNotAcceptedRadio.Color:=Color;
WizardForm.UserInfoNameLabel.Color:=Color;
WizardForm.UserInfoNameEdit.Color:=Color;
WizardForm.UserInfoOrgLabel.Color:=Color;
WizardForm.UserInfoOrgEdit.Color:=Color;
WizardForm.PreparingLabel.Color:=Color;
WizardForm.FinishedHeadingLabel.Color:=Color;
WizardForm.UserInfoSerialLabel.Color:=Color;
WizardForm.UserInfoSerialEdit.Color:=Color;
WizardForm.TasksList.Color:=Color;
WizardForm.RunList.Color:=Color;
WizardForm.SelectDirBrowseLabel.Color:=Color;
WizardForm.SelectStartMenuFolderBrowseLabel.Color:=Color;
end;

procedure InitializeWizard4();
begin
ExtractTemporaryFile('black_folder.bmp');
WizardForm.SelectDirBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\black_folder.bmp'));
WizardForm.SelectDirBitmapImage.AutoSize:=true;
WizardForm.SelectGroupBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\black_folder.bmp'));
WizardForm.SelectGroupBitmapImage.AutoSize:=true;
end;

var
LogoImage:TBitmapImage;
LogoLabel: TLabel;
LogoPanel: TPanel;

procedure LogoOnClick(Sender: TObject);
var ReturnCode: Integer;
begin
ShellExec('open', 'http://сайт.ру', '', '', SW_SHOWNORMAL, ewNoWait, ReturnCode)
end;

procedure InitializeWizard5();
begin
ExtractTemporaryFile('logo.bmp');
LogoPanel := TPanel.Create(WizardForm);
with LogoPanel do
begin
Parent := WizardForm;
Left := ScaleX(5);
Top := ScaleY(320);
Width := ScaleX(161);
Height := ScaleY(36);
BevelOuter := bvNone;
end;

LogoImage := TBitmapImage.Create(WizardForm);
with LogoImage do
begin
Parent := LogoPanel;
Left := ScaleX(0);
Top := ScaleY(0);
AutoSize:=true;
ReplaceColor:=clFuchsia;
ReplaceWithColor:=clBtnFace;
Bitmap.LoadFromFile(ExpandConstant('{tmp}\logo.bmp'));
end;

LogoLabel := TLabel.Create(WizardForm);
with LogoLabel do
begin
Parent := LogoPanel;
Width := LogoPanel.Width;
Height := LogoPanel.Height;
Transparent:=True;
Cursor := crHand;
OnClick:=@LogoOnClick;
end;
end;

var
WelcomeLabel1, WelcomeLabel2: TLabel;
BmpFile: TBitmapImage;

procedure InitializeWizard6();
begin
ExtractTemporaryFile('background.bmp');

BmpFile:= TBitmapImage.Create(WizardForm);
BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\background.bmp'));
BmpFile.SetBounds(0, 0, 483, 313);
BmpFile.Stretch:= true
BmpFile.Parent:= WizardForm.WelcomePage;

with WizardForm do
begin
WelcomeLabel1.Hide;
WelcomeLabel2.hide;
end;

WelcomeLabel1:= TLabel.Create(WizardForm);
with WelcomeLabel1 do
begin
WelcomeLabel1.Alignment:=taCenter;
Left:= ScaleX(176);
Top:= ScaleY(66);
Width:= ScaleX(301);
Height:= ScaleY(71);
AutoSize:= false;
Transparent:= true;
WordWrap:= true;
Font.Name:='Arial'
Font.Size:= 12;
Font.Color:=ClWhite
Parent:= WizardForm.WelcomePage;
Caption:= WizardForm.WelcomeLabel1.Caption;
end;

WelcomeLabel2:=TLabel.Create(WizardForm);
with WelcomeLabel2 do
begin
WelcomeLabel2.Alignment:=taCenter;
Top:= ScaleY(136);
Left:= ScaleX(176);
Width:= ScaleX(301);
Height:= ScaleY(300);
AutoSize:= false;
WordWrap:= true;
Font.Color:=ClWhite
Font.Name:='Tahoma'
Transparent:= true;
Parent:= WizardForm.WelcomePage;
Caption:= WizardForm.WelcomeLabel2.Caption;
end;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
CurPageChanged1(CurPageID);
end;

procedure InitializeWizard();
begin
InitializeWizard1();
InitializeWizard2();
InitializeWizard3();
InitializeWizard4();
InitializeWizard5();
InitializeWizard6();
end;
RapMan, не приходилось работать с выше указаной программой.

-------
But my dreams They aren't as empty As my conscience seems to be I have hours, only lonely My love is vengeance That's never free.

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

Отправлено: 01:10, 23-11-2009 | #464


Аватара для Berline

Старожил


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


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

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


День Добрый!
Так сказать, очередной вопрос хотелка, не взыщите строго...
Через реестр добавляю во такое в контекстное меню проводника, для простоты и удобства, но:
Код: Выделить весь код
Root: HKCR; SubKey: Directory\shell\FarHere; ValueType: string; ValueData: Open Far Here; Flags: uninsdeletekey  
Root: HKCR; SubKey: Directory\shell\FarHere\command; ValueType: expandsz; ValueData: """%PROGRAMFILES%\Far 2\Far.exe"" ""%1"""; Flags: uninsdeletekey  
Root: HKCR; SubKey: Drive\shell\FarHere; ValueType: string; ValueData: Open Far Here; Flags: uninsdeletekey  
Root: HKCR; SubKey: Drive\shell\FarHere\command; ValueType: expandsz; ValueData: """%PROGRAMFILES%\Far 2\Far.exe"" ""%1"""; Flags: uninsdeletekey
Чтоб это сработало, нужно запретить инсталлятору выбирать путь установки, а следовательно, не очень хорошо...
Можно ли как-то реализовать через код, чтобы он автоматически подставлял путь той папки, куда выбрали установить программу, в момент инсталла?

***

И всетки как обновлять корректно значение переменной Path переменных среды, для устанавливаемого приложения?

-------
Ни что так не стимулирует повысить стабильность системы как приближающийся отпуск...


Последний раз редактировалось Berline, 23-11-2009 в 11:16.


Отправлено: 10:29, 23-11-2009 | #465


Аватара для A1EXXX

Старожил


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

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


Berline, если я правильно понял, то есть переменная {app}, которую в данном случае лучше записать вместо %PROGRAMFILES%\Far 2, и выбранный путь добавиться в реестр....
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:54, 23-11-2009 | #466


Аватара для Habetdin


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


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

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


Berline, используйте константу {app} вместо %PROGRAMFILES%\Far 2
A1EXXX,
Цитата A1EXXX:
есть переменная {app}, которую в данном случае лучше записать вместо %PROGRAMFILES% »
%ProgramFiles% - {pf}
А вот {app} это путь установки

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

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

Отправлено: 13:09, 23-11-2009 | #467


Аватара для Berline

Старожил


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


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

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


Да, спасибо!
Главное, куда копировать файло - переменную app я прописал, в то что и про реестр это проканает - не подумал!

-------
Ни что так не стимулирует повысить стабильность системы как приближающийся отпуск...


Последний раз редактировалось Berline, 23-11-2009 в 14:53.


Отправлено: 13:23, 23-11-2009 | #468


Аватара для A1EXXX

Старожил


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

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


Цитата Habetdin:
%ProgramFiles% - {pf}
А вот {app} это путь установки »
Эт я знаю, но разве я написал что-то не так?
Упс, то я сначала недоглядел, потом исправил...

Отправлено: 13:27, 23-11-2009 | #469


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


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

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


Добавлены примеры использования

Функции изменяющие системный %PATH% (добавляет/удаляет <ваш_путь>)

Последний раз редактировалось ADremLIN, 23-11-2009 в 16:27.


Отправлено: 16:15, 23-11-2009 | #470



Компьютерный форум 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




 
Переход