PDA

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 3]


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 [68] 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188

wertulll
17-04-2011, 06:40
Pебят подскажите пожалуйста как зделать картинку на последнем окне туже что и на первом и вернуть текст. как правильно дописать окно завершение установки? в этом скрипте подскажите пожалуйста!!![Setup]
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: "russian"; MessagesFile: "compiler:Languages\Russian.isl"



[Files]
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

[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 - 200;
Left := Left + 0;
end;
with PageDescriptionLabel do begin
Font.Name := 'Tahoma'
Width := Width - 483;
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;
WizardForm.PageNameLabel.Font.Color:=clWhite;
WizardForm.Bevel.visible:=true ;
WizardForm.BeveledLabel.visible:=false ;
WizardForm.Bevel1.visible:=true ;
WizardForm.ReadyMemo.ScrollBars:= ssNone
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, 320);
BmpFile.Stretch:= true
BmpFile.Parent:= WizardForm.WelcomePage;

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

WelcomeLabel1:= TLabel.Create(WizardForm);
with WelcomeLabel1 do
begin
Left:= ScaleX(200);
Top:= ScaleY(35);
Width:= ScaleX(303);
Height:= ScaleY(71);
AutoSize:= false;
Transparent:= true;
WordWrap:= true;
Font.Name:='Tahoma'
Font.Style := [fsBold]
Font.Size:= 12;
Font.Color:=ClWhite
Parent:= WizardForm.WelcomePage;
Caption:= WizardForm.WelcomeLabel1.Caption;
end;

WelcomeLabel2:=TLabel.Create(WizardForm);
with WelcomeLabel2 do
begin
Top:= ScaleY(90);
Left:= ScaleX(200);
Width:= ScaleX(270);
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;

LordSP
17-04-2011, 07:04
wertulll, Для примера скачай это (http://rghost.ru/download/3892733/3461639326eb2a4206ee28863ab5a59760171c54/fnv_iss.rar) ,там разберешься.

wertulll
17-04-2011, 07:08
чёт не хатит скачиватся :search:

LordSP
17-04-2011, 07:48
wertulll, С сервисом проблема,Вот (http://ifolder.ru/19914661)

LordSP
17-04-2011, 08:24
wertulll, Перезалил,Держи (http://s3.dump.ru/file_download/NTE3ODIyODo6MTMwMzAxNDIwMzo6MTA5LjE3MS4yOS4xOTM=)

frozengrob
17-04-2011, 10:16
А можно ли как нибудь применить Растровые картинки при смене фона установочника пишет типа нельзя . Пожалуйста помогите если можно пишет ошибку Bitmap image is not valid. Вставлял и растровые и векторные всё равно пишет.

Gnom_aka_Lexander
17-04-2011, 11:42
frozengrob, Стандартный фрмат изображениий - бмп и ико, остальное только внешними библиотеками. Читай шапку, там есть все, что нужно.

frozengrob
17-04-2011, 12:40
Лександер Огромное спасибо я разобрался )) Будь добр подскажи как в Репаке при установке сделать так чтобы проигрывалась музыка или кто знает дайте легкий скрипт) Пожалуйста. или хотя бы ссылку

insombia
17-04-2011, 12:42
frozengrob музыку можно сделать чтобы играла через inno setup gamescript generator а вот чтобы с кнопкой я не знаю и сам

R.i.m.s.k.y.
17-04-2011, 13:49
музыку можно сделать чтобы играла через inno setup gamescript generator а вот чтобы с кнопкой я не знаю и сам »
в шапке "Коллекция скриптов", там есть "Пример 1 – музыка воспроизводится только при нажатии кнопки «play»"

LinkOFF
17-04-2011, 17:12
подскажите пожалуйста как мне сделать чтоб наверху где написано "пожалуйста подождите пока..." была картинка по всей длине
Типо такого:http://forum.oszone.net/attachment.php?attachmentid=62869&stc=1&d=1303046804

