Ru-Board.club
← Вернуться в раздел «Программы»

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

Автор: serg566
Дата сообщения: 22.03.2009 21:23
Как cделать кнопку "назад" некликабельной или убрать её вообще... помогите
Автор: kombat 77
Дата сообщения: 22.03.2009 23:41
serg566

Цитата:
убрать её вообще...

[more=так]

procedure CurPageChanged(CurPageID: Integer);
begin
WizardForm.BackButton.Visible := False;
end;

[/more]
Автор: serg566
Дата сообщения: 23.03.2009 01:17
kombat 77
Спасибо
Автор: nOobCrafter
Дата сообщения: 23.03.2009 11:08
DeKaNszn
хе...посмотрел видео и сильно озадачился, потом догнал в чем косяк..ты выбирал тип установки - обновить приложение, а я выбирал полную установку и получал ошибку, когда выбрал обновить приложение то все было ок. А вот с полной установкой косяк.. %)..
Автор: 4dmax
Дата сообщения: 23.03.2009 13:35
WinstAn70
Большое спасибо за функцию.
Автор: htuos
Дата сообщения: 23.03.2009 15:07
AngelDead
GameScript Generator не дописывает ничего для деинсталлятора (т.е. используется стандартный деинсталлятор созданный инно сетапом), поэтому ничего глючить не должно
Автор: DeKaNszn
Дата сообщения: 23.03.2009 17:33
nOobCrafter
Вот и нашлась причина
Автор: AngelDead
Дата сообщения: 24.03.2009 14:19
htuos
Спасибо, я уже разобрался все ок, просто его за основу брал чтобы дальше скрипт делать.


Добавлено:
htuos
Спасибо только я уже разобрался, GameScript Generator брал за основу чтобы дальше скрипт делать.
Автор: Utygan
Дата сообщения: 24.03.2009 15:53
Мужики, помогите разобраться. Только недавно начал изучать 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]
Автор: AngelDead
Дата сообщения: 24.03.2009 16:00
Utygan
Насчет реестра, качай программу RegShot делаешь 1 снимок до установки игры, 2 снимок после установки игры и сравниваешь.
P.S сам недавно Inno изучаю.
У меня встечный вопрос может кто нибудь сказать какая программа может распакавать и сжать PAK файлы?
Автор: htuos
Дата сообщения: 24.03.2009 19:24
Utygan
в качестве каталога установки напиши просто "Collapse". "c:\Program Files\" подставится автоматом
Автор: Utygan
Дата сообщения: 25.03.2009 02:04
Спасибо, с реестром и с путём установки разобрался. Но проблема с деинсталлятором так и не решил. Извините, если уже подобную проблему где то обсуждали, но я не нашёл ответа. Помогите пожалуйста. Очень прошу ! Заранее спасибо.
Автор: ChVL
Дата сообщения: 25.03.2009 10:56
В файл {sys}\drivers\etc\hosts надо добавить строку 127.0.0.1 www.example.cоm.
Как это прописать в скрипте?
Автор: chelobey
Дата сообщения: 25.03.2009 16:27
Наверняка видели инсталятор Audiosurf от Буки. Вот, что не понятно и крайне интересно:
1. используется своя тема оформления окон, отличная от темы Windows
2. сделано собственное оформление индикатора установки
вопрос: как это сделано?


разобрался. спасибо
Автор: SotM
Дата сообщения: 25.03.2009 17:34
AngelDead
А кто такие PAK файлы?!? Мне первое что приходит в голову про PAK файлы, так что обычные ZIP файлы для игр сделанных на движке Quake 3+. Ну и соответственно для Quake1-2 там другой формат.

