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

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

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

Аватара для El Sanchez

Ветеран


Contributor


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


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

Профиль | Отправить 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] - Скачать;


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:
Inno Setup [все вопросы] часть 1
Inno Setup [все вопросы] часть 2
Скрипты Inno Setup. Помощь и советы [часть 3]
Скрипты Inno Setup. Помощь и советы [часть 4]

Отправлено: 03:49, 21-05-2012

 

Ветеран


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

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


neorom когда вы уже научитесь выкладывать скрипт со всеми файлами?

Отправлено: 16:55, 18-03-2013 | #1911



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

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


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


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

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


как сделать в inno кнопку с прозрачным фоном?

Отправлено: 17:05, 18-03-2013 | #1912


Ветеран


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

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


кто-то понял как сделать прикол с переключением языка на ходу?

Отправлено: 17:12, 18-03-2013 | #1913


Ветеран


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

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


sergey3695 вот что нашел,хз оно ли это то что тебе нужно
Чекбоксы тоже прозрычными сделать нельзя (дефолтные у анси)
Решение следующее: Создаете радиокнопку без надписи справа, создаете отдельно надпись к ней (элемент TLabel с Transparent:=True). Пишите процедурку клик по TLabel=клик по радиокнопочке. И в итоге получаете прозрачную радиокнопочку. Примеров таких кнопочек и чекбоксов - немеряно, поэтому ищем (скрипт Prototype от Shegorat к примеру)

Отправлено: 17:36, 18-03-2013 | #1914


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


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

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


Цитата insombia:
когда вы уже научитесь выкладывать скрипт со всеми файлами? »
Я уже пару раз викладал полнастю скрипт со моими файлами, викладаю ишчо раз ==> http://us.ua/1067498/
Зделайте так чтобы в каждам етапе инсталяции бил новий рисунок(в месте пять (там уже эсть четире рисунков, но на етапи выбор директории для инсталяции игри и на этапе установки ярликов один и тотже ресунок и надписи в окне теже, зделайте чтоби они разние рисунки и надписи к ним)).

Последний раз редактировалось neorom, 18-03-2013 в 18:55.


Отправлено: 18:06, 18-03-2013 | #1915


Аватара для Tco 03

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


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

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


neorom
читать дальше »

#define NeedSize "100"

[Setup]
AppName=Footballsim Patch 2013
AppVerName=Pro Evolution Soccer 2013
DefaultDirName={pf}\Pro Evolution Soccer 2013
DisableReadyPage=true
MergeDuplicateFiles=false
SolidCompression=true
Compression=lzma/ultra64
UseSetupLdr=false

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

[Run]
Filename: {app}\kitserver13\manager.exe; Flags: postinstall waituntilidle;
Filename: {app}\Soft\dxwebsetup.exe; Check: SoftInstall;


[Icons]
Name: {group}\Footballsim_Patch_2013; Filename: {app}\Footballsim_Patch_2013.exe; WorkingDir: {app}\; IconFilename: {app}\Uninstall\unins000.exe; Check: CreateIcons;
Name: {group}\Footballsim_Patch_2013.(Налаштування); Filename: {app}\settings.exe; WorkingDir: {app}\; IconFilename: {app}\Uninstall\unins000.exe; Check: CreateIcons;
Name: {group}\{cm:UninstallProgram,Footballsim_Patch_2013}; Filename: {uninstallexe}; Check: CreateIcons;
Name: {commondesktop}\Footballsim_Patch_2013; Filename: {app}\Footballsim_Patch_2013.exe; WorkingDir: {app}\; IconFilename: {app}\Uninstall\unins000.exe; Check: CreateIcons;
Name: {commondesktop}\Footballsim_Patch_2013.(Налаштування); Filename: {app}\settings.exe; WorkingDir: {app}\; IconFilename: {app}\Uninstall\unins000.exe; Check: CreateIcons;

[Files]
Source: logo.bmp; DestDir: {tmp}; Flags: dontcopy
Source: isSplash.dll; DestDir: {tmp}; Flags: dontcopy
Source: ISSkin.dll; DestDir: {tmp}; Flags: dontcopy
Source: Tiger.cjstyles; DestDir: {tmp}; Flags: dontcopy
Source: Image1.bmp; DestDir: {tmp}; Flags: dontcopy
Source: Image2.bmp; DestDir: {tmp}; Flags: dontcopy
Source: Image3.bmp; DestDir: {tmp}; Flags: dontcopy
Source: Image4.bmp; DestDir: {tmp}; Flags: dontcopy
;Source: {app}\*.*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyname

[CustomMessages]
Ukrainian.Welcome=Вас вітає Мастер встановлення доповнення {#SetupSetting("AppName")} до ігри %n{#SetupSetting("AppVerName")}.%nПрограма встановлюється {#SetupSetting("AppName")} на Ваш компютер.
Ukrainian.SelectDir=Програма встановить доповнення до ігри в наступну теку.%nЯкщо ви хочите вибрати іншу теку, натисніть «Обзор».%nНатисніть «Встановити», щоб почати встановлення доповнення.
Ukrainian.Installing=Будь-ласка, почекайте, коли доповнення {#SetupSetting("AppName")} встановиться на Ваш компьютер.
Ukrainian.Finished=Встановлення доповнення {#SetupSetting("AppVerName")} до ігри закінчена.%nВи можете запустити ігру з допомогою%n відповідного значка на «Робочому столі» або з меню «Пуск».
Ukrainian.FreeSize=Доступно місця на диску:
Ukrainian.NeedSize=Необхідно місця на диску:

Ukrainian.Icons=Создать ярлыки?
Ukrainian.DirectX=Установить дополнительное ПО?

[code]
var
BackPanel, WizardPanel, StatusPanel, ImagePanel: TPanel;
CaptionLabel: TLabel; BmpFile: TBitmapImage;
NeedSpaceLabel,FreeSpaceLabel: TLabel;
FreeMB, TotalMB: Cardinal; NeedSize: Integer;

///////////////////////////////////////////////
Icons, DirectX: TCheckBox;
IconsLabel, DirectXLabel: TLabel;
//////////////////////////////////////////////

procedure LoadSkin(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@files:isskin.dll stdcall';
procedure UnloadSkin(); external 'UnloadSkin@files:isskin.dll stdcall';
function ShowWindow(hWnd: Integer; uType: Integer): Integer; external 'ShowWindow@user32.dll stdcall';


////////////////////////////////////////////
function CreateIcons: Boolean;
begin
Result:= Icons.Checked;
end;

function SoftInstall: Boolean;
begin
Result:= DirectX.Checked;
end;
//////////////////////////////////////////////

Function NumToStr(Float: Extended): String;
Begin
Result:= Format('%.2n', [Float]); StringChange(Result, ',', '.');
while ((Result[Length(Result)] = '0') or (Result[Length(Result)] = '.')) and (Pos('.', Result) > 0) do
SetLength(Result, Length(Result)-1);
End;

procedure GetFreeSpaceCaption(Sender: TObject);
var
Path: String;
begin
Path := ExtractFileDrive(WizardForm.DirEdit.Text);
GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
if FreeMB > 1024 then
FreeSpaceLabel.Caption := ExpandConstant('{cm:FreeSize} ')+ NumToStr(round(FreeMB/1024*100)/100) + ' Гб' else
FreeSpaceLabel.Caption := ExpandConstant('{cm:FreeSize} ')+ IntToStr(FreeMB)+ ' Мб';
if FreeMB < NeedSize then
WizardForm.NextButton.Enabled := False else
WizardForm.NextButton.Enabled := True;
end;

procedure GetNeedSpaceCaption;
begin
if NeedSize > 1024 then
NeedSpaceLabel.Caption := ExpandConstant('{cm:NeedSize} ')+ NumToStr(round(NeedSize/1024*100)/100) + ' Гб' else
NeedSpaceLabel.Caption := ExpandConstant('{cm:NeedSize} ')+ IntToStr(NeedSize)+ ' Мб';
end;

function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('Tiger.cjstyles');
LoadSkin(ExpandConstant('{tmp}\Tiger.cjstyles'), '');
Result := True;
end;

procedure DeinitializeSetup();
begin
ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0);
UnloadSkin();
end;

procedure InitializeWizard1();
begin
NeedSize:= {#NeedSize};

ExtractTemporaryFile('Image1.bmp')
ExtractTemporaryFile('Image2.bmp')
ExtractTemporaryFile('Image3.bmp')
ExtractTemporaryFile('Image4.bmp')

WizardForm.ClientWidth:= ScaleX(800);
WizardForm.ClientHeight:= ScaleY(620);
WizardForm.Position:= poScreenCenter;

WizardForm.InnerNotebook.Hide;
WizardForm.OuterNotebook.Hide;
WizardForm.Font.Name:= 'Georgia';

BackPanel:= TPanel.Create(WizardForm)
BackPanel.SetBounds(ScaleX(0), ScaleY(0), ScaleX(800), ScaleY(618))
BackPanel.Color:= clWhite
BackPanel.BorderStyle:= bsNone
BackPanel.ParentBackground:= False
BackPanel.ParentColor:= False
BackPanel.Parent:= WizardForm

StatusPanel:= TPanel.Create(WizardForm)
StatusPanel.SetBounds(ScaleX(2), ScaleY(2), ScaleX(796), ScaleY(18))
StatusPanel.BorderStyle:= bsNone
StatusPanel.ParentBackground:= False
StatusPanel.ParentColor:= False
StatusPanel.Font.Color:= clWhite
StatusPanel.Font.Size:= 12
StatusPanel.Font.Style:= [fsBold]
StatusPanel.Font.Name:= 'Times New Roman'
StatusPanel.Alignment:= taCenter
StatusPanel.Parent:= WizardForm

ImagePanel:= TPanel.Create(WizardForm)
ImagePanel.SetBounds(ScaleX(2), ScaleY(21), ScaleX(796), ScaleY(484))
ImagePanel.BorderStyle:= bsNone
ImagePanel.ParentBackground:= False
ImagePanel.ParentColor:= False
ImagePanel.Parent:= WizardForm

BmpFile:= TBitmapImage.Create(WizardForm)
BmpFile.Stretch:= True;
BmpFile.SetBounds(ScaleX(0),ScaleY(0), ScaleX(796), ScaleY(484))
BmpFile.Parent:= ImagePanel

WizardPanel:= TPanel.Create(WizardForm)
WizardPanel.SetBounds(ScaleX(2), ScaleY(506), ScaleX(796), ScaleY(110))
WizardPanel.Alignment:= taCenter;
WizardPanel.BorderStyle:= bsNone
WizardPanel.ParentBackground:= False
WizardPanel.ParentColor:= False
WizardPanel.Parent:= WizardForm

CaptionLabel:= TLabel.Create(WizardForm);
CaptionLabel.SetBounds(ScaleX(100), ScaleY(5), ScaleX(590), ScaleY(100));
CaptionLabel.AutoSize:= False;
CaptionLabel.WordWrap:= True;
CaptionLabel.Transparent:= True;
CaptionLabel.Font.Color:= $5F8BA2
CaptionLabel.Font.Size:= 11
CaptionLabel.Font.Style:= [fsBold]
CaptionLabel.Alignment:= taCenter;
CaptionLabel.Parent:= WizardPanel;

NeedSpaceLabel:= TLabel.Create(WizardForm);
NeedSpaceLabel.SetBounds(ScaleX(5),ScaleY(70),ScaleX(300),ScaleY(20))
NeedSpaceLabel.Transparent:= True;
NeedSpaceLabel.Font.Style:= [fsBold]
NeedSpaceLabel.Parent:= WizardPanel

FreeSpaceLabel:= TLabel.Create(WizardForm);
FreeSpaceLabel.SetBounds(ScaleX(250), ScaleY(70), ScaleX(300),ScaleY(20))
FreeSpaceLabel.Transparent:= True;
FreeSpaceLabel.Font.Style:= [fsBold]
FreeSpaceLabel.Parent:= WizardPanel

WizardForm.DirEdit.OnChange:= @GetFreeSpaceCaption;
WizardForm.DirEdit.Text:= WizardForm.DirEdit.Text + #0;

WizardForm.DirBrowseButton.Parent:= WizardForm
WizardForm.DirBrowseButton.Left:= ScaleX(455)
WizardForm.DirBrowseButton.Top:= ScaleY(590)
WizardForm.DirBrowseButton.Font.Size:= 8
WizardForm.DirBrowseButton.Font.Style:= [fsBold]

WizardForm.DirEdit.Parent:= WizardForm
WizardForm.DirEdit.Left:= ScaleX(5)
WizardForm.DirEdit.Top:= ScaleY(590)
WizardForm.DirEdit.Width:= ScaleX(445)
WizardForm.DirEdit.Font.Size:= 8
WizardForm.DirEdit.Font.Style:= [fsBold]

//////////////////////////////////////////////////
Icons:= TCheckBox.Create(WizardForm);
Icons.Parent:= WizardPanel;
Icons.Left:= ScaleX(16);
Icons.Top:= ScaleY(90);
Icons.Width:= ScaleX(12);
Icons.Height:= ScaleY(12);
Icons.Hide;

IconsLabel:= TLabel.Create(WizardForm);
IconsLabel.Left:= ScaleX(36);
IconsLabel.Top:= ScaleY(90);
IconsLabel.Transparent:= True;
IconsLabel.Caption:= ExpandConstant('{cm:Icons}');
IconsLabel.Parent:= WizardPanel;
IconsLabel.Hide;

DirectX:= TCheckBox.Create(WizardForm);
DirectX.Parent:= WizardPanel;
DirectX.Left:= ScaleX(216);
DirectX.Top:= ScaleY(90);
DirectX.Width:= ScaleX(12);
DirectX.Height:= ScaleY(12);
DirectX.Hide;

DirectXLabel:= TLabel.Create(WizardForm);
DirectXLabel.Left:= ScaleX(236);
DirectXLabel.Top:= ScaleY(90);
DirectXLabel.Transparent:= True;
DirectXLabel.Caption:= ExpandConstant('{cm:DirectX}');
DirectXLabel.Parent:= WizardPanel;
DirectXLabel.Hide;
////////////////////////////////////////////////////

WizardForm.ProgressGauge.Parent:= WizardForm
WizardForm.ProgressGauge.Left:= ScaleX(5)
WizardForm.ProgressGauge.Top:= ScaleY(590)
WizardForm.ProgressGauge.Width:= ScaleX(450)

WizardForm.StatusLabel.Parent:= WizardPanel
WizardForm.StatusLabel.SetBounds(ScaleX(5), ScaleY(52), ScaleX(300), ScaleY(20))
WizardForm.StatusLabel.Font.Style:= [fsBold]

WizardForm.FilenameLabel.Parent:= WizardPanel
WizardForm.FilenameLabel.SetBounds(ScaleX(5), ScaleY(68), ScaleX(450), ScaleY(20))
WizardForm.FilenameLabel.Font.Style:= [fsBold]

WizardForm.CancelButton.BringToFront;
WizardForm.CancelButton.Left:= ScaleX(715)
WizardForm.CancelButton.Top:= ScaleY(590)
WizardForm.CancelButton.Font.Size:= 8
WizardForm.CancelButton.Font.Style:= [fsBold]

WizardForm.NextButton.BringToFront;
WizardForm.NextButton.Left:= ScaleX(630)
WizardForm.NextButton.Top:= ScaleY(590)
WizardForm.NextButton.Font.Size:= 8
WizardForm.NextButton.Font.Style:= [fsBold]

WizardForm.BackButton.BringToFront;
WizardForm.BackButton.Left:= ScaleX(545)
WizardForm.BackButton.Top:= ScaleY(590)
WizardForm.BackButton.Font.Size:= 8
WizardForm.BackButton.Font.Style:= [fsBold]
end;

procedure CurPageChanged(CurPageID: Integer);
begin
WizardForm.DirEdit.Hide; WizardForm.DirBrowseButton.Hide;
WizardForm.Progressgauge.Hide; WizardForm.StatusLabel.Hide;
WizardForm.FilenameLabel.Hide; FreeSpaceLabel.Hide;
NeedSpaceLabel.Hide;
case CurPageID of
wpWelcome:
begin
CaptionLabel.Caption:= ExpandConstant('{cm:Welcome}')
StatusPanel.Caption:= 'Привітання'
BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image1.bmp'))

////////////////////////////////////////////////
Icons.Hide;
IconsLabel.Hide;
DirectX.Hide;
DirectXLabel.Hide;
///////////////////////////////////////////////

end;
wpSelectDir:
begin
WizardForm.DirEdit.Show; WizardForm.DirBrowseButton.Show;
FreeSpaceLabel.Show; NeedSpaceLabel.Show;
CaptionLabel.Caption:= ExpandConstant('{cm:SelectDir}')
StatusPanel.Caption:= 'Підготовлення до встановлення'

////////////////////////////////////////////////
Icons.Show;
IconsLabel.Show;
DirectX.Show;
DirectXLabel.Show;
//////////////////////////////////////////////

WizardForm.NextButton.Caption:= 'Далі >'
BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image2.bmp'))
GetNeedSpaceCaption; if FreeMB < NeedSize then WizardForm.NextButton.Enabled:=False;
end;
wpInstalling:
begin
WizardForm.Progressgauge.Show; WizardForm.StatusLabel.Show;
WizardForm.FilenameLabel.Show;
CaptionLabel.Caption:= ExpandConstant('{cm:Installing}')
StatusPanel.Caption:= 'Встановлення'
BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image3.bmp'))

////////////////////////////////////////////////
Icons.Hide;
IconsLabel.Hide;
DirectX.Hide;
DirectXLabel.Hide;
///////////////////////////////////////////////

end;
wpFinished:
begin
CaptionLabel.Caption:= ExpandConstant('{cm:Finished}')
StatusPanel.Caption:= 'Закінчення'
BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image4.bmp'))

////////////////////////////////////////////////
Icons.Hide;
IconsLabel.Hide;
DirectX.Hide;
DirectXLabel.Hide;
///////////////////////////////////////////////

end;
end;
end;

// картинка перед запуском програми.
procedure ShowSplashPic(Fpath:PAnsiChar; Start,Show,Stop:integer; TransColor,BGColor:Tcolor; CutColor,CloseOnClick:Boolean); external 'ShowSplashPic@files:issplash.dll stdcall delayload';
// Fpath - Путь к файлу картинки.
// Start - Время плавного появления мс.
// Show - Время показа мс.
// Stop - Время исчезания мс.
// TransColor - Цвет прозрачности, будет вырезан из картинки (только для bmp).
// BGColor - Цвет фона для gif картинок.
// CutColor - Если True, то цвет будет вырезан, если False то нет.
// CloseOnClick - Если True, то Закрыть при клике по картинке.

procedure InitializeWizard2();
begin
ExtractTemporaryFile('logo.bmp');
ShowSplashPic(ExpandConstant('{tmp}')+'\logo.bmp', 2000, 3000, 2000, ClWhite, ClWhite, True, True);
end;


procedure InitializeWizard();
begin
InitializeWizard1();
InitializeWizard2();
end;

Отправлено: 19:00, 18-03-2013 | #1916


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


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

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


Tco 03 Зделайте так чтобы в каждам етапе инсталяции бил новий рисунок(в месте всех чтоби било пять (там уже эсть четире рисунков, но на етапи выбор директории для инсталяции игри и на этапе установки ярликов один и тотже ресунок и надписи в окне теже, зделайте чтоби они разние рисунки и надписи к ним)). Если не трудно.

Отправлено: 19:09, 18-03-2013 | #1917


Ветеран


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

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


del:

Последний раз редактировалось insombia, 18-03-2013 в 20:24.


Отправлено: 19:26, 18-03-2013 | #1918


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


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

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


insombia, кто тебе про радиокнопку писал? ( я про обычные кнопки.

Отправлено: 19:42, 18-03-2013 | #1919


Аватара для Tco 03

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


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

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


neorom
Вот, держите! И установка дополнительного ПО и смена картинки! Картинка меняется через функцию: NextButtonClick
читать дальше »

Код: Выделить весь код
#define NeedSize "100"

[Setup]
AppName=Footballsim Patch 2013
AppVerName=Pro Evolution Soccer 2013
DefaultDirName={pf}\Pro Evolution Soccer 2013
DisableReadyPage=true
MergeDuplicateFiles=false
SolidCompression=true
Compression=lzma/ultra64
UseSetupLdr=false

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

[Run]
Filename: {app}\kitserver13\manager.exe; Flags: postinstall waituntilidle;
Filename: {app}\Soft\dxwebsetup.exe; Check: SoftInstall;


[Icons]
Name: {group}\Footballsim_Patch_2013; Filename: {app}\Footballsim_Patch_2013.exe; WorkingDir: {app}\; IconFilename: {app}\Uninstall\unins000.exe; Check: CreateIcons;
Name: {group}\Footballsim_Patch_2013.(Налаштування); Filename: {app}\settings.exe; WorkingDir: {app}\; IconFilename: {app}\Uninstall\unins000.exe; Check: CreateIcons;
Name: {group}\{cm:UninstallProgram,Footballsim_Patch_2013}; Filename: {uninstallexe}; Check: CreateIcons;
Name: {commondesktop}\Footballsim_Patch_2013; Filename: {app}\Footballsim_Patch_2013.exe; WorkingDir: {app}\; IconFilename: {app}\Uninstall\unins000.exe; Check: CreateIcons;
Name: {commondesktop}\Footballsim_Patch_2013.(Налаштування); Filename: {app}\settings.exe; WorkingDir: {app}\; IconFilename: {app}\Uninstall\unins000.exe; Check: CreateIcons;

[Files]
Source: logo.bmp; DestDir: {tmp}; Flags: dontcopy
Source: isSplash.dll; DestDir: {tmp}; Flags: dontcopy
Source: ISSkin.dll; DestDir: {tmp}; Flags: dontcopy
Source: Tiger.cjstyles; DestDir: {tmp}; Flags: dontcopy
Source: Image1.bmp; DestDir: {tmp}; Flags: dontcopy
Source: Image2.bmp; DestDir: {tmp}; Flags: dontcopy
Source: Image3.bmp; DestDir: {tmp}; Flags: dontcopy
Source: Image4.bmp; DestDir: {tmp}; Flags: dontcopy
Source: Image5.bmp; DestDir: {tmp}; Flags: dontcopy
;Source: {app}\*.*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyname

[CustomMessages]
Ukrainian.Welcome=Вас вітає Мастер встановлення доповнення {#SetupSetting("AppName")} до ігри %n{#SetupSetting("AppVerName")}.%nПрограма встановлюється {#SetupSetting("AppName")} на Ваш компютер.
Ukrainian.SelectDir=Програма встановить доповнення до ігри в наступну теку.%nЯкщо ви хочите вибрати іншу теку, натисніть «Обзор».%nНатисніть «Встановити», щоб почати встановлення доповнення.
Ukrainian.Installing=Будь-ласка, почекайте, коли доповнення {#SetupSetting("AppName")} встановиться на Ваш компьютер.
Ukrainian.Finished=Встановлення доповнення {#SetupSetting("AppVerName")} до ігри закінчена.%nВи можете запустити ігру з допомогою%n відповідного значка на «Робочому столі» або з меню «Пуск».
Ukrainian.FreeSize=Доступно місця на диску:
Ukrainian.NeedSize=Необхідно місця на диску:

Ukrainian.Icons=Создать ярлыки?
Ukrainian.DirectX=Установить дополнительное ПО?

[ code]
var
BackPanel, WizardPanel, StatusPanel, ImagePanel: TPanel;
CaptionLabel: TLabel; BmpFile: TBitmapImage;
NeedSpaceLabel,FreeSpaceLabel: TLabel;
FreeMB, TotalMB: Cardinal; NeedSize: Integer;

///////////////////////////////////////////////
Icons, DirectX: TCheckBox;
IconsLabel, DirectXLabel: TLabel;
//////////////////////////////////////////////

procedure LoadSkin(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@files:isskin.dll stdcall';
procedure UnloadSkin(); external 'UnloadSkin@files:isskin.dll stdcall';
function ShowWindow(hWnd: Integer; uType: Integer): Integer; external 'ShowWindow@user32.dll stdcall';


////////////////////////////////////////////
function CreateIcons: Boolean;
begin
Result:= Icons.Checked;
end;

function SoftInstall: Boolean;
begin
Result:= DirectX.Checked;
end;
//////////////////////////////////////////////

Function NumToStr(Float: Extended): String;
Begin
Result:= Format('%.2n', [Float]); StringChange(Result, ',', '.');
while ((Result[Length(Result)] = '0') or (Result[Length(Result)] = '.')) and (Pos('.', Result) > 0) do
SetLength(Result, Length(Result)-1);
End;

procedure GetFreeSpaceCaption(Sender: TObject);
var
Path: String;
begin
Path := ExtractFileDrive(WizardForm.DirEdit.Text);
GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
if FreeMB > 1024 then
FreeSpaceLabel.Caption := ExpandConstant('{cm:FreeSize} ')+ NumToStr(round(FreeMB/1024*100)/100) + ' Гб' else
FreeSpaceLabel.Caption := ExpandConstant('{cm:FreeSize} ')+ IntToStr(FreeMB)+ ' Мб';
if FreeMB < NeedSize then
WizardForm.NextButton.Enabled := False else
WizardForm.NextButton.Enabled := True;
end;

procedure GetNeedSpaceCaption;
begin
if NeedSize > 1024 then
NeedSpaceLabel.Caption := ExpandConstant('{cm:NeedSize} ')+ NumToStr(round(NeedSize/1024*100)/100) + ' Гб' else
NeedSpaceLabel.Caption := ExpandConstant('{cm:NeedSize} ')+ IntToStr(NeedSize)+ ' Мб';
end;

function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('Tiger.cjstyles');
LoadSkin(ExpandConstant('{tmp}\Tiger.cjstyles'), '');
Result := True;
end;

procedure DeinitializeSetup();
begin
ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0);
UnloadSkin();
end;

procedure InitializeWizard1();
begin
NeedSize:= {#NeedSize};

ExtractTemporaryFile('Image1.bmp')
ExtractTemporaryFile('Image2.bmp')
ExtractTemporaryFile('Image3.bmp')
ExtractTemporaryFile('Image4.bmp')
ExtractTemporaryFile('Image5.bmp')

WizardForm.ClientWidth:= ScaleX(800);
WizardForm.ClientHeight:= ScaleY(620);
WizardForm.Position:= poScreenCenter;

WizardForm.InnerNotebook.Hide;
WizardForm.OuterNotebook.Hide;
WizardForm.Font.Name:= 'Georgia';

BackPanel:= TPanel.Create(WizardForm)
BackPanel.SetBounds(ScaleX(0), ScaleY(0), ScaleX(800), ScaleY(618))
BackPanel.Color:= clWhite
BackPanel.BorderStyle:= bsNone
BackPanel.ParentBackground:= False
BackPanel.ParentColor:= False
BackPanel.Parent:= WizardForm

StatusPanel:= TPanel.Create(WizardForm)
StatusPanel.SetBounds(ScaleX(2), ScaleY(2), ScaleX(796), ScaleY(18))
StatusPanel.BorderStyle:= bsNone
StatusPanel.ParentBackground:= False
StatusPanel.ParentColor:= False
StatusPanel.Font.Color:= clWhite
StatusPanel.Font.Size:= 12
StatusPanel.Font.Style:= [fsBold]
StatusPanel.Font.Name:= 'Times New Roman'
StatusPanel.Alignment:= taCenter
StatusPanel.Parent:= WizardForm

ImagePanel:= TPanel.Create(WizardForm)
ImagePanel.SetBounds(ScaleX(2), ScaleY(21), ScaleX(796), ScaleY(484))
ImagePanel.BorderStyle:= bsNone
ImagePanel.ParentBackground:= False
ImagePanel.ParentColor:= False
ImagePanel.Parent:= WizardForm

BmpFile:= TBitmapImage.Create(WizardForm)
BmpFile.Stretch:= True;
BmpFile.SetBounds(ScaleX(0),ScaleY(0), ScaleX(796), ScaleY(484))
BmpFile.Parent:= ImagePanel

WizardPanel:= TPanel.Create(WizardForm)
WizardPanel.SetBounds(ScaleX(2), ScaleY(506), ScaleX(796), ScaleY(110))
WizardPanel.Alignment:= taCenter;
WizardPanel.BorderStyle:= bsNone
WizardPanel.ParentBackground:= False
WizardPanel.ParentColor:= False
WizardPanel.Parent:= WizardForm

CaptionLabel:= TLabel.Create(WizardForm);
CaptionLabel.SetBounds(ScaleX(100), ScaleY(5), ScaleX(590), ScaleY(100));
CaptionLabel.AutoSize:= False;
CaptionLabel.WordWrap:= True;
CaptionLabel.Transparent:= True;
CaptionLabel.Font.Color:= $5F8BA2
CaptionLabel.Font.Size:= 11
CaptionLabel.Font.Style:= [fsBold]
CaptionLabel.Alignment:= taCenter;
CaptionLabel.Parent:= WizardPanel;

NeedSpaceLabel:= TLabel.Create(WizardForm);
NeedSpaceLabel.SetBounds(ScaleX(5),ScaleY(70),ScaleX(300),ScaleY(20))
NeedSpaceLabel.Transparent:= True;
NeedSpaceLabel.Font.Style:= [fsBold]
NeedSpaceLabel.Parent:= WizardPanel

FreeSpaceLabel:= TLabel.Create(WizardForm);
FreeSpaceLabel.SetBounds(ScaleX(250), ScaleY(70), ScaleX(300),ScaleY(20))
FreeSpaceLabel.Transparent:= True;
FreeSpaceLabel.Font.Style:= [fsBold]
FreeSpaceLabel.Parent:= WizardPanel

WizardForm.DirEdit.OnChange:= @GetFreeSpaceCaption;
WizardForm.DirEdit.Text:= WizardForm.DirEdit.Text + #0;

WizardForm.DirBrowseButton.Parent:= WizardForm
WizardForm.DirBrowseButton.Left:= ScaleX(455)
WizardForm.DirBrowseButton.Top:= ScaleY(590)
WizardForm.DirBrowseButton.Font.Size:= 8
WizardForm.DirBrowseButton.Font.Style:= [fsBold]

WizardForm.DirEdit.Parent:= WizardForm
WizardForm.DirEdit.Left:= ScaleX(5)
WizardForm.DirEdit.Top:= ScaleY(590)
WizardForm.DirEdit.Width:= ScaleX(445)
WizardForm.DirEdit.Font.Size:= 8
WizardForm.DirEdit.Font.Style:= [fsBold]

//////////////////////////////////////////////////
Icons:= TCheckBox.Create(WizardForm);
Icons.Parent:= WizardPanel;
Icons.Left:= ScaleX(16);
Icons.Top:= ScaleY(90);
Icons.Width:= ScaleX(12);
Icons.Height:= ScaleY(12);
Icons.Visible:= False;

IconsLabel:= TLabel.Create(WizardForm);
IconsLabel.Left:= ScaleX(36);
IconsLabel.Top:= ScaleY(90);
IconsLabel.Transparent:= True;
IconsLabel.Caption:= ExpandConstant('{cm:Icons}');
IconsLabel.Parent:= WizardPanel;
IconsLabel.Visible:= False;

DirectX:= TCheckBox.Create(WizardForm);
DirectX.Parent:= WizardPanel;
DirectX.Left:= ScaleX(216);
DirectX.Top:= ScaleY(90);
DirectX.Width:= ScaleX(12);
DirectX.Height:= ScaleY(12);
DirectX.Visible:= False;

DirectXLabel:= TLabel.Create(WizardForm);
DirectXLabel.Left:= ScaleX(236);
DirectXLabel.Top:= ScaleY(90);
DirectXLabel.Transparent:= True;
DirectXLabel.Caption:= ExpandConstant('{cm:DirectX}');
DirectXLabel.Parent:= WizardPanel;
DirectXLabel.Visible:= False;
////////////////////////////////////////////////////

WizardForm.ProgressGauge.Parent:= WizardForm
WizardForm.ProgressGauge.Left:= ScaleX(5)
WizardForm.ProgressGauge.Top:= ScaleY(590)
WizardForm.ProgressGauge.Width:= ScaleX(450)

WizardForm.StatusLabel.Parent:= WizardPanel
WizardForm.StatusLabel.SetBounds(ScaleX(5), ScaleY(52), ScaleX(300), ScaleY(20))
WizardForm.StatusLabel.Font.Style:= [fsBold]

WizardForm.FilenameLabel.Parent:= WizardPanel
WizardForm.FilenameLabel.SetBounds(ScaleX(5), ScaleY(68), ScaleX(450), ScaleY(20))
WizardForm.FilenameLabel.Font.Style:= [fsBold]

WizardForm.CancelButton.BringToFront;
WizardForm.CancelButton.Left:= ScaleX(715)
WizardForm.CancelButton.Top:= ScaleY(590)
WizardForm.CancelButton.Font.Size:= 8
WizardForm.CancelButton.Font.Style:= [fsBold]

WizardForm.NextButton.BringToFront;
WizardForm.NextButton.Left:= ScaleX(630)
WizardForm.NextButton.Top:= ScaleY(590)
WizardForm.NextButton.Font.Size:= 8
WizardForm.NextButton.Font.Style:= [fsBold]

WizardForm.BackButton.BringToFront;
WizardForm.BackButton.Left:= ScaleX(545)
WizardForm.BackButton.Top:= ScaleY(590)
WizardForm.BackButton.Font.Size:= 8
WizardForm.BackButton.Font.Style:= [fsBold]
end;

procedure CurPageChanged(CurPageID: Integer);
begin
WizardForm.DirEdit.Hide; WizardForm.DirBrowseButton.Hide;
WizardForm.Progressgauge.Hide; WizardForm.StatusLabel.Hide;
WizardForm.FilenameLabel.Hide; FreeSpaceLabel.Hide;
NeedSpaceLabel.Hide;
case CurPageID of
wpWelcome:
begin
CaptionLabel.Caption:= ExpandConstant('{cm:Welcome}')
StatusPanel.Caption:= 'Привітання'
BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image1.bmp'))

////////////////////////////////////////////////
Icons.Visible:= False;
IconsLabel.Visible:= False;
DirectX.Visible:= False;
DirectXLabel.Visible:= False;
///////////////////////////////////////////////

end;
wpSelectDir:
begin
WizardForm.DirEdit.Show; WizardForm.DirBrowseButton.Show;
FreeSpaceLabel.Show; NeedSpaceLabel.Show;
CaptionLabel.Caption:= ExpandConstant('{cm:SelectDir}')
StatusPanel.Caption:= 'Підготовлення до встановлення'
WizardForm.NextButton.Caption:= 'Далі >'
GetNeedSpaceCaption; if FreeMB < NeedSize then WizardForm.NextButton.Enabled:=False;
BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image2.bmp'))


////////////////////////////////////////////////
Icons.Visible:= True;
IconsLabel.Visible:= True;
DirectX.Visible:= True;
DirectXLabel.Visible:= True;
//////////////////////////////////////////////

end;
wpInstalling:
begin
WizardForm.Progressgauge.Show; WizardForm.StatusLabel.Show;
WizardForm.FilenameLabel.Show;
CaptionLabel.Caption:= ExpandConstant('{cm:Installing}')
StatusPanel.Caption:= 'Встановлення'
BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image4.bmp'))

////////////////////////////////////////////////
Icons.Visible:= False;
IconsLabel.Visible:= False;
DirectX.Visible:= False;
DirectXLabel.Visible:= False;
///////////////////////////////////////////////

end;
wpFinished:
begin
CaptionLabel.Caption:= ExpandConstant('{cm:Finished}')
StatusPanel.Caption:= 'Закінчення'
BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image5.bmp'))

////////////////////////////////////////////////
Icons.Visible:= False;
IconsLabel.Visible:= False;
DirectX.Visible:= False;
DirectXLabel.Visible:= False;
///////////////////////////////////////////////

end;
end;
end;

// картинка перед запуском програми.
procedure ShowSplashPic(Fpath:PAnsiChar; Start,Show,Stop:integer; TransColor,BGColor:Tcolor; CutColor,CloseOnClick:Boolean); external 'ShowSplashPic@files:issplash.dll stdcall delayload';
// Fpath - Путь к файлу картинки.
// Start - Время плавного появления мс.
// Show - Время показа мс.
// Stop - Время исчезания мс.
// TransColor - Цвет прозрачности, будет вырезан из картинки (только для bmp).
// BGColor - Цвет фона для gif картинок.
// CutColor - Если True, то цвет будет вырезан, если False то нет.
// CloseOnClick - Если True, то Закрыть при клике по картинке.

procedure InitializeWizard2();
begin
ExtractTemporaryFile('logo.bmp');
ShowSplashPic(ExpandConstant('{tmp}')+'\logo.bmp', 2000, 3000, 2000, ClWhite, ClWhite, True, True);
end;

/////////////////////////////////////////////////////////
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result:= True;
if CurPageID = wpSelectDir then
begin
if (Icons.Visible = True) and (DirectX.Visible = True ) then begin
BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image3.bmp'));
end;
end;
end;
//////////////////////////////////////////////////////


procedure InitializeWizard();
begin
InitializeWizard1();
InitializeWizard2();
end;


Добавлено: С надписями Вы также можете поступить через: NextButtonClick
Код: Выделить весь код
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result:= True;
if CurPageID = wpSelectDir then
begin
if (Icons.Visible = True) and (DirectX.Visible = True ) then begin
BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image3.bmp'));
CaptionLabel.Caption:= ExpandConstant('{cm:Welcome}'); 
end;
end;
end;

Последний раз редактировалось Tco 03, 18-03-2013 в 20:24.


Отправлено: 20:15, 18-03-2013 | #1920



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты 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
Inno Setup tradeukraine Вебмастеру 3 13-06-2006 20:39




 
Переход