murlakatamenka
17-04-2011, 17:42
Несколько тонких вопросов :
1. Как можно настроить, чтобы отдельные папки/файлы сохранялись в отдельные .bin-файлы ?
2. Как можно сделать, чтобы в зависимости от версии Windows (32/64 бита) ключи реестра создавались соответственно в HKLM/Software/... и HKLM/Software/Wow6432Node/...
3. Подскажите нормальный вариант для сплэша. Хочу сделать следующее: сначала появляется лого Mass Effect (появление плавное, т.е. со сменой прозрачности), а потом так же плавно появляестся 2 (это цифра, для Mass Effect 2 всё делается :))и спустя некоторое врмя они плавно исчезают. isgsg.dll у меня не работает вообще (Win 7 x64), вариант через sleep мне не нравится тем, что при наведении на сплэш курсор меняется на со стрелки на кружок. С картинками поработать смогу (в Photoshop).
Спасибо за помощь.

R.i.m.s.k.y.
17-04-2011, 18:13
2. Как можно сделать, чтобы в зависимости от версии Windows (32/64 бита) ключи реестра создавались соответственно в HKLM/Software/... и HKLM/Software/Wow6432Node/... »
стандартная функция IsWin64 и Check: ()
Check: (not IsWin64); Root: HKLM; Subkey: SOFTWARE\Gabest\Media Player Classic;...
Check: IsWin64; Root: HKLM; Subkey: Software\Wow6432Node\Gabest\Media Player Classic...
не забудь
[Setup]
ArchitecturesInstallIn64BitMode=x64

и вообще в справке почитай про небольшие отличия между х86 и х64

YURSHAT
17-04-2011, 18:58
LordSP,
Лександер, Я уже и в шапке искал и в скриптах смотрел,не нашел к сожалению.
Еще такое ты случаем не обладаешь скриптом,который корректно без ошибок заменяет стандартное окно "О программе".. у меня был один,но после выхода из инсталлятора,либо завершения его работы,слышен звук ошибки. »

[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes

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

[Code_]
function AppendMenu(hMenu: HMENU; uFlags, uIDNewItem: UINT; lpNewItem: PChar): BOOL;
external 'AppendMenuA@user32.dll stdcall';
function GetSystemMenu(hWnd: HWND; bRevert: BOOL): HMENU; external 'GetSystemMenu@user32.dll stdcall';

const
WM_SYSCOMMAND = $0112;
MF_DELETE = $200;
MF_SEPARATOR = $800;
MF_BYPOSITION = $400;

var
Menu: TMenuItem;

procedure AppOnMessage(var Msg: TMsg; var Handled: Boolean);
begin
if Msg.message = WM_SYSCOMMAND then
if Msg.wParam = Menu.Handle then
MsgBox('Здесь могла бы быть ваша реклама... ', mbInformation, MB_OK);;
end;

procedure InitializeWizard();
begin
// попытаемя удалить родное меню 'О программе'
if not AppendMenu(GetSystemMenu(Wizardform.Handle, True), MF_DELETE, 0, SetupMessage(msgAboutSetupMenuItem)) then
WizardForm.Position:= poScreenCenter;
// создаём сепаратор
AppendMenu(GetSystemMenu(Wizardform.Handle, False), MF_SEPARATOR, 0, '');
Menu:= TMenuItem.Create(WizardForm); // создаём ссылку на менюшку
// добавляем свой пункт в системное меню 'О программе'
AppendMenu(GetSystemMenu(Wizardform.Handle, False), MF_BYPOSITION, Menu.Handle, SetupMessage(msgAboutSetupMenuItem));
Application.OnMessage:= @AppOnMessage;
end; для ResTools'овской инно

LinkOFF
17-04-2011, 20:03
помогите пожалуйста скрепить 2 скрипта.В одном игра со скином и скартинкой во весь инстал,а в другом вставка логотипа и у меня не получается их скрепить.Помогите пожалуйста.Зарание спасибо

Вот скрипт http://rghost.ru/5225030

Gnom_aka_Lexander
17-04-2011, 20:20
R.i.m.s.k.y., еще проще, задается стандартный для х32 ключ, в х64 он автоматом поправляется как нужно - лично проверил. А также обращения к ключу идут с этой поправкой - тоже проверено.
LinkOFF, прикрепил соединенный скрипт, ты энд один пропустил.

R.i.m.s.k.y.
17-04-2011, 20:31
R.i.m.s.k.y., еще проще, задается стандартный для х32 ключ, в х64 он автоматом поправляется как нужно - лично проверил. А также обращения к ключу идут с этой поправкой - тоже проверено. »
Типа HKCU32/HKCU64? это да, но ...Software\Wow6432Node\... оно не учитывает, тоже проверил

Gnom_aka_Lexander
17-04-2011, 20:34
Wow6432Node\. » оно учитывает, я-же говорю - проверял неоднократно, все вписывается правильно, и обращение, например из авторана, идет без Wow6432Node, но оно учитывается.Вот (http://rghost.ru/5214542), для проверки - удали строчки распаковки исдоне, чтоб не было ошибок, и установи, потом запусти еще раз. И обрати внимание на реестр.

YURSHAT
17-04-2011, 20:40
LinkOFF,
помогите пожалуйста скрепить 2 скрипта.В одном игра со скином и скартинкой во весь инстал,а в другом вставка логотипа и у меня не получается их скрепить.Помогите пожалуйста.Зарание спасибо »

#define MyAppName "Mass Effect"
#define MyAppVersion "1.0"
#define MyAppPublisher "BioWare"
#define MyAppURL "http://www.torrent-games.net/"
#define MyAppExeName "MassEffectLauncher.exe"

[Setup]
AppId={{D9C5ACA8-A99E-4431-AC50-236359DA74F8}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputDir=out
OutputBaseFilename=setup
WizardImageFile=img\WizardImage.bmp
WizardSmallImageFile=img\WizardSmallImage.bmp
SetupIconFile=img\setup.ico
DisableReadyPage=yes
AllowNoIcons=yes
Compression=lzma
SolidCompression=no
DiskSpanning=yes
DiskSliceSize=727000000
PrivilegesRequired=poweruser

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

[Files]
Source: "skin\isskin.dll"; DestDir: "{app}"; Flags: dontcopy
Source: "skin\tiger_v2.cjstyles"; DestDir: "{tmp}"; Flags: dontcopy
Source: "img\papka.bmp"; DestDir: "{tmp}"; Flags: dontcopy nocompression
Source: "img\img.bmp"; DestDir: "{tmp}"; Flags: dontcopy nocompression
Source: "img\logo.bmp"; DestDir: "{tmp}"; Flags: dontcopy nocompression
;Source: "D:\Games\Fallout New Vegas\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs

[Icons]
Name: "{group}\Начать игру"; Filename: "{app}\{#MyAppExeName}";
Name: "{group}\Удалить игру"; Filename: "{uninstallexe}";
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}";


[Code_]
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';

var
WLabel1, WLabel2,
FLabel1, FLabel2: TLabel;
PageNameLabel, PageDescriptionLabel: TLabel;
BmpFile: TBitmapImage;
LogoImage:TBitmapImage;
LogoLabel: TLabel;
LogoPanel: TPanel;

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

procedure InitializeWizard1();
begin
WizardForm.BorderStyle:= bsDialog;
WizardForm.Bevel.Hide
WizardForm.Bevel1.Hide

WizardForm.PageNameLabel.Font.Color:=clwhite;
WizardForm.LicenseAcceptedRadio.Font.Color:=clwhite;
WizardForm.LicenseNotAcceptedRadio.Font.Color:=clwhite;
WizardForm.Font.Color:=clwhite;

ExtractTemporaryFile('papka.bmp');
WizardForm.SelectDirBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\papka.bmp'));
WizardForm.SelectDirBitmapImage.AutoSize:=true;
WizardForm.SelectGroupBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\papka.bmp'));
WizardForm.SelectGroupBitmapImage.AutoSize:=true;

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

WizardForm.WelcomeLabel1.Hide;
WizardForm.WelcomeLabel2.Hide;
WizardForm.FinishedHeadingLabel.Hide;
WizardForm.FinishedLabel.Hide;
WizardForm.WizardBitmapImage.Width := 497;
WizardForm.WizardBitmapImage.Height := 313;
WizardForm.WizardSmallBitmapImage.Left:=0;
WizardForm.WizardSmallBitmapImage.Width:=497;
WizardForm.WizardSmallBitmapImage.Height:=58;
WizardForm.PageDescriptionLabel.Width:=300;
WizardForm.PageNameLabel.Width:=300;
WizardForm.FileNameLabel.Visible:=False;
WizardForm.ProgressGauge.Top:=ScaleY(100);
WizardForm.StatusLabel.Top:=ScaleY(80);
WLabel1 := TLabel.Create(WizardForm);
WLabel1.Left := ScaleX(176);
WLabel1.Top := ScaleY(80);
WLabel1.Width := ScaleX(301);
WLabel1.Height := ScaleY(54);
WLabel1.AutoSize := False;
WLabel1.WordWrap := True;
WLabel1.Font.Size := 11;
WLabel1.Font.Style := [fsBold];

WLabel1.Caption := WizardForm.WelcomeLabel1.Caption;
WLabel1.Transparent := True;
WLabel1.Parent := WizardForm.WelcomePage;
WLabel2 :=TLabel.Create(WizardForm);
WLabel2.Top := ScaleY(130);
WLabel2.Left := ScaleX(176);
WLabel2.Width := ScaleX(301);
WLabel2.Height := ScaleY(234);
WLabel2.AutoSize := False;
WLabel2.WordWrap := True;

WLabel2.Caption := WizardForm.WelcomeLabel2.Caption;
WLabel2.Transparent := True;
WLabel2.Parent := WizardForm.WelcomePage;
WizardForm.WizardBitmapImage2.Width := 497;
WizardForm.WizardBitmapImage2.Height := 313;
FLabel1 := TLabel.Create(WizardForm);
FLabel1.Left := ScaleX(176);
FLabel1.Top := ScaleY(80);
FLabel1.Width := ScaleX(301);
FLabel1.Height := ScaleY(54);
FLabel1.AutoSize := False;
FLabel1.WordWrap := True;
FLabel1.Font.Size := 11;
FLabel1.Font.Style := [fsBold];

FLabel1.Caption := WizardForm.FinishedHeadingLabel.Caption;
FLabel1.Transparent := True;
FLabel1.Parent := WizardForm.FinishedPage;
FLabel2 :=TLabel.Create(WizardForm);
FLabel2.Top := ScaleY(130);
FLabel2.Left := ScaleX(176);
FLabel2.Width := ScaleX(301);
FLabel2.Height := ScaleY(53);
FLabel2.AutoSize := False;
FLabel2.WordWrap := True;

FLabel2.Caption := '{#MyAppName} установлена на Ваш компьютер.' #13#13
'Нажмите «Завершить», чтобы выйти из программы установки.';
FLabel2.Transparent := True;
FLabel2.Parent := WizardForm.FinishedPage;
begin
PageNameLabel := TLabel.Create(WizardForm);
with PageNameLabel do
begin
Left := ScaleX(10);
Top := ScaleY(10);
Width := ScaleX(300);
Height := ScaleY(14);
AutoSize := False;
WordWrap := True;
Font.Style := [fsBold];
Transparent := True;
Parent := WizardForm.MainPanel;
end;

PageDescriptionLabel := TLabel.Create(WizardForm);
with PageDescriptionLabel do
begin
Left := ScaleX(15);
Top := ScaleY(25);
Width := ScaleX(400);
Height := ScaleY(30);
AutoSize := False;
WordWrap := True;
Transparent := True;
Parent := WizardForm.MainPanel;
end;

with WizardForm do
begin
PageNameLabel.Hide;
PageDescriptionLabel.Hide;
with MainPanel do
begin
with WizardSmallBitmapImage do
begin
Left := ScaleX(0);
Top := ScaleY(0);
Width := Mainpanel.Width;
Height := MainPanel.Height;
end;
end;
end;
end;
end;

procedure InitializeWizard2();
begin
ExtractTemporaryFile('logo.bmp');
LogoPanel := TPanel.Create(WizardForm);
with LogoPanel do
begin
Parent := WizardForm;
Left := ScaleX(5);
Top := ScaleY(320);
Width := ScaleX(165);
Height := ScaleY(35);
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;

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

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

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

procedure CurPageChanged(CurPageID: Integer);
begin
begin
PageNameLabel.Caption := WizardForm.PageNameLabel.Caption;
PageDescriptionLabel.Caption := WizardForm.PageDescriptionLabel.Caption;
end;
end;

R.i.m.s.k.y.
17-04-2011, 20:48
Типа HKCU32/HKCU64? это да, но ...Software\Wow6432Node\... оно не учитывает, тоже проверил »
оно учитывает, я-же говорю »
SEREGA!!! рассуди нас, скудоумных, как правильно?




© OSzone.net 2001-2012