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

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

Автор: Alex 17
Дата сообщения: 23.06.2011 21:09
Как сделать чтобы была белая линия?
Как сделать чтобы текст был виден?
Как сделать поле для ввода текста большим (ширина регулируется, а вот высота - нет)?
Как привязать введенний ник к файлу (пусть файл. "Account.txt" переименуется в написанний ник!)?
Как сделать кнопку "Далее" неактивной, если ник не введен?



[more=скрипт...]#define MyAppName "F.E.A.R. 3"
#define NeedSize "315"
#include "Module\Components.iss"
#include "Module\PlayWith.Texture.iss"


[Setup]
AppName=F.E.A.R. 3
AppVerName=F.E.A.R. 3
DefaultDirName={pf}\TMTGamer\F.E.A.R. 3
DirExistsWarning=no
AppVersion=1.0
OutputBaseFilename=setup
OutputDir=.
VersionInfoCopyright=TMTGamer
AppPublisher=Interactive Entertainment
WizardImageFile=Files\WizardImage.bmp
WizardSmallImageFile=Files\WizardSmallImage.bmp

[UninstallDelete]
Type: filesandordirs; Name: {app}


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

[Tasks]
Name: desktopicon; Description: Создать значок на Рабочем столе; GroupDescription: Дополнительные значки:
Name: Redist; Description: Дополнительное программное обеспечение:
Name: Redist\DirectXCheck; Description: Оновить Microsoft DirectX; Flags: unchecked
Name: Redist\VCCheck; Description: Установить Microsoft Visual C++ Redist; Flags: unchecked

