Без сплеша! Теперь расскажи как менять вес игры в этом коде!
[more=Скрипт..]
[Setup]
AppName=Mirror's Edge
AppVerName=Mirror's Edge
DefaultDirName={pf}\EA Games\Mirror's Edge
OutputDir=Out
DefaultGroupName=EA Games\Mirror's Edge
UninstallFilesDir={app}\uninstall
InternalCompressLevel=ultra64
SolidCompression=true
Compression=lzma/ultra64
ArchitecturesInstallIn64BitMode=x64
ArchitecturesAllowed=x64 x86
RestartIfNeededByRun=false
DisableReadyPage=true
UsePreviousTasks=false
DirExistsWarning=no
UsePreviousAppDir=false
DisableProgramGroupPage=true
UsePreviousGroup=false
UsePreviousSetupType=false
FlatComponentsList=false
DiskSpanning=true
DiskClusterSize=1024
DiskSliceSize=1566000000
AppID={{AEDBD563-24BB-4EE3-8366-A654DAC2D988}
[LangOptions]
WelcomeFontName=Tahoma
WelcomeFontSize=11
[Files]
Source: gifctrl.dll; Flags: dontcopy
Source: logo3.gif; Flags: dontcopy
[Icons]
Name: {group}\Удалить игру; Filename: {uninstallexe}
Name: {group}\Mirror's Edge™; Filename: {app}\Binaries\MirrorsEdge.exe; WorkingDir: {app}\Binaries\
Name: {group}\Readme; Filename: {app}\Support\readme.ru.txt
Name: {group}\Техническая поддержка; Filename: {app}\Support\EA Help\Electronic_Arts_Technical_Support.htm
Name: {group}\Веб-сайт Mirror's Edge™; Filename:
http://www.mirrorsedge.com/ Name: {group}\Поиск обновлений Mirror's Edge™; Filename:
http://www.mirrorsedge.com/DLC Name: {commondesktop}\Mirror's Edge™; Filename: {app}\Binaries\MirrorsEdge.exe; WorkingDir: {app}\Binaries\; Check: MakeDesktopIcon
[UninstallDelete]
Name: {app}\; Type: filesandordirs
[Run]
Filename: {src}\Game.exe; Parameters: -x -y -s2 -d.; WorkingDir: {app}\Game\; StatusMsg: Идет распаковка файлов игры...; Flags: shellexec runhidden waituntilterminated; Afterinstall: animateprogress
Filename: {src}\Sound_Bin_PC.exe; Parameters: -x -y -s2 -d.; WorkingDir: {app}\Game\Sound_Bin_PC\; StatusMsg: Идет распаковка файлов игры...; Flags: shellexec runhidden waituntilterminated; Afterinstall: animateprogress
Filename: {src}\DirectX\dxsetup.exe; Parameters: /silent; StatusMsg: Идет установка дополнительных программ...; Check: InstallDop
Filename: {src}\Redistributables\vcredist_x86.exe; Parameters: /Q; StatusMsg: Идет установка дополнительных программ...; Check: InstallDop
Filename: {src}\Redistributables\PhysX_SystemSoftware.exe; Parameters: /quiet; StatusMsg: Идет установка дополнительных программ...; Check: InstallDop
[Registry]
Root: HKLM; SubKey: SOFTWARE\EA Games; ValueType: none; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: DisplayName; ValueData: Mirror's Edge™; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: CD Drive; ValueData: {drive:...}; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: ProductName; ValueData: Mirror's Edge™; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Folder; ValueData: {commonprograms}\{groupname}; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Install Dir; ValueData: {app}\; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Installed From; ValueData: {drive:...}; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Locale; ValueData: ru; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Language; ValueData: Russian; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Patch URL; ValueData:
http://www.mirrorsedge.com/DLC; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Product GUID; ValueData: {{AEDBD563-24BB-4EE3-8366-A654DAC2D988}; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Suppression Exe; ValueData: ; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Registration; ValueData: Software\Electronic Arts\EA Games\Mirror's Edge\ergc; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: ContentID; ValueData: mirrors_edge_eu; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Version; ValueData: 1.0.1.0; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge\1.0; ValueType: string; ValueName: DisplayName; ValueData: Mirror's Edge; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge\1.0; ValueType: dword; ValueName: Language; ValueData: $00000010; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge\1.0; ValueType: string; ValueName: LanguageName; ValueData: Russian; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge\1.0; ValueType: string; ValueName: ProgramGroup; ValueData: {commonprograms}\{groupname}; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Electronic Arts; ValueType: none; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Electronic Arts\EA Core; ValueType: none; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Electronic Arts\EA Core\Installed Games; ValueType: none; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Electronic Arts\EA Core\Installed Games\mirrors_edge_eu; ValueType: string; ValueName: lang; ValueData: ru; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Electronic Arts\EA Games\Mirror's Edge\ergc; ValueType: string; ValueName: ; ValueData: QXJSKREYVVPG6VVDJRLD; Flags: uninsdeletekey
Root: HKLM; Subkey: SOFTWARE\EA DICE; Flags: uninsdeletekey
Root: HKLM; Subkey: SOFTWARE\EA DICE\Mirror's Edge Patch\1.0.1.0; Flags: uninsdeletekey
[Messages]
WizardSelectDir=Выбор папки установки и дополнительных задач
SelectDirDesc=Выберите целевую директорию и дополнительные задачи, которые должны выполниться во время установки
SelectDirBrowseLabel=Нажмите «Установить», чтобы начать установку. Если Вы хотите выбрать другую папку, нажмите «Обзор».
[UninstallDelete]
Type: filesandordirs; Name: {app}
[Code]
const
HALIGN_CENTER = 0;
HALIGN_LEFT = 1;
HALIGN_RIGHT = 2;
VALIGN_CENTER = 0;
VALIGN_TOP = 1;
VALIGN_BOTTOM = 2;
FIT_NONE = 0;
FIT_WIDTH = 1;
FIT_HEIGHT = 2;
FIT_BOTH = 3;
CLR_INVALID = $FFFFFFFF;
function InitGifCtrl(): Boolean; external 'initgifctrl@files:gifctrl.dll stdcall';
function UninitGifCtrl(): Boolean; external 'uninitgifctrl@files:gifctrl.dll stdcall';
function NewGifbWnd(hWndParent: HWND; X, Y, nWidth, nHeight: Integer): HWND; external 'newgifwnd@files:gifctrl.dll stdcall';
function FreeGifWnd(hWndGif: HWND): Boolean; external 'freegifwnd@files:gifctrl.dll stdcall';
function GifWndSetParent(hWndGif: HWND; hWndParent: HWND): Boolean; external 'gifwndsetparent@files:gifctrl.dll stdcall';
function GifWndSetBounds(hWndGif: HWND; X, Y, nWidth, nHeight: Integer): Boolean; external 'gifwndsetbounds@files:gifctrl.dll stdcall';
function GifWndLoadFromFile(hWndGif: HWND; HAlign, VAlign: Integer; BGColor: DWord; Fit: integer; GifFileName: PChar): Boolean; external 'gifwndloadfromfile@files:gifctrl.dll stdcall';
var
GIFHWND: HWND;
function InitializeSetup(): Boolean;
begin
InitGifCtrl();
GIFHWND := 0;
Result := True;
end;
procedure DeinitializeSetup();
begin
UninitGifCtrl();
end;
procedure LblOnClick(Sender: TObject);
var
ErrorCode: Integer;
begin
ShellExec('open', 'http://forum.ru-board.com', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;
var
WLabel1, WLabel2,
FLabel1, FLabel2: TLabel;
PageNameLabel, PageDescriptionLabel: TLabel;
DesktopIcon,Dop:TCheckBox;
ResultStr: string;
ResultCode: Integer;
NeedSize:Integer;
FreeMB, TotalMB: Cardinal;
NeedSpaceLabel,FreeSpaceLabel: TLabel;
Function MakeDesktopIcon:Boolean;
begin
Result:=DesktopIcon.Checked;
end;
Function InstallDop:Boolean;
begin
Result:=Dop.Checked;
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 := 'Доступно места на диске: '+ FloatToStr(round(FreeMB/1024*100)/100) + ' GB' else
FreeSpaceLabel.Caption := 'Доступно места на диске: '+ IntToStr(FreeMB)+ ' MB';
if FreeMB < NeedSize then
WizardForm.NextButton.Enabled := False else
WizardForm.NextButton.Enabled := True; end;
procedure GetNeedSpaceCaption;
begin
if NeedSize > 1024 then
NeedSpaceLabel.Caption := 'Требуется места на диске: '+ FloatToStr(round(NeedSize/1024*100)/100) + ' GB' else
NeedSpaceLabel.Caption := 'Требуется места на диске: '+ IntToStr(NeedSize)+ ' MB';
end;
var
ProgressBar1: TNewProgressBar;
procedure animateprogress;
begin ProgressBar1.Position := ProgressBar1.Position+1
end;
procedure InitializeWizard();
var
GifFileName: String;
Lbl: TNewStaticText;
begin
ExtractTemporaryFile('logo3.gif');
GIFHWND := NewGifbWnd(WizardForm.Handle, ScaleX(30), WizardForm.Bevel.Top + ScaleY(8), 126, 31);
GifWndLoadFromFile(GIFHWND, HALIGN_CENTER, VALIGN_CENTER, CLR_INVALID, FIT_NONE, ExpandConstant('{tmp}\logo3.gif'));
Lbl := TNewStaticText.Create(WizardForm);
Lbl.Parent := WizardForm;
Lbl.AutoSize := False;
Lbl.SetBounds(ScaleX(30), WizardForm.Bevel.Top + ScaleY(8), 126, 31);
Lbl.OnClick := @LblOnClick;
Lbl.Cursor := crHand;
begin
ProgressBar1 := TNewProgressBar.Create(wizardform);
with ProgressBar1 do
begin
Parent := wizardform.installingpage;
Left := wizardform.progressgauge.left;
Top := wizardform.progressgauge.top+wizardform.progressgauge.height+15;
Width := wizardform.progressgauge.width;
Height := wizardform.progressgauge.height;
Max := 100; //задается как кол-во файлов в [_run]
end;
end;
begin
WizardForm.Caption:='Программа установки игры "Mirrors Edge"';
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(16);
WLabel1.Width := ScaleX(301);
WLabel1.Height := ScaleY(54);
WLabel1.AutoSize := False;
WLabel1.WordWrap := True;
WLabel1.Font.Size := 11;
WLabel1.Font.Style := [fsBold];
WLabel1.Font.Color:= clBlack;
WLabel1.Caption := WizardForm.WelcomeLabel1.Caption;
WLabel1.Transparent := True;
WLabel1.Parent := WizardForm.WelcomePage;
WLabel2 :=TLabel.Create(WizardForm);
WLabel2.Top := ScaleY(76);
WLabel2.Left := ScaleX(176);
WLabel2.Width := ScaleX(301);
WLabel2.Height := ScaleY(234);
WLabel2.AutoSize := False;
WLabel2.WordWrap := True;
WLabel2.Font.Color:= clBlack;
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(16);
FLabel1.Width := ScaleX(301);
FLabel1.Height := ScaleY(54);
FLabel1.AutoSize := False;
FLabel1.WordWrap := True;
FLabel1.Font.Size := 11;
FLabel1.Font.Style := [fsBold];
FLabel1.Font.Color:= clBlack;
FLabel1.Caption := WizardForm.FinishedHeadingLabel.Caption;
FLabel1.Transparent := True;
FLabel1.Parent := WizardForm.FinishedPage;
FLabel2 :=TLabel.Create(WizardForm);
FLabel2.Top := ScaleY(76);
FLabel2.Left := ScaleX(176);
FLabel2.Width := ScaleX(301);
FLabel2.Height := ScaleY(53);
FLabel2.AutoSize := False;
FLabel2.WordWrap := True;
FLabel2.Font.Color:= clBlack;
FLabel2.Caption := 'Программа установлена на Ваш компьютер.' #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.Color := clBlack;
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;
Font.Color := clBlack;
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;
begin
DesktopIcon:=TCheckBox.Create(WizardForm);
with DesktopIcon do
begin
Parent:=WizardForm.SelectDirPage;
Caption:='Добавить ярлык на рабочий стол'
Left:=ScaleX(0);
Top := WizardForm.DirEdit.Top+35;
Width := ScaleX(400);
Height := ScaleY(15);
TabOrder := 0;
Checked := True
end;
end;
begin
dop := TCheckBox.Create(WizardForm);
with Dop do
begin
Parent := WizardForm.SelectDirPage;
Caption := 'Установить дополнительные программы (рекомендуется)';
Left := ScaleX(0);
Top := WizardForm.DirEdit.Top+55;
Width := ScaleX(400);
Height := ScaleY(15);
TabOrder := 0;
Checked := True;
end;
end;
begin
NeedSize :=7300;
WizardForm.DiskSpaceLabel.Hide;
NeedSpaceLabel := TLabel.Create(WizardForm);
with NeedSpaceLabel do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(202);
Width := ScaleX(209);
Height := ScaleY(13);
end;
FreeSpaceLabel := TLabel.Create(WizardForm);
with FreeSpaceLabel do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(220);
Width := ScaleX(209);
Height := ScaleY(13);
end;
WizardForm.DirEdit.OnChange := @GetFreeSpaceCaption;
WizardForm.DirEdit.Text := WizardForm.DirEdit.Text + #0;
end;
end;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
begin
PageNameLabel.Caption := WizardForm.PageNameLabel.Caption;
PageDescriptionLabel.Caption := WizardForm.PageDescriptionLabel.Caption;
end;
begin
if CurPageID=wpSelectDir then begin
WizardForm.NextButton.Caption:='Установить';
GetNeedSpaceCaption;
if FreeMB < NeedSize then
WizardForm.NextButton.Enabled:=False
end;end;end;
[/more]