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

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


Цитата Cranz86:
Помогите пожалуйста исску доработать »
Пример
Код: Выделить весь код
[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

[Code]
var
  CheckPage: TInputOptionWizardPage;
  
procedure OnClick(Sender: TObject);
begin
  case TNewStaticText(Sender).Tag of
    0: MsgBox('Была нажата Гиперссылка 1', mbInformation, MB_OK);
    1: MsgBox('Была нажата Гиперссылка 2', mbInformation, MB_OK);
  end;
end;

procedure InitializeWizard;
var
  pnl: TPanel;
  i, t: Integer;
begin
  // создаём страницу
  CheckPage:= CreateInputOptionPage(wpInstalling,
              'Realore Toolbar Installation',
              'Thank you for choosing to install GAMENAME.',
              'After installation of the application, you can also get the official Realore toolbar. '+
              'The toolbar gives you instant access to cool tools like radio, weather, e-mail ' +
              'notifier and more.', False, False);

  // добавляем значения
  CheckPage.Add('Instal Toolbar' + #13 + '(рекомендуется)');
  CheckPage.Add('Сделать сайт *** поиском по умолчанию;');
  CheckPage.Add('Сделать сайт *** домашней страницей;');
  CheckPage.SelectedValueIndex:= 0; // ставим галку на первый чебокс
  // создаём панель, для отображения рисунка
  pnl:= TPanel.Create(CheckPage);
  with pnl do
    begin
      SetBounds(110, 47, 310, 35);
      Parent:= CheckPage.Surface;
      // создаём сам рисунок
      with TBitmapImage.Create(pnl) do
        begin
          SetBounds(0, 0, 310, 35);
          Bitmap.LoadFromFile(ExpandConstant('{pf}\Inno Setup 5\WizModernSmallImage.bmp'));
          Stretch:= True;
          Parent:= pnl;
        end;
    end;
  CheckPage.Surface.ParentBackground:= True;
  // создаём интернет ссылки...
  for i:= 0 to 1 do
    with TNewStaticText.Create(WizardForm) do
      begin
        SetBounds(0, 200 + t, 100, 16);
        Font.Color:= clBlue;
        Cursor:= crHand;
        OnClick:= @OnClick;
        Parent:= CheckPage.Surface;
        Tag:= i;
        case i of
          0: Caption:= 'Гиперссылка 1';
          1: Caption:= 'Гиперссылка 2';
        end;
        t:= 18;
      end;
end;

function NextButtonClick(CurPageID: Integer): Boolean;
var
  I: Integer;
begin
  if CurPageID = CheckPage.ID then
    if CheckPage.Values[0] then begin
      Exec(ExpandConstant('{src}\RealoreStudios.exe'),
           '/silent /param2',
           ExpandConstant('{src}'),
           SW_HIDE,
          ewWaitUntilIdle,
          i);
    end;
  Result := True;
end;

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

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

Отправлено: 20:51, 02-12-2009 | #561



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

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


Аватара для A1EXXX

Старожил


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

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


В чём может быть трабла: когда задаю StatusLabel.Caption:=WizardForm.StatusLabel.Caption, лэйбл пустой, т.е. текст почему-то не подхватывается... а если делаю, к примеру, так: StatusLabel.Caption:='Распаковка файлов...', то текст есть... Но мне нужно, чтобы текст именно подхватывался, а не прописывался вручную... как исправить?

Отправлено: 23:49, 02-12-2009 | #562


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


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

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


A1EXXX, а откуда он должен подхватываться? Из Russian.isl? Так там нет строки StatusLabel, поэтому лэйбл и пустой.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:09, 03-12-2009 | #563


Аватара для STRELOK

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


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

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


так народ.
Как мне в этом скрипте
читать дальше »

Код: Выделить весь код
[Setup]
AppName=Dirt 2
AppVerName=Dirt 2
DefaultDirName={pf}\Dirt 2
DefaultGroupName=Dirt 2
OutputDir=userdocs:Dirt 2 Setup.

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

[Files]
Source: "bitmap\WizardImageFile.bmp"; Flags: dontcopy nocompression;
Source: "bitmap\button.bmp"; Flags: dontcopy nocompression;
Source: "support\GameuxInstallHelper.dll"; DestDir: "{app}"; Flags: ignoreversion uninsremovereadonly overwritereadonly;
Source: "src\dirt2.exe"; DestDir: "{app}"; Flags: ignoreversion;
; Test
;Source: "{sys}\*.dll"; DestDir: "{tmp}"; Flags: external;

[Icons]
Name: "{commondesktop}\Dirt 2"; Filename: "{app}\dirt2.exe"; WorkingDir: "{app}"; OnlyBeLowVersion: "0,6.0";
Name: "{group}\Dirt 2"; Filename: "{app}\dirt2.exe"; WorkingDir: "{app}"; OnlyBeLowVersion: "0,6.0";
Name: "{group}\Удалить Dirt 2"; Filename: "{uninstallexe}"; OnlyBeLowVersion: "0,6.0";

[_Code]
const
  ButtonWidth = 103;
  ButtonHeight = 32;
  PlayTask = 0;
  bidBack = 0;
  bidNext = 1;
  bidCancel = 2;
  bidDirBrowse = 3;
  bidGroupBrowse = 4;

function GenerateGUID(var pGuid: TGuid): Longword;
 external 'GenerateGUID@files:GameuxInstallHelper.dll stdcall setuponly';
function AddToGameExplorer(gdf: String; InstallPath: String; InstallType: Integer; var pGuid: TGuid): Longword;
 external 'AddToGameExplorerW@files:GameuxInstallHelper.dll stdcall setuponly';
function CreateTask(InstallType: Integer; var pGuid: TGuid; TaskType: Integer; TaskNumber: Integer; TaskName: String; ExecPath: String; Parameters: String): Longword;
 external 'CreateTaskW@files:GameuxInstallHelper.dll stdcall setuponly';
function RetrieveGUIDForApplication(gdf: String; var pGuid: TGuid): Longword;
 external 'RetrieveGUIDForApplicationW@{app}\GameuxInstallHelper.dll stdcall uninstallonly';
function RemoveFromGameExplorer(var pGuid: TGuid): Longword;
 external 'RemoveFromGameExplorer@{app}\GameuxInstallHelper.dll stdcall uninstallonly';
function RemoveTasks(var pGuid: TGuid): Longword;
 external 'RemoveTasks@{app}\GameuxInstallHelper.dll stdcall uninstallonly';

var
  pGuid: TGuid;
  SelDir, SelGroup, InstStutus, PageNameLabel: TLabel;
  ButtonPanel: array [0..4] of TPanel;
  ButtonImage: array [0..4] of TBitmapImage;
  ButtonLabel: array [0..4] of TLabel;

procedure DirChange(Sender: TObject);
begin
  SelDir.Caption := WizardForm.DirEdit.Text;
end;

procedure GroupChange(Sender: TObject);
begin
  SelGroup.Caption := WizardForm.GroupEdit.Text;
end;

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 := -ScaleX(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 := ScaleX(206);
  Image.Height := ScaleY(32);
  Image.Enabled := False;
  Image.Bitmap.LoadFromFile(ExpandConstant('{tmp}\button.bmp'));
  Image.Stretch := True;
  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 := ScaleX(23);
  Labl.Top := ScaleY(5);
  Labl.Autosize := True;
  Labl.Alignment := taCenter;
  Labl.Tag := AButtonIndex;
  Labl.Transparent := True;
  Labl.Font.Color := clBlack;
  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 InitializeWizard();
var
  GrBtnCapt, GrBtnCapt1: TLabel;
  NewBevel1, NewBevel1_1, NewBevel2, NewBevel2_2, NewBevel3,
  NewBevel3_3, NewBevel4, NewBevel4_4, NewBevel5, NewBevel5_5: TBevel;
begin
  ExtractTemporaryFile('WizardImageFile.bmp');
  ExtractTemporaryFile('button.bmp');

  NewBevel1 := TBevel.Create(WizardForm);
  NewBevel1.SetBounds(ScaleX(5), ScaleY(240), ScaleX(10), ScaleY(2));
  NewBevel1.Shape := bsTopLine;
  NewBevel1.Parent := WizardForm.SelectDirPage;

  GrBtnCapt := TLabel.Create(WizardForm);
  GrBtnCapt.Left := NewBevel1.Left + NewBevel1.Width + ScaleX(3);
  GrBtnCapt.Top := NewBevel1.Top - ScaleY(6);
  GrBtnCapt.Caption := ' Папка назначения ';
  GrBtnCapt.Transparent := True;
  GrBtnCapt.Parent := WizardForm.SelectDirPage;

  NewBevel3 := TBevel.Create(WizardForm);
  NewBevel3.SetBounds(NewBevel1.Left, NewBevel1.Top + ScaleY(40), ScaleX(440), ScaleY(2));
  NewBevel3.Shape := bsTopLine;
  NewBevel3.Parent := WizardForm.SelectDirPage;

  NewBevel2 := TBevel.Create(WizardForm);
  NewBevel2.SetBounds(GrBtnCapt.Left + GrBtnCapt.Width + ScaleX(3), ScaleY(240),
                  NewBevel3.Width - (NewBevel1.Left + NewBevel1.Width) -
                     (GrBtnCapt.Left + GrBtnCapt.Width) + ScaleX(16), ScaleY(2));
  NewBevel2.Shape := bsTopLine;
  NewBevel2.Parent := WizardForm.SelectDirPage;

  NewBevel4 := TBevel.Create(WizardForm);
  NewBevel4.SetBounds(NewBevel1.Left, NewBevel1.Top, ScaleX(2), ScaleY(40));
  NewBevel4.Shape := bsLeftLine;
  NewBevel4.Parent := WizardForm.SelectDirPage;

  NewBevel5 := TBevel.Create(WizardForm);
  NewBevel5.SetBounds(NewBevel3.Left + NewBevel3.Width - ScaleX(2), NewBevel1.Top, ScaleX(2), ScaleY(40));
  NewBevel5.Shape := bsLeftLine;
  NewBevel5.Parent := WizardForm.SelectDirPage;

  SelDir := TLabel.Create(WizardForm);
  SelDir.Left := NewBevel1.Left + ScaleX(5);
  SelDir.Top := NewBevel1.Top + ScaleY(21) - SelDir.Height div 2;
  SelDir.Caption := WizardForm.DirEdit.Text;
  SelDir.Parent := WizardForm.SelectDirPage;

  NewBevel1_1 := TBevel.Create(WizardForm);
  NewBevel1_1.SetBounds(ScaleX(5), ScaleY(240), ScaleX(10), ScaleY(2));
  NewBevel1_1.Shape := bsTopLine;
  NewBevel1_1.Parent := WizardForm.SelectProgramGroupPage;

  GrBtnCapt1 := TLabel.Create(WizardForm);
  GrBtnCapt1.Left := NewBevel1_1.Left + NewBevel1_1.Width + ScaleX(3);
  GrBtnCapt1.Top := NewBevel1_1.Top - ScaleY(6);
  GrBtnCapt1.Caption := ' Папка в меню Пуск ';
  GrBtnCapt1.Transparent := True;
  GrBtnCapt1.Parent := WizardForm.SelectProgramGroupPage;

  NewBevel3_3 := TBevel.Create(WizardForm);
  NewBevel3_3.SetBounds(NewBevel1_1.Left, NewBevel1_1.Top + ScaleY(40), ScaleX(440), ScaleY(2));
  NewBevel3_3.Shape := bsTopLine;
  NewBevel3_3.Parent := WizardForm.SelectProgramGroupPage;

  NewBevel2_2 := TBevel.Create(WizardForm);
  NewBevel2_2.SetBounds(GrBtnCapt1.Left + GrBtnCapt1.Width + ScaleX(3), ScaleY(240),
                  NewBevel3_3.Width - (NewBevel1_1.Left + NewBevel1_1.Width) -
                     (GrBtnCapt1.Left + GrBtnCapt1.Width) + ScaleX(16), ScaleY(2));
  NewBevel2_2.Shape := bsTopLine;
  NewBevel2_2.Parent := WizardForm.SelectProgramGroupPage;

  NewBevel4_4 := TBevel.Create(WizardForm);
  NewBevel4_4.SetBounds(NewBevel1_1.Left, NewBevel1_1.Top, ScaleX(2), ScaleY(40));
  NewBevel4_4.Shape := bsLeftLine;
  NewBevel4_4.Parent := WizardForm.SelectProgramGroupPage;

  NewBevel5_5 := TBevel.Create(WizardForm);
  NewBevel5_5.SetBounds(NewBevel3_3.Left + NewBevel3_3.Width - ScaleX(2), NewBevel1_1.Top, ScaleX(2), ScaleY(40));
  NewBevel5_5.Shape := bsLeftLine;
  NewBevel5_5.Parent := WizardForm.SelectProgramGroupPage;

  SelGroup := TLabel.Create(WizardForm);
  SelGroup.Left := NewBevel1_1.Left + ScaleX(5);
  SelGroup.Top := NewBevel1_1.Top + ScaleY(21) - SelDir.Height div 2;
  SelGroup.Caption := WizardForm.GroupEdit.Text;
  SelGroup.Parent := WizardForm.SelectProgramGroupPage;

  with WizardForm do
  begin
    ClientWidth := ScaleX(690);
    ClientHeight := ScaleY(496);
    Center;
    Bevel.Hide;
    Bevel1.Hide;
    MainPanel.Hide;
    WizardSmallBitmapImage.Hide;
    WizardBitmapImage2.Hide;
    BeveledLabel.Hide;
    OuterNotebook.SetBounds(ScaleX(220), ScaleY(90), ScaleX(450), ScaleY(340));
    InnerNotebook.SetBounds(0, 0, ScaleX(460), ScaleY(354));
    WizardBitmapImage.SetBounds(0, 0, ScaleX(690), ScaleY(496));
    WizardBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardImageFile.bmp'));
    WizardBitmapImage.Parent := WizardForm;
    BackButton.SetBounds(WizardForm.BackButton.Left + ScaleX(55), ScaleY(459), ScaleX(103), ScaleY(32));
    NextButton.SetBounds(WizardForm.NextButton.Left + ScaleX(95), ScaleY(459), ScaleX(103), ScaleY(32));
    CancelButton.SetBounds(WizardForm.CancelButton.Left + ScaleX(162), ScaleY(459), ScaleX(103), ScaleY(32));
    WelcomePage.Color := clWhite;
    WelcomeLabel1.Left := ScaleX(10);
    WelcomeLabel1.Width := WizardForm.InnerNotebook.Width - ScaleX(20);
    WelcomeLabel2.Left := ScaleX(10);
    WelcomeLabel2.Width := WizardForm.InnerNotebook.Width - ScaleX(20);
    SelectDirPage.Color := clWhite;
    DirEdit.Hide;
    DirEdit.OnChange := @DirChange;
    SelectDirBitmapImage.Hide;
    DiskSpaceLabel.Left := ScaleX(10);
    DiskSpaceLabel.Top := ScaleY(320);
    DirBrowseButton.Left := NewBevel3.Width - ScaleX(103);
    DirBrowseButton.Top := NewBevel1.Top + ScaleY(21) - ScaleY(16);
    DirBrowseButton.Width := ScaleX(103);
    DirBrowseButton.Height := ScaleY(32);
    SelectDirLabel.Hide;
    SelectDirBrowseLabel.Left := ScaleX(10);
    SelectDirBrowseLabel.Top := SelectDirLabel.Top;
    SelectProgramGroupPage.Color := clWhite;
    SelectStartMenuFolderLabel.Hide;
    SelectStartMenuFolderBrowseLabel.Left := ScaleX(10);
    SelectStartMenuFolderBrowseLabel.Top := SelectStartMenuFolderLabel.Top;
    SelectGroupBitmapImage.Hide;
    GroupEdit.Hide;
    GroupEdit.OnChange := @GroupChange;
    NoIconsCheck.Hide;
    GroupBrowseButton.Left := NewBevel3_3.Width - ScaleX(103);
    GroupBrowseButton.Top := NewBevel1_1.Top + ScaleY(21) - ScaleY(16);
    GroupBrowseButton.Width := ScaleX(103);
    GroupBrowseButton.Height := ScaleY(32);
    ReadyPage.Color := clWhite;
    ReadyLabel.Left := ScaleX(10);
    ReadyLabel.Top := ReadyLabel.Top + ScaleY(10);
    ReadyMemo.Left := ScaleX(10);
    ReadyMemo.Top := ReadyMemo.Top + ScaleY(10);
    ReadyMemo.Width := InnerNotebook.Width - ScaleX(30);
    ReadyMemo.Height := ReadyMemo.Height + ScaleY(90);
    ReadyMemo.Color := clWhite;
    InstallingPage.Color := clWhite;
    ProgressGauge.Left := ScaleX(10);
    ProgressGauge.Top := NewBevel3.Top + NewBevel3.Height div 2 - ProgressGauge.Height div 2;
    ProgressGauge.Width := InnerNotebook.Width - ScaleX(30);
    StatusLabel.Left := ScaleX(10);
    StatusLabel.Top := ProgressGauge.Top - ScaleY(3) - FilenameLabel.Height - StatusLabel.Height;
    FilenameLabel.Left := ScaleX(10);
    FilenameLabel.Top := ProgressGauge.Top - ScaleY(3) - FilenameLabel.Height;
    FinishedPage.Color := clWhite;
    FinishedHeadingLabel.Left := ScaleX(10);
    FinishedHeadingLabel.Width := WizardForm.InnerNotebook.Width - ScaleX(20);
    FinishedLabel.Left := ScaleX(10);
    FinishedLabel.Width := WizardForm.InnerNotebook.Width - ScaleX(20);
    RunList.Hide;
    NoRadio.Hide;
    YesRadio.Hide;
  end;

  PageNameLabel := TLabel.Create(WizardForm);
  PageNameLabel.SetBounds(ScaleX(24), ScaleY(10), ScaleX(405), ScaleY(14));
  PageNameLabel.AutoSize := False;
  PageNameLabel.WordWrap := True;
  PageNameLabel.Font.Style := [fsBold];
  PageNameLabel.ShowAccelChar := False;
  PageNameLabel.Parent := WizardForm;

  InstStutus := TLabel.Create(WizardForm);
  InstStutus.Left := ScaleX(10);
  InstStutus.Top := WizardForm.SelectDirLabel.Top;
  InstStutus.Parent := WizardForm.InstallingPage;

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

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

  ButtonLabel[bidBack].Left := ButtonPanel[bidBack].Width div 2 - ButtonLabel[bidBack].Width div 2;
  ButtonLabel[bidNext].Left := ButtonPanel[bidNext].Width div 2 - ButtonLabel[bidNext].Width div 2;
  ButtonLabel[bidCancel].Left := ButtonPanel[bidCancel].Width div 2 - ButtonLabel[bidCancel].Width div 2;
  ButtonLabel[bidDirBrowse].Left := ButtonPanel[bidDirBrowse].Width div 2 - ButtonLabel[bidDirBrowse].Width div 2;
  ButtonLabel[bidGroupBrowse].Left := ButtonPanel[bidGroupBrowse].Width div 2 - ButtonLabel[bidGroupBrowse].Width div 2;

  PageNameLabel.Caption := WizardForm.PageNameLabel.Caption;
  PageNameLabel.Font.Color := clWhite;
  InstStutus.Caption := WizardForm.PageDescriptionLabel.Caption;
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssInstall then
    GenerateGUID(pGuid);

  if CurStep = ssPostInstall then
  begin
    AddToGameExplorer(ExpandConstant('{app}\dirt2.exe'), ExpandConstant('{app}'), 3, pGuid);
    CreateTask(3, pGuid, PlayTask, 0, 'Play', ExpandConstant('{app}\dirt2.exe'), '');
  end;
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
  if CurUninstallStep = usUninstall then
  begin
    RetrieveGUIDForApplication(ExpandConstant('{app}\dirt2.exe'), pGuid);
    RemoveFromGameExplorer(pGuid);
    RemoveTasks(pGuid);
    UnloadDll(ExpandConstant('{app}\GameuxInstallHelper.dll'));
  end;
end;



сделать фон прозрачный на всех страницах?

Отправлено: 21:38, 03-12-2009 | #564


Аватара для A1EXXX

Старожил


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

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


STRELOK, в шапке есть пример картинки на всех страницах, используй его...

Отправлено: 21:46, 03-12-2009 | #565


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


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

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


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

Отправлено: 12:02, 04-12-2009 | #566


Аватара для STRELOK

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


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

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


как такое исправить?

Вот содержание строки где вылетает эта ошибка
Код: Выделить весь код
TFreeArcCallback = function (what: PAnsiChar; int1, int2: Integer; str: PAnsiChar): Integer;
Решилось переустановкой IS

Последний раз редактировалось STRELOK, 04-12-2009 в 14:24.


Отправлено: 13:48, 04-12-2009 | #567


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


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

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


Я забыл как всю папку копировать с файлами. там типо С:\test \*

все сам вспомнил

Скажите а можно сделать что бы после установки выводилось сообщение,какие компоненты были установлены?

Отправлено: 20:12, 05-12-2009 | #568


Аватара для YURSHAT

Старожил


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

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


Цитата Lancer2404:
Я забыл как всю папку копировать с файлами. там типо С:\test \* »
Код: Выделить весь код
Source: "C:\test\*"; DestDir: "{app}\test"; Flags: ignoreversion recursesubdirs createallsubdirs

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


Отправлено: 20:22, 05-12-2009 | #569


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


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

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


Еще вопрос вот при инсталле внизу я вставил картинку кликабельную как сделать что бы при клике выводилось не сообщение а переход на сайт

[code]
[Setup]
AppName=TestButton
AppVerName=TestButton
DefaultDirName=C:\TestButton

[Files]
Source: Button.bmp; Flags: dontcopy

Код: Выделить весь код
procedure TestButtonOnClick(Sender: TObject);
begin
  MsgBox('Òåñò!', mbInformation, MB_OK)
end;

procedure InitializeWizard();
var
  BtnPanel: TPanel;
  BtnImage: TBitmapImage;
  
begin
  BtnPanel:=TPanel.Create(WizardForm)
  with BtnPanel do begin
    Left:=20
    Top:=325
    Width:=132
    Height:=27
    Cursor:=crHand
    OnClick:=@TestButtonOnClick
    Parent:=WizardForm
  end
  BtnImage:=TBitmapImage.Create(WizardForm)
  with BtnImage do begin
    AutoSize:=True
    Enabled:=False
    ExtractTemporaryFile('Button.bmp')
    Bitmap.LoadFromFile(ExpandConstant('{tmp}')+'\Button.bmp')
    Parent:=BtnPanel
  end
end;

Отправлено: 10:38, 06-12-2009 | #570



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




 
Переход