[CustomMessages]
rus.Welcome2=Программа установит игру {#MyAppName} на Ваш компьютер.%n%nРекомендуется закрыть антивирусные пакеты, а также все прочие приложения перед тем, как продолжить.
rus.Finished=Игра {#MyAppName} установлена на Ваш компьютер.%n%nПриложение можно запустить с помощью соответствующего значка.%n%nНажмите «Завершить», чтобы выйти из программы установки.

[Files]
Source: Files\bass.dll; DestDir: {tmp}; Flags: dontcopy
Source: Files\sound.mp3; DestDir: {tmp}; Flags: dontcopy
Source: Files\unarc.dll; DestDir: {tmp}; Flags: dontcopy
Source: Files\InnoCallback.dll; DestDir: {tmp}; Flags: dontcopy
Source: Files\facompress.dll; DestDir: {tmp}; Flags: dontcopy
Source: Files\Logo.bmp; DestDir: {tmp}; Flags: dontcopy
Source: Files\papka.bmp; DestDir: {tmp}; Flags: dontcopy
Source: Files\Finishe.bmp; DestDir: {tmp}; Flags: dontcopy
Source: "Files\sound.mp3"; DestDir: "{tmp}"; Flags: dontcopy noencryption nocompression
Source: "Files\MusicButton.bmp"; DestDir: "{tmp}"; Flags: dontcopy
Source: "Files\bass.dll"; DestDir: "{tmp}"; Flags: dontcopy
;Source: "C:\Program Files\EA Games\Need for Speed Undercover\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs;

[Run]

Filename: {src}\Redist\DirectX\DXSETUP.exe; StatusMsg: Оновлення компонентів DirectX...; Tasks: Redist\DirectXCheck; Flags: waituntilterminated;
Filename: "{src}\Redist\vcredist_x86_ru.exe"; StatusMsg: "Встановлення Microsoft Visual C++ Redist..."; Tasks: Redist\VCCheck; Flags: waituntilterminated;

[Icons]
Name: "{group}\С.Т.А.Л.К.Е.Р. - Чисте Небо"; Filename: "{app}\bin\xrEngine.exe"; WorkingDir: "{app}"; IconFilename: "{app}\bin\xrEngine.exe";
Name: "{commondesktop}\С.Т.А.Л.К.Е.Р. - Чисте Небо"; Filename: "{app}\bin\xrEngine.exe"; WorkingDir: "{app}"; IconFilename: "{app}\bin\xrEngine.exe"; Tasks: "desktopicon";

[Code]
var
WelcomeLabel1, WelcomeLabel2, FinishedLabel, FinishedHeadingLabel: TLabel;
PageNameLabel, PageDescriptionLabel: TLabel;ISCustomPage1: TWizardPage;
NewStaticText3: TNewStaticText;
NickEdit: TNewEdit;
NameEdit: TNewEdit;





procedure RedesignWizardForm;
begin
{ Creates custom wizard page }
ISCustomPage1 := CreateCustomPage(wpWelcome, 'Создание учетной записи', '');

with WizardForm.Bevel1 do
begin
Left := ScaleX(-2);
Top := ScaleY(45);
Height := ScaleY(13);
end;




{ NewStaticText3 }
NewStaticText3 := TNewStaticText.Create(WizardForm);
with NewStaticText3 do
begin
Name := 'NewStaticText3';
Parent := ISCustomPage1.Surface;
Caption := 'Ваш ник';
Left := ScaleX(182);
Top := ScaleY(85);
Width := ScaleX(211);
Height := ScaleY(50);
end;

{ NickEdit }
NickEdit := TNewEdit.Create(WizardForm);
with NickEdit do
begin
Name := 'NickEdit';
Parent := ISCustomPage1.Surface;
Left := ScaleX(100);
Top := ScaleY(120);
Width := ScaleX(217);
Height := ScaleY(21);
Text := '';
end;


NewStaticText3.TabOrder := 4;
NickEdit.TabOrder := 5;







with WizardForm.PageDescriptionLabel do
begin
Left := ScaleX(32);
Top := ScaleY(27);
end;

{ PageControl1 }





end;

procedure InitializeWizard1();
begin
RedesignWizardForm;
end;

procedure CurStepChanged(CurStep: TSetupStep);
Var
S1, S2, S3: String;
begin
if CurStep = ssPostInstall then begin//запись после распаковки всех файлов
if NickEdit.Text <> '' then begin //Если поле эдита пустое, то файлы не создаем
S1 := '[Accounts]' +#13+#10+ 'Count=1' +#13+#10+ 'Current=0' +#13+#10+ 'HideWindow=1' +#13+#10+#13+#10+ '[Account_0]' +#13+#10+ 'Login=' + NickEdit.Text +#13+#10+ 'SavePassword=0' +#13+#10+ 'Password=' +#13+#10+ 'CurrentIcon=0';
CreateDir(ExpandConstant('{userappdata}\')+'CommFort\'); //Создаем папки
CreateDir(ExpandConstant('{userappdata}\')+'CommFort\'+'Config\'); //по очереди, по одной
CreateDir(ExpandConstant('{userappdata}\')+'CommFort\'+'Config\'+'Accounts'); // А то сразу деревом не создается
SaveStringToFile((ExpandConstant('{userappdata}\')+'CommFort\'+'Config\'+'Accounts'+'\Accounts.ini'), S1, false);

SaveStringToFile(ExpandConstant('{userappdata}\')+'CommFort\'+'Config'+'\Network.ini', S2, false);

CreateDir(ExpandConstant('{userappdata}\')+'CommFort\'+'Config\'+'Accounts\'+NickEdit.Text); //Создаем папку, иначе не идет сохранения в файл
SaveStringToFile(ExpandConstant('{userappdata}\')+'CommFort\'+'Config\'+'Accounts\'+NickEdit.Text+'\data.ini', S3, false);
end;
end;
end;


procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
Confirm:=False;
end;

procedure Labels();
begin
WelcomeLabel1:= TLabel.Create(WizardForm);
WelcomeLabel1.AutoSize:= False;
with WizardForm.WelcomeLabel1 do
//координаты WelcomeLabel1
WelcomeLabel1.SetBounds(ScaleX(230), ScaleY(20), ScaleX(300), ScaleY(220));
WelcomeLabel1.Font:= WizardForm.WelcomeLabel1.Font
WelcomeLabel1.Font.Color:= clWhite;
WelcomeLabel1.Transparent:= True;
WelcomeLabel1.WordWrap:= true;
WelcomeLabel1.Caption:= WizardForm.WelcomeLabel1.Caption;
WelcomeLabel1.Parent:= WizardForm.WelcomePage

WelcomeLabel2:= TLabel.Create(WizardForm);
WelcomeLabel2.AutoSize:= False;
with WizardForm.WelcomeLabel2 do
//координаты WelcomeLabel2
WelcomeLabel2.SetBounds(ScaleX(230), ScaleY(100), ScaleX(257), ScaleY(220));
WelcomeLabel2.Font:= WizardForm.WelcomeLabel2.Font
WelcomeLabel2.Font.Color:= clWhite;
WelcomeLabel2.Transparent:= True;
WelcomeLabel2.WordWrap:= true;
WelcomeLabel2.Caption:= ExpandConstant('{cm:Welcome2}');
WelcomeLabel2.Caption:= WizardForm.WelcomeLabel2.Caption;
WelcomeLabel2.Parent:= WizardForm.WelcomePage

WizardForm.WizardSmallBitmapImage.SetBounds(ScaleX(0), ScaleY(0), WizardForm.MainPanel.Width, WizardForm.MainPanel.Height);

PageNameLabel:= TLabel.Create(WizardForm)
with WizardForm.PageNameLabel do
PageNameLabel.SetBounds(Left, Top, Width, Height);
PageNameLabel.Transparent:= True;
PageNameLabel.Font:= WizardForm.PageNameLabel.Font;
PageNameLabel.Font.Color:= clWhite; //цвет надписи
PageNameLabel.Parent:= WizardForm.MainPanel;

PageDescriptionLabel:= TLabel.Create(WizardForm)
with WizardForm.PageDescriptionLabel do
PageDescriptionLabel.SetBounds(Left, Top, Width, Height);
PageDescriptionLabel.Transparent:= True;
PageDescriptionLabel.Font:= WizardForm.PageDescriptionLabel.Font;
PageDescriptionLabel.Font.Color:= clWhite; //цвет надписи
PageDescriptionLabel.Parent:= WizardForm.MainPanel;

FinishedHeadingLabel:= TLabel.Create(WizardForm);
FinishedHeadingLabel.AutoSize:= False;
with WizardForm.FinishedHeadingLabel do
//координаты FinishedHeadingLabel
FinishedHeadingLabel.SetBounds(ScaleX(230), ScaleY(20), ScaleX(292), ScaleY(220));
FinishedHeadingLabel.Font:= WizardForm.FinishedHeadingLabel.Font
FinishedHeadingLabel.Font.Color:= clWhite;
FinishedHeadingLabel.Transparent:= True;
FinishedHeadingLabel.WordWrap:= true;
FinishedHeadingLabel.Parent:= WizardForm.FinishedPage

FinishedLabel:= TLabel.Create(WizardForm);
FinishedLabel.AutoSize:= False;
with WizardForm.FinishedLabel do
//координаты FinishedLabel
FinishedLabel.SetBounds(ScaleX(230), ScaleY(100), ScaleX(257), ScaleY(220));
FinishedLabel.Font:= WizardForm.FinishedLabel.Font
FinishedLabel.Font.Color:= clWhite;
FinishedLabel.Transparent:= True;
FinishedLabel.WordWrap:= true;
FinishedLabel.Parent:= WizardForm.FinishedPage

WizardForm.PageNameLabel.Hide;
WizardForm.PageDescriptionLabel.Hide;

WizardForm.WelcomeLabel1.Hide;
WizardForm.WelcomeLabel2.Hide;
WizardForm.FinishedLabel.Hide;
WizardForm.FinishedHeadingLabel.Hide;
end;


procedure InitializeWizard2();
Begin
LabelSize();
ButtonTextures();
Labels();
music();
ExtractTemporaryFile('Finishe.bmp');
WizardForm.WizardBitmapImage.Width:= ScaleX(497);
WizardForm.WizardBitmapImage2.Width:= ScaleX(497);
WizardForm.WizardBitmapImage2.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Finishe.bmp'));
ExtractTemporaryFile('papka.bmp');
WizardForm.SelectDirBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\papka.bmp'));
WizardForm.SelectDirBitmapImage.AutoSize:=true;
WizardForm.SelectGroupBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\papka.bmp'));
WizardForm.SelectGroupBitmapImage.AutoSize:=true;
End;

Procedure CurPageChanged(CurPageID: Integer);
Begin
UpdateButtons();
FinishedLabel.Caption:= ExpandConstant('{cm:Finished}');
PageNameLabel.Caption:= WizardForm.PageNameLabel.Caption;
//PageDescriptionLabel.Caption:= WizardForm.PageDescriptionLabel.Caption;

FinishedHeadingLabel.Caption:= WizardForm.FinishedHeadingLabel.Caption;

if BASS_ChannelIsActive(mp3Handle) = BASS_ACTIVE_PAUSED then
PlayButton.Show else
PauseButton.Show;

Case CurPageID of
wpWelcome:
begin
PlayButton.Hide;
PauseButton.Hide;
end;

wpSelectDir:
begin
GetNeedSpaceCaption;
if FreeMB < NeedSize then
begin
WizardForm.NextButton.Enabled := False;
ButtonLabel[bidNext].Enabled := False;
ButtonPanel[bidNext].Enabled := False;
end;
end;

wpFinished:
begin
PlayButton.Hide;
PauseButton.Hide;
end;
End;
end;
procedure InitializeWizard();
begin

InitializeWizard1();
InitializeWizard2();

end;[/more]
Автор: REALYAROHA
Дата сообщения: 24.06.2011 11:29
А где вежливость?
Автор: serg561432
Дата сообщения: 24.06.2011 16:05
Знаю, что где-то уже обсуждали, но найти не могу. Дайте пример скрипта, чтобы ярлык создавался в самом конце установки
Автор: sergey3695
Дата сообщения: 24.06.2011 16:33

Цитата:
Знаю, что где-то уже обсуждали, но найти не могу. Дайте пример скрипта, чтобы ярлык создавался в самом конце установки

Может что-то вроде вот этого ты искал:
чтобы ярлык создавался в самом конце установки
Автор: vint56
Дата сообщения: 24.06.2011 16:48
serg561432
[more=вот пример]#define MyAppName "Call of Duty Modern Warfare 2"
[Setup]
AppName=Call of Duty Modern Warfare 2
AppVerName=Call of Duty Modern Warfare 2
DefaultDirName={pf}\Call of Duty Modern Warfare 2
DefaultGroupName=Call of Duty Modern Warfare 2
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes

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

[CustomMessages]
russian.Icons=Добавить ярлык на Рабочий стол

[Icons]
Name: {commondesktop}\Call of Duty Modern Warfare 2; Filename: {app}\iw4sp.exe; Check: CreateIcons;

[Code]
var
Icons, Group: TCheckBox;
lblIcons, lblGroup: TLabel;

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

procedure IconsOnClick(Sender: TObject);
begin
if Icons.Checked = False then
Icons.Checked:= True else
Icons.Checked:= False;
end;

procedure DeinitializeSetup();
begin
if Icons.Checked then
CreateShellLink(ExpandConstant('{commondesktop}\{#MyAppName}.lnk'), '',
ExpandConstant('{app}\iw4sp.exe'), '', ExpandConstant('{app}\'), '', 0, SW_SHOWNORMAL);
end;

procedure InitializeWizard();
begin
Icons:= TCheckBox.Create(WizardForm);
with Icons do
begin
Parent:= WizardForm.FinishedPage;
TabOrder:= 2;
Checked:= False;
Left:= ScaleX(250);
Top:= ScaleY(260);
Width:= ScaleX(14);
Height:= ScaleY(14);
end;

lblIcons:= TLabel.Create(WizardForm);
with lblIcons do
begin
Caption:=ExpandConstant('{cm:Icons}');
Width:= ScaleX(150);
Height:= ScaleY(13);
Transparent := True;
Parent:= WizardForm.FinishedPage;
OnClick:= @IconsOnClick;
Left:= ScaleX(270);
Top:= ScaleY(260);
end;
end;[/more]
Автор: 4upa4ups
Дата сообщения: 24.06.2011 16:59
Есть ли похожий скрипт для такого установщика?
Автор: shidow
Дата сообщения: 24.06.2011 17:07
4upa4ups
http://rghost.ru/7060851
Автор: 4upa4ups
Дата сообщения: 24.06.2011 17:18
shidow
Спасибо.
Автор: Alex 17
Дата сообщения: 24.06.2011 22:07
Я понимаю, что задал много вопросов, но буду благодарен если поможете!
Автор: trmko
Дата сообщения: 24.06.2011 23:10
Доброго времени суток всем!

Уважаемые форумчане, не смог разобраться сам в нескольких вопросах, прошу помочь или ткнуть носом, если уже есть ответ.

1. Можно ли сделать инсталлятор с ограниченным количеством установок? И после этого выдавалось сообщение в самом начале установки: "Вы исчерпали лимит установок, скачайте новую версию".

2. Так же интересует скрипт на работоспособность инсталлятора на ограниченное кол-во времени, например 2 недели. И тоже выдавалось сообщение: "Срок действия установщика истек, скачайте новую версию"

3. Подскажите, как сделать следующее - есть 4 варианта одной программы. Необходимо, в начале установки задать вопрос и варианты ответа ( Нужна ли Вам поддержка определенной программы? - "ДА", "НЕТ") и далее переход на следующую страницу с учетом ответа. Т. е. если человек ответил "ДА" он переходит на один вариант страницы и продолжает установку выбирая дополнительные функции, если ответил "НЕТ", то переходит на другую страницу с другими вариантами дополнительных функций.

4. Как вообще можно сделать, чтобы на одной странице установщика, был только один вариант выбора какой-либо из предлагаемых дополнительных функций. При нажатии на кнопку далее, следующая страница и следующий вариант.

Надеюсь на поддержку с Вашей стороны. )
Автор: DeKaNszn
Дата сообщения: 25.06.2011 00:37
trmko (00:10 25-06-2011)
Цитата:
2. Так же интересует скрипт на работоспособность инсталлятора на ограниченное кол-во времени, например 2 недели. И тоже выдавалось сообщение: "Срок действия установщика истек, скачайте новую версию"


[more=код]
Код: [no][code][/no]
const
endD = 24;
endM = 6;
endY = 2011;

function InitializeSetup(): Boolean;
Var
S: String;
d, m, y: Integer;
begin
S := GetDateTimeString('dd/mm/yyyy', '-', #0);
d := StrToInt(Copy(S, 1, 2));
m := StrToInt(Copy(S, 4, 2));
y := StrToInt(Copy(S, 7, 4));
Result := (y < endY) or ((y = endY) and ((m < endM) or ((m = endM) and (d < endD))));
if(not Result) then MsgBox('Скачайте новую версию', mbInformation, MB_OK);
end;
Автор: trmko
Дата сообщения: 25.06.2011 02:18

Цитата:
DeKaNszn
указываешь первый день выдачи сообщения

Спасибо большое! Один вопрос решен. )

Вот бы понять еще, как 3 или 4 вопрос сделать.)
Автор: VicF1
Дата сообщения: 25.06.2011 09:07
Просветите плиз, в чем принципиальная разница между InnoCallback.dll и CallbackCtrl.dll ?
Спасибо.
Автор: troyan90
Дата сообщения: 25.06.2011 11:17
VicF1
разница только в размере
Автор: trmko
Дата сообщения: 25.06.2011 14:42
DeKaNszn, все работает, только одно но. Нужно, чтобы установку, нельзя было продолжить совсем. А еще лучше, чтобы вообще установщик сам себя уничтожал.

Такое возможно?
Автор: Aerogiz
Дата сообщения: 25.06.2011 18:27
Необходимо распаковать архив в следующие папки :
Для Windows XP - C:\Documents and Settings\[Имя Пользователя]\Application Data\[Имя Конечной Папки]
Для Windows Vista или Win 7 - C:\Users\[Имя Пользователя]\AppData\Roaming\[Имя Конечной Папки]
Прошу помочь отредактировать например строчку
Код: #define Archives "{src}\Data.arc;DestDir:{app}\;Disk:1"
Автор: Gnom3
Дата сообщения: 25.06.2011 20:07
Четвертая версия скрипта для вставки изображений. Компилируем main.iss.
Особенности:
Управление полностью из секции [Setup], фоновое изображение и текстуры чекбоксов - там-же. Отсутствие какого-либо из файлов не повлечет за собой ошибки.
Инсталл полностью дефолтный - секцию [Сode] править не нужно.
В обработке участвуют только необходимые куски кода, исходя из данных, указанных в секции [Setup]
Модуль не зависит от расположения и измененного размера элементов а также от изменения размеров окна инсталла. Единственное условие - размер используемого изображения должен точно соответствовать параметрам WizardForm.ClientWidth и WizardForm.ClientHeight для нормального скинирования чекбокслистов.
Заскинированы кнопки инсталлятора, заменены SelectDirBitmapImage и SelectGroupBitmapImage.
Если у вас WizardForm.OuterNotebook.Hide; и WizardForm.InnerNotebook.Hide;, то можно сразу отказываться от применения данного модуля - он построен как раз на не сокрытии OuterNotebook и InnerNotebook
Огромное спасибо Shegorat, за помощ в паре непосильных для меня моментов и за модуль скинирования кнопок

Добавлена поддержка Юникод-версии инно. Компилируется только на расширенной версии Инно. Скачать.
Автор: VendettaDeToli
Дата сообщения: 25.06.2011 23:22
Помогите пожалуйста решить вопрос:
После распаковки архивов FreeArc нужно чтобы из директории куда поставилась программа, запустился файл с расширением .com, что нужно прописать в секции RUN?
У меня так
Filename: {app}\AM_CDCRK.COM; WorkingDir: "{app}"; Flags: waituntilterminated;
Но так AM_CDCRK.COM запускается раньше, чем установлена сама программа...
Кто подскажет, как можно решить этот вопрос?
Автор: Edison007007
Дата сообщения: 25.06.2011 23:44
VendettaDeToli
Запустить через функцию Exec
Автор: VendettaDeToli
Дата сообщения: 26.06.2011 14:42
Edison007007
А пример какой-нибудь можно?

Спасибо за подсказку, сам разобрался
[_code]
procedure CurStepChanged(CurStep: TSetupStep);
var
ResultCode: integer;
begin
if CurStep = ssPostInstall then
Exec(ExpandConstant('{app}\AM_CDCRK.COM'), '',ExpandConstant('{app}'), SW_SHOW, ewWaitUntilTerminated, ResultCode);
end;
Автор: Y4enik32
Дата сообщения: 26.06.2011 21:21
Доброго времени суток.
Помогите прикрутить к этому скрипту какой нибудь ISDone.
Автор: Alex 17
Дата сообщения: 27.06.2011 11:19
Поможете сделать страницу ввода ника? Так чтобы имя файла менялось на введенный ник!

[more=скрипт...]#define MyAppName "F.E.A.R. 3"
#define NeedSize "5120"
#include "Module\Components.iss"
#include "Module\PlayWith.Texture.iss"


[Setup]
AppName=F.E.A.R. 3
AppVerName=F.E.A.R. 3
DefaultDirName={pf}\TMTGamer\F.E.A.R. 3
DefaultGroupName=F.E.A.R. 3
DirExistsWarning=no
AppVersion=1.0
OutputBaseFilename=setup
OutputDir=.
VersionInfoCopyright=TMTGamer
AppPublisher=Interactive Entertainment
WizardImageFile=Files\WizardImage.bmp
WizardSmallImageFile=Files\WizardSmallImage.bmp

[UninstallDelete]
Type: filesandordirs; Name: {app}


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

[Tasks]
Name: desktopicon; Description: Создать значок на Рабочем столе; GroupDescription: Дополнительные значки:
Name: Redist; Description: Дополнительное программное обеспечение:
Name: Redist\DirectXCheck; Description: Оновить Microsoft DirectX; Flags: unchecked
Name: Redist\VCCheck; Description: Установить Microsoft Visual C++ Redist; Flags: unchecked

[CustomMessages]
rus.Welcome2=Программа установит игру {#MyAppName} на Ваш компьютер.%n%nРекомендуется закрыть антивирусные пакеты, а также все прочие приложения перед тем, как продолжить.
rus.Finished=Игра {#MyAppName} установлена на Ваш компьютер.%n%nПриложение можно запустить с помощью соответствующего значка.%n%nНажмите «Завершить», чтобы выйти из программы установки.

[Files]
Source: Files\bass.dll; DestDir: {tmp}; Flags: dontcopy
Source: Files\sound.mp3; DestDir: {tmp}; Flags: dontcopy
Source: Files\unarc.dll; DestDir: {tmp}; Flags: dontcopy
Source: Files\InnoCallback.dll; DestDir: {tmp}; Flags: dontcopy
Source: Files\facompress.dll; DestDir: {tmp}; Flags: dontcopy
Source: Files\Logo.bmp; DestDir: {tmp}; Flags: dontcopy
Source: Files\papka.bmp; DestDir: {tmp}; Flags: dontcopy
Source: Files\Finishe.bmp; DestDir: {tmp}; Flags: dontcopy
Source: "Files\sound.mp3"; DestDir: "{tmp}"; Flags: dontcopy noencryption nocompression
Source: "Files\MusicButton.bmp"; DestDir: "{tmp}"; Flags: dontcopy
Source: "Files\bass.dll"; DestDir: "{tmp}"; Flags: dontcopy
;Source: "C:\Program Files\EA Games\Need for Speed Undercover\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs;

[Run]

Filename: {src}\Redist\DirectX\DXSETUP.exe; StatusMsg: Оновлення компонентів DirectX...; Tasks: Redist\DirectXCheck; Flags: waituntilterminated;
Filename: "{src}\Redist\vcredist_x86_ru.exe"; StatusMsg: "Встановлення Microsoft Visual C++ Redist..."; Tasks: Redist\VCCheck; Flags: waituntilterminated;

[Icons]
Name: "{group}\С.Т.А.Л.К.Е.Р. - Чисте Небо"; Filename: "{app}\bin\xrEngine.exe"; WorkingDir: "{app}"; IconFilename: "{app}\bin\xrEngine.exe";
Name: "{commondesktop}\С.Т.А.Л.К.Е.Р. - Чисте Небо"; Filename: "{app}\bin\xrEngine.exe"; WorkingDir: "{app}"; IconFilename: "{app}\bin\xrEngine.exe"; Tasks: "desktopicon";

[Code]
var
WelcomeLabel1, WelcomeLabel2, FinishedLabel, FinishedHeadingLabel: TLabel;
PageNameLabel, PageDescriptionLabel: TLabel;


procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
Confirm:=False;
end;

procedure Labels();
begin
WelcomeLabel1:= TLabel.Create(WizardForm);
WelcomeLabel1.AutoSize:= False;
with WizardForm.WelcomeLabel1 do
//координаты WelcomeLabel1
WelcomeLabel1.SetBounds(ScaleX(230), ScaleY(20), ScaleX(300), ScaleY(220));
WelcomeLabel1.Font:= WizardForm.WelcomeLabel1.Font
WelcomeLabel1.Font.Color:= clWhite;
WelcomeLabel1.Transparent:= True;
WelcomeLabel1.WordWrap:= true;
WelcomeLabel1.Caption:= WizardForm.WelcomeLabel1.Caption;
WelcomeLabel1.Parent:= WizardForm.WelcomePage

WelcomeLabel2:= TLabel.Create(WizardForm);
WelcomeLabel2.AutoSize:= False;
with WizardForm.WelcomeLabel2 do
//координаты WelcomeLabel2
WelcomeLabel2.SetBounds(ScaleX(230), ScaleY(100), ScaleX(257), ScaleY(220));
WelcomeLabel2.Font:= WizardForm.WelcomeLabel2.Font
WelcomeLabel2.Font.Color:= clWhite;
WelcomeLabel2.Transparent:= True;
WelcomeLabel2.WordWrap:= true;
WelcomeLabel2.Caption:= ExpandConstant('{cm:Welcome2}');
WelcomeLabel2.Caption:= WizardForm.WelcomeLabel2.Caption;
WelcomeLabel2.Parent:= WizardForm.WelcomePage

WizardForm.WizardSmallBitmapImage.SetBounds(ScaleX(0), ScaleY(0), WizardForm.MainPanel.Width, WizardForm.MainPanel.Height);

PageNameLabel:= TLabel.Create(WizardForm)
with WizardForm.PageNameLabel do
PageNameLabel.SetBounds(Left, Top, Width, Height);
PageNameLabel.Transparent:= True;
PageNameLabel.Font:= WizardForm.PageNameLabel.Font;
PageNameLabel.Font.Color:= clWhite; //цвет надписи
PageNameLabel.Parent:= WizardForm.MainPanel;

PageDescriptionLabel:= TLabel.Create(WizardForm)
with WizardForm.PageDescriptionLabel do
PageDescriptionLabel.SetBounds(Left, Top, Width, Height);
PageDescriptionLabel.Transparent:= True;
PageDescriptionLabel.Font:= WizardForm.PageDescriptionLabel.Font;
PageDescriptionLabel.Font.Color:= clWhite; //цвет надписи
PageDescriptionLabel.Parent:= WizardForm.MainPanel;

FinishedHeadingLabel:= TLabel.Create(WizardForm);
FinishedHeadingLabel.AutoSize:= False;
with WizardForm.FinishedHeadingLabel do
//координаты FinishedHeadingLabel
FinishedHeadingLabel.SetBounds(ScaleX(230), ScaleY(20), ScaleX(292), ScaleY(220));
FinishedHeadingLabel.Font:= WizardForm.FinishedHeadingLabel.Font
FinishedHeadingLabel.Font.Color:= clWhite;
FinishedHeadingLabel.Transparent:= True;
FinishedHeadingLabel.WordWrap:= true;
FinishedHeadingLabel.Parent:= WizardForm.FinishedPage

FinishedLabel:= TLabel.Create(WizardForm);
FinishedLabel.AutoSize:= False;
with WizardForm.FinishedLabel do
//координаты FinishedLabel
FinishedLabel.SetBounds(ScaleX(230), ScaleY(100), ScaleX(257), ScaleY(220));
FinishedLabel.Font:= WizardForm.FinishedLabel.Font
FinishedLabel.Font.Color:= clWhite;
FinishedLabel.Transparent:= True;
FinishedLabel.WordWrap:= true;
FinishedLabel.Parent:= WizardForm.FinishedPage

WizardForm.PageNameLabel.Hide;
WizardForm.PageDescriptionLabel.Hide;

WizardForm.WelcomeLabel1.Hide;
WizardForm.WelcomeLabel2.Hide;
WizardForm.FinishedLabel.Hide;
WizardForm.FinishedHeadingLabel.Hide;
end;


procedure InitializeWizard();
Begin
LabelSize();
ButtonTextures();
Labels();
music();
ExtractTemporaryFile('Finishe.bmp');
WizardForm.WizardBitmapImage.Width:= ScaleX(497);
WizardForm.WizardBitmapImage2.Width:= ScaleX(497);
WizardForm.WizardBitmapImage2.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Finishe.bmp'));
ExtractTemporaryFile('papka.bmp');
WizardForm.SelectDirBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\papka.bmp'));
WizardForm.SelectDirBitmapImage.AutoSize:=true;
WizardForm.SelectGroupBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\papka.bmp'));
WizardForm.SelectGroupBitmapImage.AutoSize:=true;
End;

Procedure CurPageChanged(CurPageID: Integer);
Begin
UpdateButtons();
FinishedLabel.Caption:= ExpandConstant('{cm:Finished}');
PageNameLabel.Caption:= WizardForm.PageNameLabel.Caption;
//PageDescriptionLabel.Caption:= WizardForm.PageDescriptionLabel.Caption;

FinishedHeadingLabel.Caption:= WizardForm.FinishedHeadingLabel.Caption;

if BASS_ChannelIsActive(mp3Handle) = BASS_ACTIVE_PAUSED then
PlayButton.Show else
PauseButton.Show;

Case CurPageID of
wpWelcome:
begin
PlayButton.Hide;
PauseButton.Hide;
end;

wpSelectDir:
begin
GetNeedSpaceCaption;
if FreeMB < NeedSize then
begin
WizardForm.NextButton.Enabled := False;
ButtonLabel[bidNext].Enabled := False;
ButtonPanel[bidNext].Enabled := False;
end;
end;

wpFinished:
begin
PlayButton.Hide;
PauseButton.Hide;
end;
End;
end;[/more]

Автор: REALYAROHA
Дата сообщения: 27.06.2011 11:23
У кого есть код на выбор приоритета установки как у R.G Catalyst?
Автор: Gnom3
Дата сообщения: 27.06.2011 13:30
REALYAROHA
Как у каталистов не знаю, спроси у самих каталистов. Есть такой вариант.
Автор: SotM
Дата сообщения: 27.06.2011 14:18
Вопрос на засыпку: а насколько будет видна разница при установке, если устанавливать с высоким приоритетом и с обычным? СтОит ли овчинка выделки? Какой выигрыш получается?
Автор: Shegorat
Дата сообщения: 27.06.2011 14:22
Gnom3 14:30 27-06-2011
Цитата:
Как у каталистов не знаю, спроси у самих каталистов. Есть такой вариант.

Ну вообще-то этот пример сработает только при распаковке из самого инно. На внешние архивы никакого воздействия не будет...

SotM 15:18 27-06-2011
Цитата:
Вопрос на засыпку: а насколько будет видна разница при установке, если устанавливать с высоким приоритетом и с обычным? СтОит ли овчинка выделки? Какой выигрыш получается?

Нуу процентов на 10 быстрее будет. Хотя при этом может сильно тормозить систему...
Автор: Edison007007
Дата сообщения: 27.06.2011 14:44

Цитата:
Ну вообще-то этот пример сработает только при распаковке из самого инно. На внешние архивы никакого воздействия не будет...

Если я не ошибаюсь, то можно и поставить приоритет и на внешние архивы
Автор: Shegorat
Дата сообщения: 27.06.2011 14:56
Edison007007 15:44 27-06-2011
Цитата:
Если я не ошибаюсь, то можно и поставить приоритет и на внешние архивы

Не совсем так. Приоритет выставляется у процесса. Для этого нужно знать хэндл этого процесса. Можно конечно искать хэндл по имени процесса, но по мне проще написать библиотеку, обладающую определенным функционалом, в вашем случае это ISExec...
Автор: troyan90
Дата сообщения: 27.06.2011 15:29
думаю в тему будет. заценяйте народ:
ExecAndWait
Автор: riperoc1
Дата сообщения: 27.06.2011 17:14
troyan90
Хорошая библиотека Только походу защищённый процесс нельзя убить(

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177

Предыдущая тема: поиск


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.