Я угадал? Или опять моё устройство по угадыванию мыслей барахлит?
Автор: AngelDead
Дата сообщения: 25.03.2009 18:07
SotM
Я точно не знаю, но я просто в играх видел файлы в 1, 2 и т.д гб и у них расширение PAK, вот если их распаковать и пережать то размер станет меньше, короче говоря я хочу сделать репак, но не совсем знаю как это делается...
Автор: WinstAn70
Дата сообщения: 25.03.2009 18:48
AngelDead
Встречал такую штуковину в RePAck'e Крйсеса там реализовано,зарание распаковано потом собрано и во время установки собирает обратно и переименоввывет в PAK если я не ошибся!
Но все возможно!
Автор: Qarma
Дата сообщения: 25.03.2009 18:52
Помогите скрестит это
[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 := '&#196;&#238;&#225;&#224;&#226;&#232;&#242;&#252; &#255;&#240;&#235;&#251;&#234; &#237;&#224; &#240;&#224;&#225;&#238;&#247;&#232;&#233; &#241;&#242;&#238;&#235;';
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 := '&#207;&#240;&#238;&#227;&#240;&#224;&#236;&#236;&#224; &#243;&#241;&#242;&#224;&#237;&#238;&#226;&#235;&#229;&#237;&#224; &#237;&#224; &#194;&#224;&#248; &#234;&#238;&#236;&#239;&#252;&#254;&#242;&#229;&#240;.' #13#13
'&#205;&#224;&#230;&#236;&#232;&#242;&#229; «&#199;&#224;&#226;&#229;&#240;&#248;&#232;&#242;&#252;», &#247;&#242;&#238;&#225;&#251; &#226;&#251;&#233;&#242;&#232; &#232;&#231; &#239;&#240;&#238;&#227;&#240;&#224;&#236;&#236;&#251; &#243;&#241;&#242;&#224;&#237;&#238;&#226;&#234;&#232;.';
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 := '&#207;&#240;&#238;&#227;&#240;&#224;&#236;&#236;&#224; &#243;&#241;&#242;&#224;&#237;&#238;&#226;&#235;&#229;&#237;&#224; &#237;&#224; &#194;&#224;&#248; &#234;&#238;&#236;&#239;&#252;&#254;&#242;&#229;&#240;.' #13#13
'&#205;&#224;&#230;&#236;&#232;&#242;&#229; «&#199;&#224;&#226;&#229;&#240;&#248;&#232;&#242;&#252;», &#247;&#242;&#238;&#225;&#251; &#226;&#251;&#233;&#242;&#232; &#232;&#231; &#239;&#240;&#238;&#227;&#240;&#224;&#236;&#236;&#251; &#243;&#241;&#242;&#224;&#237;&#238;&#226;&#234;&#232;.';
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 := '&#210;&#240;&#229;&#225;&#243;&#229;&#242;&#241;&#255; &#236;&#229;&#241;&#242;&#238; &#237;&#224; &#228;&#232;&#241;&#234;&#229;: 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:='&#211;&#241;&#242;&#224;&#237;&#238;&#226;&#232;&#242;&#252;';
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:='&#208;&#224;&#241;&#239;&#224;&#234;&#238;&#226;&#234;&#224; &#224;&#240;&#245;&#232;&#226;&#224; 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:='&#206;&#242;&#236;&#229;&#237;&#232;&#242;&#252; &#240;&#224;&#241;&#239;&#224;&#234;&#238;&#226;&#234;&#243;';
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('&#205;&#229;&#226;&#229;&#240;&#237;&#251;&#233; &#239;&#224;&#240;&#238;&#235;&#252;!', mbInformation, MB_OK);
Button1.visible:=false;
end;
end;
end;
[/more]
Автор: 4esnok
Дата сообщения: 25.03.2009 19:25
Помогите пожалуйста, как сделать чтобы фон выбирался в зависимости от соотношений сторон экрана 4:3 16:10 и тд.. И если можно еще пример для слайд шоу...

Добавлено:
Помогите пожалуйста, как сделать так чтоб инсталятор выбирал фон в зависимости от соотношений сторон экрана пользователя? И если можно еще пример для слайд шоу
Автор: kombat 77
Дата сообщения: 25.03.2009 19:44
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], если заменить строку, то другая история.
Автор: Utygan
Дата сообщения: 25.03.2009 20:40
Ребят, ответь кто нить пожалуйста на мой вопрос. Уже писал выше всё более подробно, но повторюсь: создал репак игры, проинталлировал, все хорошо, решил удалить и выскакивает вот такое сообщении: " Файл протокола для деинсталляции G:\Collapse\unins000.dat не распознан данной версией программы деинстоллятора. Деинсталляция невозможна. " Что я не так сделал ? или надо что то специально в скрипте прописывать перед компиляцией ? Помоги пожалуйста.
Автор: msatmb
Дата сообщения: 25.03.2009 20:51
Utygan
Скорее всего когда ты делал репак игры, ты не удалил из папки с игрой ее родной деинсталятор. И поэтому у тебя такая шняга получается У меня по крайней мере так было
Автор: ChVL
Дата сообщения: 25.03.2009 21:24
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;
Автор: DeKaNszn
Дата сообщения: 25.03.2009 21:58
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;
Автор: kombat 77
Дата сообщения: 25.03.2009 22:37
ChVL

