Inno Setup (создание инсталяционных пакетов)

Статус
В этой теме нельзя размещать новые ответы.

andrey_167

Новичок
ест еще один вопрос так есть такой код для запуска приложение но как его зделать чтобы кнопка запуска была только при полной установки именно на исдоне пробывал но получается что он в любом случае появляется даже при ошибке
[Setup]
AppName=My Program
AppVersion=1.5
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program

[Files]
Source: C:\Program Files (x86)\Inno Setup 5\Examples\MyProg.exe; DestDir: {app}; Flags: ignoreversion

Код:
var
RunEXE: TNewButton;

procedure LaunchButtonOnClick(Sender: TObject);
var
ErrorCode: integer;
begin
Exec(ExpandConstant('{app}') + '\MyProg.exe',' ', ExpandConstant('{app}'), SW_HIDE, ewNoWait, ErrorCode);
SendMessage(WizardForm.NextButton.handle, $F5, 0, 0);
end;

procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID=wpFinished then begin
RunEXE := TNewButton.Create(WizardForm);
with RunEXE do
begin
Name := 'RunEXE';
Parent := WizardForm;
Left := ScaleX(104);
Top := ScaleY(328);
Width := ScaleX(120);
Height := ScaleY(23);
Caption := 'Запуск приложения';
OnClick:= @LaunchButtonOnClick;
end;
end;
end;
 

Shift85

Старожил
andrey_167, Так глуши

function ShouldSkipPage(PageID: Integer): Boolean;
begin
if (PageID =wpReady)then
Result:= True;
end;
 

Shift85

Старожил
andrey_167, Это для пропуска страницы на счет надписи и кнопки сдесь копай

Procedure CurPageChanged(CurPageID: Integer);
Begin
if (CurPageID = wpFinished) and ISDoneError then
begin
LabelTime3.Hide;
WizardForm.Caption:= ExpandConstant('{cm:Error}');
WizardForm.FinishedLabel.Font.Color:= clRed;
WizardForm.FinishedLabel.Caption:= SetupMessage(msgSetupAborted) ;
end;
end;
 

vint56

Ветеран
Проверенный
Procedure CurPageChanged(CurPageID: Integer);
Begin
if (CurPageID = wpFinished) and ISDoneError then
begin
LabelTime3.Hide;
RunEXE.Hide;
WizardForm.Caption:= ExpandConstant('{cm:Error}');
WizardForm.FinishedLabel.Font.Color:= clRed;
WizardForm.FinishedLabel.Caption:= SetupMessage(msgSetupAborted) ;
end;
end;
 

Carlos

Участник
Модератор
Всем добрый день.
Есть скрипт по описанию компонентов.
[Setup]
AppName=AppName
AppVerName=AppVerName
CreateAppDir=false

Код:
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.Visible:=True
end;

procedure Check2MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
Text4.Enabled:=True
Text4.Caption:='Описание второго компонента'
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


  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


  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;
[/SPOILER]

Не могли бы вы мне помочь сделать фон для окна описания и компонентов. 
Точнее что нужно прописать чтобы вставить свою картинку фона.

Картинка в формате png
Чтобы было типо вот так:
[SPOILER="Картинка"][IMG]http://2.firepic.org/2/images/2013-11/17/a1xrpswx26l8.jpg[/IMG][/SPOILER]
 
Последнее редактирование:

ATTACUE

Новичок
Привет всем)
Кто знает - как инициализировать wintb при деинсталляции?
А точнее саму миниатюру в таскбаре, так как прогрессбар в таскбаре сам собой инициализируется.

P.S. если никак, то какие еще могут быть варианты для отображения миниатюры при деинсталляции?
 
Последнее редактирование:

LexBell

Борода
Супер модератор
ATTACUE, папка установки Inno Setup, подпапка \Examples - там огромная куча примеров. тебе нужен пример CodeDll.iss, там в том числе описывается, как использовать одну и ту-же длл-ку и для установки и для удаления.
 

sergey3695

Ветеран
Модератор
Shift85, это скин редактировать надо. У него изначально такие кнопки. С помощью SkinBuilder :)
З.ы. я редактировать небуду. (открываешь им стиль -> идешь в мои документы (куда распаковался скин) и ищешь кнопку -> редактируешь её -> потом файл-экспорт скина и сохраняешь)
 

Shift85

Старожил
Подскажите пожалуйста как объединить Tasks и components в одну страницу...Зарание спасибо...
 

vint56

Ветеран
Проверенный
Shift85
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Types]
Name: full; Description: Full installation; Flags: iscustom

[Components]
Name: Icons; Description: Дополнительные задачи:; Types: full
Name: Icons\CreateDesktopIcon; Description: Создать ярлык на Рабочем столе; Types: full
Name: Icons\StartMenuIcon; Description: Создать ярлыки в меню «Пуск»; Types: full

Name: Redist; Description: Дополнительное программное обеспечение:; Types: full
Name: Redist\Redist1; Description: Установить\Обновить Microsoft DirectX ; Types: full
Name: Redist\Redist2; Description: Установить\Обновить Microsoft Visual C++ Redist ; Types: full
Name: Redist\Redist3; Description: Установить\Обновить Microsoft Game for Windows LIVE ; Types: full
Name: Redist\Redist4; Description: Установить\Обновить OpenAL ; Types: full


Код:
var
  MyTask: TWizardPage;

procedure InitializeWizard();
begin
   MyTask := CreateCustomPage(wpWelcome, 'Мой текст', 'Мой текст');
  with WizardForm.ComponentsList do
  begin
    BorderStyle := bsNone;
    Color := clMenu;
    TreeViewStyle := True;
    Parent := MyTask.Surface
    Top := ScaleY(20);
    TreeViewStyle := True;
    WantTabs := True;
  end;

  with WizardForm.TypesCombo do
  begin
    Visible := False;
  end;
end;[/SPOILER]

Пример компонентов на ботве виде радио RadioButton может кому пригодится пример помогал писать [b] Shegorat[/b] правда давно
http://rghost.ru/51771167
 
Последнее редактирование:

sergey3695

Ветеран
Модератор
Shift85, что-либо, или компоненты с Tasks перетащить на components и скрыть страницу или наоборот. (перетащить значит в parent для компонентов указать страницу или в CurPageChanged)
з.ы.
Код:
// что на SelectComponents
if CurPageId = wpSelectComponents then
WizardForm.SelectComponentsLabel.
WizardForm.ComponentsList.
WizardForm.ComponentsDiskSpaceLabel.
WizardForm.TypesCombo.
// что на Tasks 
if CurPageId = wpSelectTasks then
// не помню. смотреть надо. влом.
Как vint56, напечатал. Я долго соображал :)
 

andrey_167

Новичок
Здравствуйте как костумзировать прогресс бар через боотву в прримерах пробывал но не удалось зделать для исдоне
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху