Как cделать кнопку "назад" некликабельной или убрать её вообще... помогите
» Inno Setup (создание инсталяционных пакетов)
serg566
Цитата:
[more=так]
procedure CurPageChanged(CurPageID: Integer);
begin
WizardForm.BackButton.Visible := False;
end;
[/more]
Цитата:
убрать её вообще...
[more=так]
procedure CurPageChanged(CurPageID: Integer);
begin
WizardForm.BackButton.Visible := False;
end;
[/more]
kombat 77
Спасибо
Спасибо
DeKaNszn
хе...посмотрел видео и сильно озадачился, потом догнал в чем косяк..ты выбирал тип установки - обновить приложение, а я выбирал полную установку и получал ошибку, когда выбрал обновить приложение то все было ок. А вот с полной установкой косяк.. %)..
хе...посмотрел видео и сильно озадачился, потом догнал в чем косяк..ты выбирал тип установки - обновить приложение, а я выбирал полную установку и получал ошибку, когда выбрал обновить приложение то все было ок. А вот с полной установкой косяк.. %)..
WinstAn70
Большое спасибо за функцию.
Большое спасибо за функцию.
AngelDead
GameScript Generator не дописывает ничего для деинсталлятора (т.е. используется стандартный деинсталлятор созданный инно сетапом), поэтому ничего глючить не должно
GameScript Generator не дописывает ничего для деинсталлятора (т.е. используется стандартный деинсталлятор созданный инно сетапом), поэтому ничего глючить не должно
nOobCrafter
Вот и нашлась причина
Вот и нашлась причина
htuos
Спасибо, я уже разобрался все ок, просто его за основу брал чтобы дальше скрипт делать.
Добавлено:
htuos
Спасибо только я уже разобрался, GameScript Generator брал за основу чтобы дальше скрипт делать.
Спасибо, я уже разобрался все ок, просто его за основу брал чтобы дальше скрипт делать.
Добавлено:
htuos
Спасибо только я уже разобрался, GameScript Generator брал за основу чтобы дальше скрипт делать.
Мужики, помогите разобраться. Только недавно начал изучать Inno Setup и пытаться создавать скрипты для компиляции игр. Вот вчера первый раз попробывал написать скрипт с помощью GameScript Generator.Писал для игры Collapse. Всё было бы хорошо, но вот какие косяки получились: при выборе дериктории установки почему то выскакивает вот такая байда
http://www.imgup.ru/image-12379004223fa80c6a6606d60e0d4abae2835b7148 , вместо нормального пути.
Сама установка прошла успешно, игра запускается и играется . Но вот когда попробывал удалить, то выскачило такое сообщение об ошибке: http://www.imgup.ru/image-12379004553fa80c6a6606d60e0d4abae2835b7148 . Помогите пожалуйста разобраться в чём тут дело. Ну и последний вопрос - я пока не разобрался ещё вот с чем: как понять где в реестре регестрируется игра и как включить в скрипт пути регистрации ??
P.S. сам скрипт
[more=вот]
[Setup]
SourceDir=.
OutputDir=Setup
AppName=Collapse
AppVerName=Collapse
AppVersion=Collapse
AppPublisher=Бука
AppCopyright=Бука
DefaultDirName={pf}\C:\Program Files\Collapse
DefaultGroupName=Collapse
AllowNoIcons=yes
OutputBaseFilename=setup
WindowVisible=no
WindowShowCaption=no
WindowResizable=no
Compression=lzma/normal
DiskSpanning=yes
DiskSliceSize=786432000
SlicesPerDisk=1
[Languages]
Name: "russian"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"
[Files]
Source: "isxbb.dll"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "E:\Фотографии (все что есть на компе)\Сборка тачек\Audi_R8V12TDI_2008_03_1600x1200.jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "E:\Фотографии (все что есть на компе)\Машенька.jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "isgsg.dll"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "G:\Collapse\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension
[Icons]
Name: "{group}\Коллапс"; Filename: "{app}\collapse.exe"; WorkingDir: "{app}";
Name: "{userdesktop}\Коллапс"; Filename: "{app}\collapse.exe"; WorkingDir: "{app}"; Tasks: desktopicon;
Name: "{group}\{cm:UninstallProgram,Collapse}"; Filename: "{uninstallexe}"
[Run]
Description: "{cm:LaunchProgram, Коллапс}"; Filename: "{app}\collapse.exe"; WorkingDir: "{app}"; Flags: nowait postinstall skipifsilent unchecked
[UninstallDelete]
Type: filesandordirs; Name: "{app}"
[_ISTool]
EnableISX=True
[Code]
const
BackGround=6;
function isxbb_AddImage(Image: PChar; Flags: Cardinal): integer; external 'isxbb_AddImage@files:isxbb.dll stdcall delayload';
function isxbb_Init(hWnd: Integer): integer; external 'isxbb_Init@files:isxbb.dll stdcall delayload';
procedure ShowSplashScreen(p1:HWND;p2:string;p3,p4,p5,p6,p7:integer;p8:boolean;p9:Cardinal;p10:integer); external 'ShowSplashScreen@files:isgsg.dll stdcall delayload';
function GetSystemMetrics(nIndex:Integer):integer; external 'GetSystemMetrics@user32.dll stdcall delayload';
procedure InitializeWizard;
begin
WizardForm.Position:=poScreenCenter;
MainForm.BorderStyle:=bsNone;
MainForm.Width:=GetSystemMetrics(0);
MainForm.Height:=GetSystemMetrics(1)+1;
MainForm.Top:=-1;
MainForm.Left:=0;
ExtractTemporaryFile('Машенька.jpg');
ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\Машенька.jpg',1000,3000,1000,0,255,False,$FFFFFF,10);
ExtractTemporaryFile('Audi_R8V12TDI_2008_03_1600x1200.jpg');
isxbb_AddImage(ExpandConstant('{tmp}')+'\Audi_R8V12TDI_2008_03_1600x1200.jpg',BackGround);
isxbb_Init(StrToInt(ExpandConstant('{hwnd}')));
MainForm.Visible:=True;
end;
[/more]
http://www.imgup.ru/image-12379004223fa80c6a6606d60e0d4abae2835b7148 , вместо нормального пути.
Сама установка прошла успешно, игра запускается и играется . Но вот когда попробывал удалить, то выскачило такое сообщение об ошибке: http://www.imgup.ru/image-12379004553fa80c6a6606d60e0d4abae2835b7148 . Помогите пожалуйста разобраться в чём тут дело. Ну и последний вопрос - я пока не разобрался ещё вот с чем: как понять где в реестре регестрируется игра и как включить в скрипт пути регистрации ??
P.S. сам скрипт
[more=вот]
[Setup]
SourceDir=.
OutputDir=Setup
AppName=Collapse
AppVerName=Collapse
AppVersion=Collapse
AppPublisher=Бука
AppCopyright=Бука
DefaultDirName={pf}\C:\Program Files\Collapse
DefaultGroupName=Collapse
AllowNoIcons=yes
OutputBaseFilename=setup
WindowVisible=no
WindowShowCaption=no
WindowResizable=no
Compression=lzma/normal
DiskSpanning=yes
DiskSliceSize=786432000
SlicesPerDisk=1
[Languages]
Name: "russian"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"
[Files]
Source: "isxbb.dll"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "E:\Фотографии (все что есть на компе)\Сборка тачек\Audi_R8V12TDI_2008_03_1600x1200.jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "E:\Фотографии (все что есть на компе)\Машенька.jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "isgsg.dll"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "G:\Collapse\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension
[Icons]
Name: "{group}\Коллапс"; Filename: "{app}\collapse.exe"; WorkingDir: "{app}";
Name: "{userdesktop}\Коллапс"; Filename: "{app}\collapse.exe"; WorkingDir: "{app}"; Tasks: desktopicon;
Name: "{group}\{cm:UninstallProgram,Collapse}"; Filename: "{uninstallexe}"
[Run]
Description: "{cm:LaunchProgram, Коллапс}"; Filename: "{app}\collapse.exe"; WorkingDir: "{app}"; Flags: nowait postinstall skipifsilent unchecked
[UninstallDelete]
Type: filesandordirs; Name: "{app}"
[_ISTool]
EnableISX=True
[Code]
const
BackGround=6;
function isxbb_AddImage(Image: PChar; Flags: Cardinal): integer; external 'isxbb_AddImage@files:isxbb.dll stdcall delayload';
function isxbb_Init(hWnd: Integer): integer; external 'isxbb_Init@files:isxbb.dll stdcall delayload';
procedure ShowSplashScreen(p1:HWND;p2:string;p3,p4,p5,p6,p7:integer;p8:boolean;p9:Cardinal;p10:integer); external 'ShowSplashScreen@files:isgsg.dll stdcall delayload';
function GetSystemMetrics(nIndex:Integer):integer; external 'GetSystemMetrics@user32.dll stdcall delayload';
procedure InitializeWizard;
begin
WizardForm.Position:=poScreenCenter;
MainForm.BorderStyle:=bsNone;
MainForm.Width:=GetSystemMetrics(0);
MainForm.Height:=GetSystemMetrics(1)+1;
MainForm.Top:=-1;
MainForm.Left:=0;
ExtractTemporaryFile('Машенька.jpg');
ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\Машенька.jpg',1000,3000,1000,0,255,False,$FFFFFF,10);
ExtractTemporaryFile('Audi_R8V12TDI_2008_03_1600x1200.jpg');
isxbb_AddImage(ExpandConstant('{tmp}')+'\Audi_R8V12TDI_2008_03_1600x1200.jpg',BackGround);
isxbb_Init(StrToInt(ExpandConstant('{hwnd}')));
MainForm.Visible:=True;
end;
[/more]
Utygan
Насчет реестра, качай программу RegShot делаешь 1 снимок до установки игры, 2 снимок после установки игры и сравниваешь.
P.S сам недавно Inno изучаю.
У меня встечный вопрос может кто нибудь сказать какая программа может распакавать и сжать PAK файлы?
Насчет реестра, качай программу RegShot делаешь 1 снимок до установки игры, 2 снимок после установки игры и сравниваешь.
P.S сам недавно Inno изучаю.
У меня встечный вопрос может кто нибудь сказать какая программа может распакавать и сжать PAK файлы?
Utygan
в качестве каталога установки напиши просто "Collapse". "c:\Program Files\" подставится автоматом
в качестве каталога установки напиши просто "Collapse". "c:\Program Files\" подставится автоматом
Спасибо, с реестром и с путём установки разобрался. Но проблема с деинсталлятором так и не решил. Извините, если уже подобную проблему где то обсуждали, но я не нашёл ответа. Помогите пожалуйста. Очень прошу ! Заранее спасибо.
В файл {sys}\drivers\etc\hosts надо добавить строку 127.0.0.1 www.example.cоm.
Как это прописать в скрипте?
Как это прописать в скрипте?
AngelDead
А кто такие PAK файлы?!? Мне первое что приходит в голову про PAK файлы, так что обычные ZIP файлы для игр сделанных на движке Quake 3+. Ну и соответственно для Quake1-2 там другой формат.
Я угадал? Или опять моё устройство по угадыванию мыслей барахлит?
А кто такие PAK файлы?!? Мне первое что приходит в голову про PAK файлы, так что обычные ZIP файлы для игр сделанных на движке Quake 3+. Ну и соответственно для Quake1-2 там другой формат.
Я угадал? Или опять моё устройство по угадыванию мыслей барахлит?
SotM
Я точно не знаю, но я просто в играх видел файлы в 1, 2 и т.д гб и у них расширение PAK, вот если их распаковать и пережать то размер станет меньше, короче говоря я хочу сделать репак, но не совсем знаю как это делается...
Я точно не знаю, но я просто в играх видел файлы в 1, 2 и т.д гб и у них расширение PAK, вот если их распаковать и пережать то размер станет меньше, короче говоря я хочу сделать репак, но не совсем знаю как это делается...
AngelDead
Встречал такую штуковину в RePAck'e Крйсеса там реализовано,зарание распаковано потом собрано и во время установки собирает обратно и переименоввывет в PAK если я не ошибся!
Но все возможно!
Встречал такую штуковину в RePAck'e Крйсеса там реализовано,зарание распаковано потом собрано и во время установки собирает обратно и переименоввывет в PAK если я не ошибся!
Но все возможно!
Помогите скрестит это
[more]
[Code]
//////////////
var
PageNameLabel, PageDescriptionLabel: TLabel;
DesktopIcon: TCheckBox;
const
NeedSize = 7298;
var
FreeMB, TotalMB: Cardinal;
NeedSpaceLabel, FreeSpaceLabel: TLabel;
Comp1, Comp2: TCheckBox;
ProgressBar : TNewProgressBar;
ExtractFile:TNewStaticText;
/////////
//////
function MakeDesktopIcon: Boolean;
begin
Result:=DesktopIcon.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 LogoOnClick(Sender: TObject);
var ReturnCode: Integer;
begin
ShellExec('open', 'http://free-torrents.org/forum/', '', '', SW_SHOWNORMAL, ewNoWait, ReturnCode)
end;
type
TProc=procedure(HandleW, msg, idEvent, TimeSys: LongWord);
var
TimerID: LongWord;
pfunc: LongWord;
Label1:tlabel;
function WrapTimerProc(callback:TProc; paramcount:integer):longword; external 'wrapcallback@files:innocallback.dll stdcall';
function SetTimer(hWnd: LongWord; nIDEvent, uElapse: LongWord; lpTimerFunc: LongWord): LongWord; external 'SetTimer@user32.dll stdcall';
function KillTimer(hWnd: LongWord; nIDEvent: LongWord): LongWord; external 'KillTimer@user32.dll stdcall';
procedure InitializeWizard();
var
WLabel1, WLabel2: TLabel;
FLabel1, FLabel2: TLabel;
begin
DesktopIcon := TCheckBox.Create(WizardForm);
DesktopIcon.Parent := WizardForm.SelectDirPage;
DesktopIcon.Caption := 'Äîáàâèòü ÿðëûê íà ðàáî÷èé ñòîë';
DesktopIcon.Left := ScaleX(0);
DesktopIcon.Top := ScaleY(WizardForm.DirEdit.Top + 35);
DesktopIcon.Width := ScaleX(400);
DesktopIcon.Height := ScaleY(15);
DesktopIcon.TabOrder := 0;
DesktopIcon.Checked := True;
////////////
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:= clwhite;
FLabel2.ShowAccelChar := False;
FLabel2.Caption := 'Ïðîãðàììà óñòàíîâëåíà íà Âàø êîìïüþòåð.' #13#13
'Íàæìèòå «Çàâåðøèòü», ÷òîáû âûéòè èç ïðîãðàììû óñòàíîâêè.';
FLabel2.Transparent := True;
FLabel2.Parent := WizardForm.FinishedPage
WizardForm.WelcomeLabel1.Hide;
WizardForm.WelcomeLabel2.Hide;
WizardForm.WizardBitmapImage.Width := WizardForm.Width;
WizardForm.WizardBitmapImage.Height := WizardForm.Height;
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 := 12;
WLabel1.Font.Style := [fsBold];
WLabel1.Font.Color:= clwhite;
WLabel1.ShowAccelChar := False;
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:= clwhite;
WLabel2.ShowAccelChar := False;
WLabel2.Caption := WizardForm.WelcomeLabel2.Caption;
WLabel2.Transparent := True;
WLabel2.Parent := WizardForm.WelcomePage;
WizardForm.WizardBitmapImage2.Width := WizardForm.Width;
WizardForm.WizardBitmapImage2.Height := WizardForm.Height;
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 := 12;
FLabel1.Font.Style := [fsBold];
FLabel1.Font.Color:= clwhite;
FLabel1.ShowAccelChar := False;
FLabel1.Caption := WizardForm.FinishedHeadingLabel.Caption;
FLabel1.Transparent := True;
FLabel1.Parent := WizardForm.FinishedPage;
begin
WizardForm.WelcomeLabel1.Hide;
WizardForm.WelcomeLabel2.Hide;
WizardForm.FinishedHeadingLabel.Hide;
WizardForm.FinishedLabel.Hide;
WizardForm.WizardBitmapImage.Width := WizardForm.Width;
WizardForm.WizardBitmapImage.Height := WizardForm.Height;
WLabel1 := TLabel.Create(WizardForm);
WLabel1.Left := ScaleX(176);
WLabel1.Top := ScaleY(16);
WLabel1.Width := ScaleX(301);
WLabel1.Height := ScaleY(100);
WLabel1.AutoSize := False;
WLabel1.WordWrap := True;
WLabel1.Font.Size := 12;
WLabel1.Font.Style := [fsBold];
WLabel1.Font.Color:= clwhite;
WLabel1.ShowAccelChar := False;
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:= clwhite;
WLabel2.ShowAccelChar := False;
WLabel2.Caption := WizardForm.WelcomeLabel2.Caption;
WLabel2.Transparent := True;
WLabel2.Parent := WizardForm.WelcomePage;
WizardForm.WizardBitmapImage2.Width := WizardForm.Width;
WizardForm.WizardBitmapImage2.Height := WizardForm.Height;
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 := 12;
FLabel1.Font.Style := [fsBold];
FLabel1.Font.Color:= clwhite;
FLabel1.ShowAccelChar := False;
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(77);
FLabel2.AutoSize := False;
FLabel2.WordWrap := True;
FLabel2.Font.Color:= clwhite;
FLabel2.ShowAccelChar := False;
FLabel2.Caption := 'Ïðîãðàììà óñòàíîâëåíà íà Âàø êîìïüþòåð.' #13#13
'Íàæìèòå «Çàâåðøèòü», ÷òîáû âûéòè èç ïðîãðàììû óñòàíîâêè.';
FLabel2.Transparent := True;
FLabel2.Parent := WizardForm.FinishedPage;
end;
//////////
begin
WizardForm.DiskSpaceLabel.Hide;
NeedSpaceLabel := TLabel.Create(WizardForm);
with NeedSpaceLabel do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(198);
Width := ScaleX(209);
Height := ScaleY(13);
Caption := 'Òðåáóåòñÿ ìåñòî íà äèñêå: 7,04 GB' ;
end;
////////////
begin
begin
WizardForm.WizardSmallBitmapImage.Left:=0;
WizardForm.WizardSmallBitmapImage.Width:=497;
WizardForm.WizardSmallBitmapImage.Height:=58;
WizardForm.PageDescriptionLabel.Width:=300;
WizardForm.PageNameLabel.Width:=300;
end ;
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 := clwhite;
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(475);
Height := ScaleY(30);
AutoSize := False;
WordWrap := True;
Font.Color := clwhite;
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;
////////////IntToStr(NeedSize) + ' GB'
FreeSpaceLabel := TLabel.Create(WizardForm);
with FreeSpaceLabel do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(216);
Width := ScaleX(209);
Height := ScaleY(13);
end;
WizardForm.DirEdit.OnChange := @GetFreeSpaceCaption;
WizardForm.DirEdit.Text := WizardForm.DirEdit.Text + #0;
end;
/////////////////
end;
procedure CurPageChanged(CurPageID: Integer);
begin
PageNameLabel.Caption := WizardForm.PageNameLabel.Caption;
PageDescriptionLabel.Caption := WizardForm.PageDescriptionLabel.Caption;
If CurPageID=wpFinished then KillTimer(0, TimerID);
if CurPageID = wpSelectDir
then begin
WizardForm.NextButton.Caption:='Óñòàíîâèòü';
if FreeMB < NeedSize
then WizardForm.NextButton.Enabled:=False;
end;
end;
[/more] с этим [more]var
ProgressBar : TNewProgressBar;
ExtractFile:TNewStaticText;
Button1:TButton;
procedure Extract7z (hWnd, hpb, hst: THandle; fpath, extractPath, pass:pchar); external 'Extract7z@files:is7z.dll stdcall';
procedure CancelExtract; external 'CancelExtract@files:is7z.dll stdcall';
procedure InitializeWizard();
begin
ProgressBar := TNewProgressBar.Create(WizardForm);
ExtractFile:=TNewStaticText.Create(WizardForm);
with WizardForm.ProgressGauge do
begin
ProgressBar.Left := Left;
ProgressBar.Top := Top + ScaleX(55);
ProgressBar.Width := Width;
ProgressBar.Height := Height;
ProgressBar.Parent := WizardForm.InstallingPage;
ProgressBar.max := 100;
ProgressBar.Position := 0;
ExtractFile.parent:=WizardForm.InstallingPage;
ExtractFile.autosize:=false;
ExtractFile.Width := Width;
ExtractFile.top:=Top + ScaleX(35);
ExtractFile.caption:='Ðàñïàêîâêà àðõèâà 7zip';
end;
end;
procedure Button1OnClick(Sender: TObject);
begin
CancelExtract;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
If CurStep=ssPostInstall then
begin
Button1:=TButton.create(WizardForm);
Button1.parent:=WizardForm;
Button1.width:=135;
Button1.caption:='Îòìåíèòü ðàñïàêîâêó';
Button1.left:=260;
Button1.top:=WizardForm.cancelbutton.top;
Button1.OnClick:=@Button1OnClick;
try
Extract7z (wizardform.handle, progressbar.handle, ExtractFile.handle, ExpandConstant('{src}') + '\1.7z', ExpandConstant('{app}'), '');
Button1.visible:=false;
except
MsgBox('Íåâåðíûé ïàðîëü!', mbInformation, MB_OK);
Button1.visible:=false;
end;
end;
end;
[/more]
[more]
[Code]
//////////////
var
PageNameLabel, PageDescriptionLabel: TLabel;
DesktopIcon: TCheckBox;
const
NeedSize = 7298;
var
FreeMB, TotalMB: Cardinal;
NeedSpaceLabel, FreeSpaceLabel: TLabel;
Comp1, Comp2: TCheckBox;
ProgressBar : TNewProgressBar;
ExtractFile:TNewStaticText;
/////////
//////
function MakeDesktopIcon: Boolean;
begin
Result:=DesktopIcon.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 LogoOnClick(Sender: TObject);
var ReturnCode: Integer;
begin
ShellExec('open', 'http://free-torrents.org/forum/', '', '', SW_SHOWNORMAL, ewNoWait, ReturnCode)
end;
type
TProc=procedure(HandleW, msg, idEvent, TimeSys: LongWord);
var
TimerID: LongWord;
pfunc: LongWord;
Label1:tlabel;
function WrapTimerProc(callback:TProc; paramcount:integer):longword; external 'wrapcallback@files:innocallback.dll stdcall';
function SetTimer(hWnd: LongWord; nIDEvent, uElapse: LongWord; lpTimerFunc: LongWord): LongWord; external 'SetTimer@user32.dll stdcall';
function KillTimer(hWnd: LongWord; nIDEvent: LongWord): LongWord; external 'KillTimer@user32.dll stdcall';
procedure InitializeWizard();
var
WLabel1, WLabel2: TLabel;
FLabel1, FLabel2: TLabel;
begin
DesktopIcon := TCheckBox.Create(WizardForm);
DesktopIcon.Parent := WizardForm.SelectDirPage;
DesktopIcon.Caption := 'Äîáàâèòü ÿðëûê íà ðàáî÷èé ñòîë';
DesktopIcon.Left := ScaleX(0);
DesktopIcon.Top := ScaleY(WizardForm.DirEdit.Top + 35);
DesktopIcon.Width := ScaleX(400);
DesktopIcon.Height := ScaleY(15);
DesktopIcon.TabOrder := 0;
DesktopIcon.Checked := True;
////////////
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:= clwhite;
FLabel2.ShowAccelChar := False;
FLabel2.Caption := 'Ïðîãðàììà óñòàíîâëåíà íà Âàø êîìïüþòåð.' #13#13
'Íàæìèòå «Çàâåðøèòü», ÷òîáû âûéòè èç ïðîãðàììû óñòàíîâêè.';
FLabel2.Transparent := True;
FLabel2.Parent := WizardForm.FinishedPage
WizardForm.WelcomeLabel1.Hide;
WizardForm.WelcomeLabel2.Hide;
WizardForm.WizardBitmapImage.Width := WizardForm.Width;
WizardForm.WizardBitmapImage.Height := WizardForm.Height;
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 := 12;
WLabel1.Font.Style := [fsBold];
WLabel1.Font.Color:= clwhite;
WLabel1.ShowAccelChar := False;
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:= clwhite;
WLabel2.ShowAccelChar := False;
WLabel2.Caption := WizardForm.WelcomeLabel2.Caption;
WLabel2.Transparent := True;
WLabel2.Parent := WizardForm.WelcomePage;
WizardForm.WizardBitmapImage2.Width := WizardForm.Width;
WizardForm.WizardBitmapImage2.Height := WizardForm.Height;
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 := 12;
FLabel1.Font.Style := [fsBold];
FLabel1.Font.Color:= clwhite;
FLabel1.ShowAccelChar := False;
FLabel1.Caption := WizardForm.FinishedHeadingLabel.Caption;
FLabel1.Transparent := True;
FLabel1.Parent := WizardForm.FinishedPage;
begin
WizardForm.WelcomeLabel1.Hide;
WizardForm.WelcomeLabel2.Hide;
WizardForm.FinishedHeadingLabel.Hide;
WizardForm.FinishedLabel.Hide;
WizardForm.WizardBitmapImage.Width := WizardForm.Width;
WizardForm.WizardBitmapImage.Height := WizardForm.Height;
WLabel1 := TLabel.Create(WizardForm);
WLabel1.Left := ScaleX(176);
WLabel1.Top := ScaleY(16);
WLabel1.Width := ScaleX(301);
WLabel1.Height := ScaleY(100);
WLabel1.AutoSize := False;
WLabel1.WordWrap := True;
WLabel1.Font.Size := 12;
WLabel1.Font.Style := [fsBold];
WLabel1.Font.Color:= clwhite;
WLabel1.ShowAccelChar := False;
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:= clwhite;
WLabel2.ShowAccelChar := False;
WLabel2.Caption := WizardForm.WelcomeLabel2.Caption;
WLabel2.Transparent := True;
WLabel2.Parent := WizardForm.WelcomePage;
WizardForm.WizardBitmapImage2.Width := WizardForm.Width;
WizardForm.WizardBitmapImage2.Height := WizardForm.Height;
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 := 12;
FLabel1.Font.Style := [fsBold];
FLabel1.Font.Color:= clwhite;
FLabel1.ShowAccelChar := False;
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(77);
FLabel2.AutoSize := False;
FLabel2.WordWrap := True;
FLabel2.Font.Color:= clwhite;
FLabel2.ShowAccelChar := False;
FLabel2.Caption := 'Ïðîãðàììà óñòàíîâëåíà íà Âàø êîìïüþòåð.' #13#13
'Íàæìèòå «Çàâåðøèòü», ÷òîáû âûéòè èç ïðîãðàììû óñòàíîâêè.';
FLabel2.Transparent := True;
FLabel2.Parent := WizardForm.FinishedPage;
end;
//////////
begin
WizardForm.DiskSpaceLabel.Hide;
NeedSpaceLabel := TLabel.Create(WizardForm);
with NeedSpaceLabel do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(198);
Width := ScaleX(209);
Height := ScaleY(13);
Caption := 'Òðåáóåòñÿ ìåñòî íà äèñêå: 7,04 GB' ;
end;
////////////
begin
begin
WizardForm.WizardSmallBitmapImage.Left:=0;
WizardForm.WizardSmallBitmapImage.Width:=497;
WizardForm.WizardSmallBitmapImage.Height:=58;
WizardForm.PageDescriptionLabel.Width:=300;
WizardForm.PageNameLabel.Width:=300;
end ;
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 := clwhite;
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(475);
Height := ScaleY(30);
AutoSize := False;
WordWrap := True;
Font.Color := clwhite;
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;
////////////IntToStr(NeedSize) + ' GB'
FreeSpaceLabel := TLabel.Create(WizardForm);
with FreeSpaceLabel do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(216);
Width := ScaleX(209);
Height := ScaleY(13);
end;
WizardForm.DirEdit.OnChange := @GetFreeSpaceCaption;
WizardForm.DirEdit.Text := WizardForm.DirEdit.Text + #0;
end;
/////////////////
end;
procedure CurPageChanged(CurPageID: Integer);
begin
PageNameLabel.Caption := WizardForm.PageNameLabel.Caption;
PageDescriptionLabel.Caption := WizardForm.PageDescriptionLabel.Caption;
If CurPageID=wpFinished then KillTimer(0, TimerID);
if CurPageID = wpSelectDir
then begin
WizardForm.NextButton.Caption:='Óñòàíîâèòü';
if FreeMB < NeedSize
then WizardForm.NextButton.Enabled:=False;
end;
end;
[/more] с этим [more]var
ProgressBar : TNewProgressBar;
ExtractFile:TNewStaticText;
Button1:TButton;
procedure Extract7z (hWnd, hpb, hst: THandle; fpath, extractPath, pass:pchar); external 'Extract7z@files:is7z.dll stdcall';
procedure CancelExtract; external 'CancelExtract@files:is7z.dll stdcall';
procedure InitializeWizard();
begin
ProgressBar := TNewProgressBar.Create(WizardForm);
ExtractFile:=TNewStaticText.Create(WizardForm);
with WizardForm.ProgressGauge do
begin
ProgressBar.Left := Left;
ProgressBar.Top := Top + ScaleX(55);
ProgressBar.Width := Width;
ProgressBar.Height := Height;
ProgressBar.Parent := WizardForm.InstallingPage;
ProgressBar.max := 100;
ProgressBar.Position := 0;
ExtractFile.parent:=WizardForm.InstallingPage;
ExtractFile.autosize:=false;
ExtractFile.Width := Width;
ExtractFile.top:=Top + ScaleX(35);
ExtractFile.caption:='Ðàñïàêîâêà àðõèâà 7zip';
end;
end;
procedure Button1OnClick(Sender: TObject);
begin
CancelExtract;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
If CurStep=ssPostInstall then
begin
Button1:=TButton.create(WizardForm);
Button1.parent:=WizardForm;
Button1.width:=135;
Button1.caption:='Îòìåíèòü ðàñïàêîâêó';
Button1.left:=260;
Button1.top:=WizardForm.cancelbutton.top;
Button1.OnClick:=@Button1OnClick;
try
Extract7z (wizardform.handle, progressbar.handle, ExtractFile.handle, ExpandConstant('{src}') + '\1.7z', ExpandConstant('{app}'), '');
Button1.visible:=false;
except
MsgBox('Íåâåðíûé ïàðîëü!', mbInformation, MB_OK);
Button1.visible:=false;
end;
end;
end;
[/more]
Помогите пожалуйста, как сделать чтобы фон выбирался в зависимости от соотношений сторон экрана 4:3 16:10 и тд.. И если можно еще пример для слайд шоу...
Добавлено:
Помогите пожалуйста, как сделать так чтоб инсталятор выбирал фон в зависимости от соотношений сторон экрана пользователя? И если можно еще пример для слайд шоу
Добавлено:
Помогите пожалуйста, как сделать так чтоб инсталятор выбирал фон в зависимости от соотношений сторон экрана пользователя? И если можно еще пример для слайд шоу
ChVL
Цитата:
Если дописать, то [more=так]
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
SaveStringToFile(ExpandConstant('{sys}\drivers\etc\hosts'), '127.0.0.1 www.example.com.', True);
end;
[/more], если заменить строку, то другая история.
Цитата:
Как это прописать в скрипте?
Если дописать, то [more=так]
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
SaveStringToFile(ExpandConstant('{sys}\drivers\etc\hosts'), '127.0.0.1 www.example.com.', True);
end;
[/more], если заменить строку, то другая история.
Ребят, ответь кто нить пожалуйста на мой вопрос. Уже писал выше всё более подробно, но повторюсь: создал репак игры, проинталлировал, все хорошо, решил удалить и выскакивает вот такое сообщении: " Файл протокола для деинсталляции G:\Collapse\unins000.dat не распознан данной версией программы деинстоллятора. Деинсталляция невозможна. " Что я не так сделал ? или надо что то специально в скрипте прописывать перед компиляцией ? Помоги пожалуйста.
Utygan
Скорее всего когда ты делал репак игры, ты не удалил из папки с игрой ее родной деинсталятор. И поэтому у тебя такая шняга получается У меня по крайней мере так было
Скорее всего когда ты делал репак игры, ты не удалил из папки с игрой ее родной деинсталятор. И поэтому у тебя такая шняга получается У меня по крайней мере так было
kombat 77
У меня получилось почти то же:
Код: procedure CurStepChanged(CurStep: TSetupStep);
begin
If CurStep=ssPostInstall
then
begin
SaveStringToFile(ExpandConstant('{sys}')+'\drivers\etc\hosts', ' 127.0.0.1 www.example.com', True);
end;
end;
У меня получилось почти то же:
Код: procedure CurStepChanged(CurStep: TSetupStep);
begin
If CurStep=ssPostInstall
then
begin
SaveStringToFile(ExpandConstant('{sys}')+'\drivers\etc\hosts', ' 127.0.0.1 www.example.com', True);
end;
end;
ChVL так:
procedure CurStepChanged(CurStep: TSetupStep);
begin
If CurStep=ssPostInstall
then
begin
SaveStringToFile(ExpandConstant('{sys}')+'\drivers\etc\hosts', #13#10+' 127.0.0.1 www.example.com', True);
end;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
If CurStep=ssPostInstall
then
begin
SaveStringToFile(ExpandConstant('{sys}')+'\drivers\etc\hosts', #13#10+' 127.0.0.1 www.example.com', True);
end;
end;
ChVL
Цитата:
SaveStringToFile(ExpandConstant('{sys}\drivers\etc\hosts'), #13#10 '127.0.0.1 www.example.com.', True);
Цитата:
чтобы запись начиналась с новой. Как это сделать?
SaveStringToFile(ExpandConstant('{sys}\drivers\etc\hosts'), #13#10 '127.0.0.1 www.example.com.', True);
DeKaNszn, kombat 77:
Спасибо!
У меня вышло так: #13 + '127.0.0.1
Спасибо!
У меня вышло так: #13 + '127.0.0.1
парни как зделать так штобы после установке первой программы запускалсья второй инсталятор автамотически
Цитата:
Помогите скрестит это
Подробнее... с этим Подробнее...
Помогите мне
Qarma
[more]
[Code]
//////////////
var
PageNameLabel, PageDescriptionLabel: TLabel;
DesktopIcon: TCheckBox;
ProgressBar : TNewProgressBar;
ExtractFile:TNewStaticText;
Button1:TButton;
procedure Extract7z (hWnd, hpb, hst: THandle; fpath, extractPath, pass:pchar); external 'Extract7z@files:is7z.dll stdcall';
procedure CancelExtract; external 'CancelExtract@files:is7z.dll stdcall';
FreeMB, TotalMB: Cardinal;
NeedSpaceLabel, FreeSpaceLabel: TLabel;
Comp1, Comp2: TCheckBox;
const
NeedSize = 7298;
/////////
//////
function MakeDesktopIcon: Boolean;
begin
Result:=DesktopIcon.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 LogoOnClick(Sender: TObject);
var ReturnCode: Integer;
begin
ShellExec('open', 'http://free-torrents.org/forum/', '', '', SW_SHOWNORMAL, ewNoWait, ReturnCode)
end;
type
TProc=procedure(HandleW, msg, idEvent, TimeSys: LongWord);
var
TimerID: LongWord;
pfunc: LongWord;
Label1:tlabel;
function WrapTimerProc(callback:TProc; paramcount:integer):longword; external 'wrapcallback@files:innocallback.dll stdcall';
function SetTimer(hWnd: LongWord; nIDEvent, uElapse: LongWord; lpTimerFunc: LongWord): LongWord; external 'SetTimer@user32.dll stdcall';
function KillTimer(hWnd: LongWord; nIDEvent: LongWord): LongWord; external 'KillTimer@user32.dll stdcall';
procedure InitializeWizard();
var
WLabel1, WLabel2: TLabel;
FLabel1, FLabel2: TLabel;
begin
DesktopIcon := TCheckBox.Create(WizardForm);
DesktopIcon.Parent := WizardForm.SelectDirPage;
DesktopIcon.Caption := 'Äîáàâèòü ÿðëûê íà ðàáî÷èé ñòîë';
DesktopIcon.Left := ScaleX(0);
DesktopIcon.Top := ScaleY(WizardForm.DirEdit.Top + 35);
DesktopIcon.Width := ScaleX(400);
DesktopIcon.Height := ScaleY(15);
DesktopIcon.TabOrder := 0;
DesktopIcon.Checked := True;
////////////
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:= clwhite;
FLabel2.ShowAccelChar := False;
FLabel2.Caption := 'Ïðîãðàììà óñòàíîâëåíà íà Âàø êîìïüþòåð.' #13#13
'Íàæìèòå «Çàâåðøèòü», ÷òîáû âûéòè èç ïðîãðàììû óñòàíîâêè.';
FLabel2.Transparent := True;
FLabel2.Parent := WizardForm.FinishedPage
WizardForm.WelcomeLabel1.Hide;
WizardForm.WelcomeLabel2.Hide;
WizardForm.WizardBitmapImage.Width := WizardForm.Width;
WizardForm.WizardBitmapImage.Height := WizardForm.Height;
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 := 12;
WLabel1.Font.Style := [fsBold];
WLabel1.Font.Color:= clwhite;
WLabel1.ShowAccelChar := False;
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:= clwhite;
WLabel2.ShowAccelChar := False;
WLabel2.Caption := WizardForm.WelcomeLabel2.Caption;
WLabel2.Transparent := True;
WLabel2.Parent := WizardForm.WelcomePage;
WizardForm.WizardBitmapImage2.Width := WizardForm.Width;
WizardForm.WizardBitmapImage2.Height := WizardForm.Height;
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 := 12;
FLabel1.Font.Style := [fsBold];
FLabel1.Font.Color:= clwhite;
FLabel1.ShowAccelChar := False;
FLabel1.Caption := WizardForm.FinishedHeadingLabel.Caption;
FLabel1.Transparent := True;
FLabel1.Parent := WizardForm.FinishedPage;
WizardForm.FinishedHeadingLabel.Hide;
WizardForm.FinishedLabel.Hide;
WizardForm.WizardBitmapImage.Width := WizardForm.Width;
WizardForm.WizardBitmapImage.Height := WizardForm.Height;
FLabel2 :=TLabel.Create(WizardForm);
FLabel2.Top := ScaleY(76);
FLabel2.Left := ScaleX(176);
FLabel2.Width := ScaleX(301);
FLabel2.Height := ScaleY(77);
FLabel2.AutoSize := False;
FLabel2.WordWrap := True;
FLabel2.Font.Color:= clwhite;
FLabel2.ShowAccelChar := False;
FLabel2.Caption := 'Ïðîãðàììà óñòàíîâëåíà íà Âàø êîìïüþòåð.' #13#13
'Íàæìèòå «Çàâåðøèòü», ÷òîáû âûéòè èç ïðîãðàììû óñòàíîâêè.';
FLabel2.Transparent := True;
FLabel2.Parent := WizardForm.FinishedPage;
WizardForm.DiskSpaceLabel.Hide;
NeedSpaceLabel := TLabel.Create(WizardForm);
with NeedSpaceLabel do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(198);
Width := ScaleX(209);
Height := ScaleY(13);
Caption := 'Òðåáóåòñÿ ìåñòî íà äèñêå: 7,04 GB' ;
end;
////////////
WizardForm.WizardSmallBitmapImage.Left:=0;
WizardForm.WizardSmallBitmapImage.Width:=497;
WizardForm.WizardSmallBitmapImage.Height:=58;
WizardForm.PageDescriptionLabel.Width:=300;
WizardForm.PageNameLabel.Width:=300;
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 := clwhite;
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(475);
Height := ScaleY(30);
AutoSize := False;
WordWrap := True;
Font.Color := clwhite;
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;
////////////IntToStr(NeedSize) + ' GB'
FreeSpaceLabel := TLabel.Create(WizardForm);
with FreeSpaceLabel do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(216);
Width := ScaleX(209);
Height := ScaleY(13);
end;
WizardForm.DirEdit.OnChange := @GetFreeSpaceCaption;
WizardForm.DirEdit.Text := WizardForm.DirEdit.Text + #0;
/////////////////
end;
procedure Button1OnClick(Sender: TObject);
begin
CancelExtract;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
PageNameLabel.Caption := WizardForm.PageNameLabel.Caption;
PageDescriptionLabel.Caption := WizardForm.PageDescriptionLabel.Caption;
If CurPageID=wpFinished then KillTimer(0, TimerID);
if CurPageID = wpSelectDir then
begin
WizardForm.NextButton.Caption:='Óñòàíîâèòü';
if FreeMB < NeedSize then WizardForm.NextButton.Enabled:=False;
end;
If CurStep=ssPostInstall then
begin
Button1:=TButton.create(WizardForm);
Button1.parent:=WizardForm;
Button1.width:=135;
Button1.caption:='Îòìåíèòü ðàñïàêîâêó';
Button1.left:=260;
Button1.top:=WizardForm.cancelbutton.top;
Button1.OnClick:=@Button1OnClick;
try
Extract7z (wizardform.handle, progressbar.handle, ExtractFile.handle, ExpandConstant('{src}') + '\1.7z', ExpandConstant('{app}'), '');
Button1.visible:=false;
except
MsgBox('Íåâåðíûé ïàðîëü!', mbInformation, MB_OK);
Button1.visible:=false;
end;
end;
end;
[/more]
[more]
[Code]
//////////////
var
PageNameLabel, PageDescriptionLabel: TLabel;
DesktopIcon: TCheckBox;
ProgressBar : TNewProgressBar;
ExtractFile:TNewStaticText;
Button1:TButton;
procedure Extract7z (hWnd, hpb, hst: THandle; fpath, extractPath, pass:pchar); external 'Extract7z@files:is7z.dll stdcall';
procedure CancelExtract; external 'CancelExtract@files:is7z.dll stdcall';
FreeMB, TotalMB: Cardinal;
NeedSpaceLabel, FreeSpaceLabel: TLabel;
Comp1, Comp2: TCheckBox;
const
NeedSize = 7298;
/////////
//////
function MakeDesktopIcon: Boolean;
begin
Result:=DesktopIcon.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 LogoOnClick(Sender: TObject);
var ReturnCode: Integer;
begin
ShellExec('open', 'http://free-torrents.org/forum/', '', '', SW_SHOWNORMAL, ewNoWait, ReturnCode)
end;
type
TProc=procedure(HandleW, msg, idEvent, TimeSys: LongWord);
var
TimerID: LongWord;
pfunc: LongWord;
Label1:tlabel;
function WrapTimerProc(callback:TProc; paramcount:integer):longword; external 'wrapcallback@files:innocallback.dll stdcall';
function SetTimer(hWnd: LongWord; nIDEvent, uElapse: LongWord; lpTimerFunc: LongWord): LongWord; external 'SetTimer@user32.dll stdcall';
function KillTimer(hWnd: LongWord; nIDEvent: LongWord): LongWord; external 'KillTimer@user32.dll stdcall';
procedure InitializeWizard();
var
WLabel1, WLabel2: TLabel;
FLabel1, FLabel2: TLabel;
begin
DesktopIcon := TCheckBox.Create(WizardForm);
DesktopIcon.Parent := WizardForm.SelectDirPage;
DesktopIcon.Caption := 'Äîáàâèòü ÿðëûê íà ðàáî÷èé ñòîë';
DesktopIcon.Left := ScaleX(0);
DesktopIcon.Top := ScaleY(WizardForm.DirEdit.Top + 35);
DesktopIcon.Width := ScaleX(400);
DesktopIcon.Height := ScaleY(15);
DesktopIcon.TabOrder := 0;
DesktopIcon.Checked := True;
////////////
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:= clwhite;
FLabel2.ShowAccelChar := False;
FLabel2.Caption := 'Ïðîãðàììà óñòàíîâëåíà íà Âàø êîìïüþòåð.' #13#13
'Íàæìèòå «Çàâåðøèòü», ÷òîáû âûéòè èç ïðîãðàììû óñòàíîâêè.';
FLabel2.Transparent := True;
FLabel2.Parent := WizardForm.FinishedPage
WizardForm.WelcomeLabel1.Hide;
WizardForm.WelcomeLabel2.Hide;
WizardForm.WizardBitmapImage.Width := WizardForm.Width;
WizardForm.WizardBitmapImage.Height := WizardForm.Height;
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 := 12;
WLabel1.Font.Style := [fsBold];
WLabel1.Font.Color:= clwhite;
WLabel1.ShowAccelChar := False;
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:= clwhite;
WLabel2.ShowAccelChar := False;
WLabel2.Caption := WizardForm.WelcomeLabel2.Caption;
WLabel2.Transparent := True;
WLabel2.Parent := WizardForm.WelcomePage;
WizardForm.WizardBitmapImage2.Width := WizardForm.Width;
WizardForm.WizardBitmapImage2.Height := WizardForm.Height;
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 := 12;
FLabel1.Font.Style := [fsBold];
FLabel1.Font.Color:= clwhite;
FLabel1.ShowAccelChar := False;
FLabel1.Caption := WizardForm.FinishedHeadingLabel.Caption;
FLabel1.Transparent := True;
FLabel1.Parent := WizardForm.FinishedPage;
WizardForm.FinishedHeadingLabel.Hide;
WizardForm.FinishedLabel.Hide;
WizardForm.WizardBitmapImage.Width := WizardForm.Width;
WizardForm.WizardBitmapImage.Height := WizardForm.Height;
FLabel2 :=TLabel.Create(WizardForm);
FLabel2.Top := ScaleY(76);
FLabel2.Left := ScaleX(176);
FLabel2.Width := ScaleX(301);
FLabel2.Height := ScaleY(77);
FLabel2.AutoSize := False;
FLabel2.WordWrap := True;
FLabel2.Font.Color:= clwhite;
FLabel2.ShowAccelChar := False;
FLabel2.Caption := 'Ïðîãðàììà óñòàíîâëåíà íà Âàø êîìïüþòåð.' #13#13
'Íàæìèòå «Çàâåðøèòü», ÷òîáû âûéòè èç ïðîãðàììû óñòàíîâêè.';
FLabel2.Transparent := True;
FLabel2.Parent := WizardForm.FinishedPage;
WizardForm.DiskSpaceLabel.Hide;
NeedSpaceLabel := TLabel.Create(WizardForm);
with NeedSpaceLabel do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(198);
Width := ScaleX(209);
Height := ScaleY(13);
Caption := 'Òðåáóåòñÿ ìåñòî íà äèñêå: 7,04 GB' ;
end;
////////////
WizardForm.WizardSmallBitmapImage.Left:=0;
WizardForm.WizardSmallBitmapImage.Width:=497;
WizardForm.WizardSmallBitmapImage.Height:=58;
WizardForm.PageDescriptionLabel.Width:=300;
WizardForm.PageNameLabel.Width:=300;
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 := clwhite;
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(475);
Height := ScaleY(30);
AutoSize := False;
WordWrap := True;
Font.Color := clwhite;
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;
////////////IntToStr(NeedSize) + ' GB'
FreeSpaceLabel := TLabel.Create(WizardForm);
with FreeSpaceLabel do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(216);
Width := ScaleX(209);
Height := ScaleY(13);
end;
WizardForm.DirEdit.OnChange := @GetFreeSpaceCaption;
WizardForm.DirEdit.Text := WizardForm.DirEdit.Text + #0;
/////////////////
end;
procedure Button1OnClick(Sender: TObject);
begin
CancelExtract;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
PageNameLabel.Caption := WizardForm.PageNameLabel.Caption;
PageDescriptionLabel.Caption := WizardForm.PageDescriptionLabel.Caption;
If CurPageID=wpFinished then KillTimer(0, TimerID);
if CurPageID = wpSelectDir then
begin
WizardForm.NextButton.Caption:='Óñòàíîâèòü';
if FreeMB < NeedSize then WizardForm.NextButton.Enabled:=False;
end;
If CurStep=ssPostInstall then
begin
Button1:=TButton.create(WizardForm);
Button1.parent:=WizardForm;
Button1.width:=135;
Button1.caption:='Îòìåíèòü ðàñïàêîâêó';
Button1.left:=260;
Button1.top:=WizardForm.cancelbutton.top;
Button1.OnClick:=@Button1OnClick;
try
Extract7z (wizardform.handle, progressbar.handle, ExtractFile.handle, ExpandConstant('{src}') + '\1.7z', ExpandConstant('{app}'), '');
Button1.visible:=false;
except
MsgBox('Íåâåðíûé ïàðîëü!', mbInformation, MB_OK);
Button1.visible:=false;
end;
end;
end;
[/more]
Yoldosh
Достаточно просто, если я тебя правильно понял
в секцию [Files] добавляешь свой инсталятор, указав место установки желательно папку {tmp} и выставляешь флаг "deleteafterinstall" (просто по этическим соображениям все что лишнее, пусть сидит в Temp). В секции [Run] просто указываешь, что надо после установки основного инсталятора вызвать еще один, тот который находится в {tmp}. Вот и все.
Пример:
[Files]
Source: setup.exe; DestDir: {tmp}; Flags: deleteafterinstall ignoreversion
[Run]
Filename: {tmp}\setup.exe
Достаточно просто, если я тебя правильно понял
в секцию [Files] добавляешь свой инсталятор, указав место установки желательно папку {tmp} и выставляешь флаг "deleteafterinstall" (просто по этическим соображениям все что лишнее, пусть сидит в Temp). В секции [Run] просто указываешь, что надо после установки основного инсталятора вызвать еще один, тот который находится в {tmp}. Вот и все.
Пример:
[Files]
Source: setup.exe; DestDir: {tmp}; Flags: deleteafterinstall ignoreversion
[Run]
Filename: {tmp}\setup.exe
Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
Предыдущая тема: в очередной раз босудим антивиры?
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.