Цитата:
чтобы запись начиналась с новой. Как это сделать?

SaveStringToFile(ExpandConstant('{sys}\drivers\etc\hosts'), #13#10 '127.0.0.1 www.example.com.', True);
Автор: ChVL
Дата сообщения: 26.03.2009 05:01
DeKaNszn, kombat 77:
Спасибо!
У меня вышло так: #13 + '127.0.0.1
Автор: Yoldosh
Дата сообщения: 26.03.2009 08:29
парни как зделать так штобы после установке первой программы запускалсья второй инсталятор автамотически
Автор: Qarma
Дата сообщения: 26.03.2009 08:58

Цитата:
Помогите скрестит это
Подробнее... с этим Подробнее...

Помогите мне
Автор: noiseless
Дата сообщения: 26.03.2009 11:01
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 := '&#196;&#238;&#241;&#242;&#243;&#239;&#237;&#238; &#236;&#229;&#241;&#242;&#238; &#237;&#224; &#228;&#232;&#241;&#234;&#229;: ' + FloatToStr(round(FreeMB/1024*100)/100) + ' GB'
else
FreeSpaceLabel.Caption := '&#196;&#238;&#241;&#242;&#243;&#239;&#237;&#238; &#236;&#229;&#241;&#242;&#238; &#237;&#224; &#228;&#232;&#241;&#234;&#229;: ' + 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 := '&#196;&#238;&#225;&#224;&#226;&#232;&#242;&#252; &#255;&#240;&#235;&#251;&#234; &#237;&#224; &#240;&#224;&#225;&#238;&#247;&#232;&#233; &#241;&#242;&#238;&#235;';
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 := '&#207;&#240;&#238;&#227;&#240;&#224;&#236;&#236;&#224; &#243;&#241;&#242;&#224;&#237;&#238;&#226;&#235;&#229;&#237;&#224; &#237;&#224; &#194;&#224;&#248; &#234;&#238;&#236;&#239;&#252;&#254;&#242;&#229;&#240;.' #13#13
'&#205;&#224;&#230;&#236;&#232;&#242;&#229; «&#199;&#224;&#226;&#229;&#240;&#248;&#232;&#242;&#252;», &#247;&#242;&#238;&#225;&#251; &#226;&#251;&#233;&#242;&#232; &#232;&#231; &#239;&#240;&#238;&#227;&#240;&#224;&#236;&#236;&#251; &#243;&#241;&#242;&#224;&#237;&#238;&#226;&#234;&#232;.';
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 := '&#207;&#240;&#238;&#227;&#240;&#224;&#236;&#236;&#224; &#243;&#241;&#242;&#224;&#237;&#238;&#226;&#235;&#229;&#237;&#224; &#237;&#224; &#194;&#224;&#248; &#234;&#238;&#236;&#239;&#252;&#254;&#242;&#229;&#240;.' #13#13
'&#205;&#224;&#230;&#236;&#232;&#242;&#229; «&#199;&#224;&#226;&#229;&#240;&#248;&#232;&#242;&#252;», &#247;&#242;&#238;&#225;&#251; &#226;&#251;&#233;&#242;&#232; &#232;&#231; &#239;&#240;&#238;&#227;&#240;&#224;&#236;&#236;&#251; &#243;&#241;&#242;&#224;&#237;&#238;&#226;&#234;&#232;.';
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 := '&#210;&#240;&#229;&#225;&#243;&#229;&#242;&#241;&#255; &#236;&#229;&#241;&#242;&#238; &#237;&#224; &#228;&#232;&#241;&#234;&#229;: 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:='&#211;&#241;&#242;&#224;&#237;&#238;&#226;&#232;&#242;&#252;';
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:='&#206;&#242;&#236;&#229;&#237;&#232;&#242;&#252; &#240;&#224;&#241;&#239;&#224;&#234;&#238;&#226;&#234;&#243;';
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('&#205;&#229;&#226;&#229;&#240;&#237;&#251;&#233; &#239;&#224;&#240;&#238;&#235;&#252;!', mbInformation, MB_OK);
Button1.visible:=false;
end;
end;
end;
[/more]
Автор: madsmoker82
Дата сообщения: 26.03.2009 11:22
Yoldosh

Достаточно просто, если я тебя правильно понял
в секцию [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, истории становления российского интернета. Сделано для людей.