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

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

Автор: Genri
Дата сообщения: 12.01.2007 01:56
Sampron
Код:
[Setup]
AppName=My Program
AppVerName=My Program version 1.5
DefaultDirName={pf}\My Program
DisableProgramGroupPage=yes
WindowVisible=yes

[Files]
Source: Files\*.*; DestDir: {app}; Flags: ignoreversion

[Code]
function GetSystemMetrics(nIndex:Integer):Integer;
external 'GetSystemMetrics@user32.dll stdcall';

procedure InitializeWizard();
var
Form: TSetupForm;
ProgressBar: TNewProgressBar;
i: Integer;
begin
Form := CreateCustomForm();
try
with Form do
begin
ClientWidth := ScaleX(256);
ClientHeight := ScaleY(16);
BorderStyle:= bsNone;
Left:= GetSystemMetrics(16) - ClientWidth - ScaleX(12);
Top:= GetSystemMetrics(17) - ClientHeight - ScaleY(12);
end;
ProgressBar := TNewProgressBar.Create(Form);
with ProgressBar do
begin
Left := ScaleX(8);
Top := ScaleX(12);
Width := Form.Width - (2 * Left);
Height := Form.ClientHeight - (2 * Top);
Parent := Form;
Min:= 0;
Max:= 30;
Position := 0;
end;
Form.Show();
for i:= 0 to 30 do
begin
ProgressBar.Position:= i;
Sleep(500);
i:= i + 1;
end;
finally
Form.Free();
end;
end;
Автор: BAPK
Дата сообщения: 12.01.2007 02:03

Цитата:
-- не совсем понятно - их всего 4? Или есть еще? Давай полный список

[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}
Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
Name: Kabinet; Description: Kabinet; GroupDescription: Subnets; Flags: exclusive unchecked; Languages:
Name: Skynet; Description: Skynet; GroupDescription: Subnets; Flags: exclusive unchecked; Languages:
Name: Convex_Olympus; Description: Convex, Olympus; GroupDescription: Subnets; Flags: exclusive unchecked; Languages:
Name: Planet_Extrim_Insis_Infotek; Description: Planet, Extrim, Insis, Infotek; GroupDescription: Subnets; Flags: exclusive; Languages:
Name: rus; Description: Русификация; GroupDescription: Только если программа устанавливается в каталог по умолчанию:; Flags: unchecked
Автор: Genri
Дата сообщения: 12.01.2007 02:04
BAPK -- ну почти как в примере на предыдущей странице. Так устроит?
Автор: BAPK
Дата сообщения: 12.01.2007 02:09
Ошибка: Duplicate idnetifier 'InitializeWizar' в этой строчке:procedure InitializeWizard();
Автор: Genri
Дата сообщения: 12.01.2007 02:15
BAPK -- Мой совет (и сейчас и на будущее) - возьми скопируй весь скрипт, который я дал, сохрани в отдельный файл, запусти, убедись что все работает. И только потом пытайся интегрить в свой скрипт.

Я так понимаю, что у тебя уже была процедура InitializeWizard, а ты вставил еще одну.
Автор: Sampron
Дата сообщения: 12.01.2007 02:18
Genri
СУПЕР!!!
Вот только жалко он не хочет выполнятся одновременно с splash-рисунком
Автор: BAPK
Дата сообщения: 12.01.2007 02:22
Весь скрипт, невижу где...

[ISSI]
#define ISSI_Russian
#define ISSI_Russian "C:\Temp\Настройки.rtf"
#define ISSI_LicensePrint
#define ISSI_Russian
#define ISSI_About "{cm:issiAbout}"
#define ISSI_About "NameAndVersion"
#define ISSI_AppVersion "0.0.5.1"
#define ISSI_SplashScreen "C:\Temp\ifnews2.bmp"
#define ISSI_SplashScreen_T 2
#define ISSI_SplashScreen_X 500
#define ISSI_SplashScreen_Y 300
#define ISSI_Splash_Corner 100
#define ISSI_URL "http://infofree.ru/forum/showthread.php?t=25896"
#define ISSI_UrlText "Помощь и настройка"

[Setup]
AppName=ApexDC++ (InfoFree Hub)
AppVerName=ApexDC++ (InfoFree Hub)
AppPublisher=Infofree, Inc.
AppPublisherURL=http://infofree.ru
AppSupportURL=http://infofree.ru/forum/showthread.php?t=25896
AppUpdatesURL=http://infofree.ru/forum/downloads.php?do=file&id=123
DefaultDirName={pf}\ApexDC++(InfoFree Hub)
DefaultGroupName=ApexDC++ (InfoFree Hub)
AllowNoIcons=true
OutputDir=C:\Temp
OutputBaseFilename=ApexDC++(InfoFree Hub)
SetupIconFile=C:\Temp\1.ico
Compression=lzma
SolidCompression=true
VersionInfoVersion=0.0.5.1
VersionInfoCopyright=BAPK
WizardImageFile=C:\Program Files\Inno Setup 5\Modern\SetupModern21.bmp
WizardSmallImageFile=C:\Program Files\Inno Setup 5\Modern\Small\SetupModernSmall16.bmp
AppID={{6EF43DCA-3877-41AC-819A-FE4B027968F6}
ShowLanguageDialog=no
AppVersion=0.0.5.1
UninstallDisplayName=ApexDC++(InfoFree Hub)
VersionInfoTextVersion=Beta 5
DisableStartupPrompt=true
FlatComponentsList=false
VersionInfoCompany=infofree.ru
VersionInfoDescription=Тестовая версия
AppCopyright=BAPK
TimeStampsInUTC=true
LicenseFile=C:\Temp\Настройки.rtf

[Messages]
BeveledLabel=- Packaged by BAPK

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

[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}
Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
Name: Kabinet; Description: Kabinet; GroupDescription: Subnets; Flags: exclusive unchecked; Languages:
Name: Skynet; Description: Skynet; GroupDescription: Subnets; Flags: exclusive unchecked; Languages:
Name: Convex_Olympus; Description: Convex, Olympus; GroupDescription: Subnets; Flags: exclusive unchecked; Languages:
Name: Planet_Extrim_Insis_Infotek; Description: Planet, Extrim, Insis, Infotek; GroupDescription: Subnets; Flags: exclusive; Languages:
Name: rus; Description: Русификация; GroupDescription: Только если программа устанавливается в каталог по умолчанию:; Flags: unchecked

[Files]
Source: C:\Temp\ApexDC++\ApexDC.exe; DestDir: {app}; Flags: ignoreversion
Source: C:\Temp\ApexDC++\EmoPacks\*; DestDir: {app}\EmoPacks\; Flags: ignoreversion recursesubdirs createallsubdirs
Source: C:\Temp\ApexDC++\Settings\*; DestDir: {app}\Settings\; Flags: ignoreversion recursesubdirs createallsubdirs
Source: C:\Temp\ApexDC++\Themes\*; DestDir: {app}\Themes\; Flags: ignoreversion recursesubdirs createallsubdirs
Source: ..\ApexDC++\russian.xml; DestDir: {app}
Source: ..\DCPlusPlus.xml; DestDir: {app}\Settings\; Flags: onlyifdestfileexists overwritereadonly; Tasks: rus
Source: C:\Temp\ApexDC++(InfoFree Hub)\ApexDC++\Subnets\Convex, Olympus\Settings\*; DestDir: {app}\Settings\; Flags: overwritereadonly ignoreversion; Languages: ; Tasks: Convex_Olympus
Source: C:\Temp\ApexDC++(InfoFree Hub)\ApexDC++\Subnets\Skynet\Settings\*; DestDir: {app}\Settings\; Flags: overwritereadonly ignoreversion; Languages: ; Tasks: Skynet
Source: C:\Temp\ApexDC++(InfoFree Hub)\ApexDC++\Subnets\Kabinet\Settings\*; DestDir: {app}\Settings\; Flags: overwritereadonly ignoreversion; Languages: ; Tasks: Kabinet

[INI]
Filename: {app}\ISTool.url; Section: InternetShortcut; Key: URL; String: http://infofree.ru/forum/showthread.php?t=25896/; Tasks: ; Languages:

[Icons]
Name: {group}\ApexDC++(InfoFree Hub); Filename: {app}\ApexDC.exe
Name: {group}\{cm:UninstallProgram,ApexDC++(InfoFree Hub)}; Filename: {uninstallexe}
Name: {userdesktop}\ApexDC++(InfoFree Hub); Filename: {app}\ApexDC.exe; Tasks: desktopicon
Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\ApexDC++(InfoFree Hub); Filename: {app}\ApexDC.exe; Tasks: quicklaunchicon

[CustomMessages]

#define ISSI_IncludePath "C:\Program Files\Inno Setup 5\ISSI"

#include ISSI_IncludePath+"\_issi.isi"

[Run]
Filename: {app}\ApexDC.exe; Description: {cm:LaunchProgram,ApexDC++(InfoFree Hub)}; Flags: nowait postinstall skipifsilent

[UninstallDelete]
Name: {app}; Type: filesandordirs; Tasks: ; Languages:
Автор: Sampron
Дата сообщения: 12.01.2007 02:28
Genri
http://data.cod.ru/374898122
Автор: BAPK
Дата сообщения: 12.01.2007 02:31
Genri

Цитата:
BAPK -- Мой совет (и сейчас и на будущее) - возьми скопируй весь скрипт, который я дал, сохрани в отдельный файл, запусти, убедись что все работает. И только потом пытайся интегрить в свой скрипт.

Я так понимаю, что у тебя уже была процедура InitializeWizard, а ты вставил еще одну.

Твой скрипт отдельно работает.

Я с кодом вообще не работал. Так что не знаю что, где и как...
Автор: GRom V
Дата сообщения: 12.01.2007 05:39
Genri

Цитата:
[Setup]
AppName=My Program
AppVerName=My Program version 1.5
DefaultDirName={pf}\My Program
DisableProgramGroupPage=yes
WindowVisible=yes

[Files]
Source: Files\*.*; DestDir: {app}; Flags: ignoreversion

[Code]
function GetSystemMetrics(nIndex:Integer):Integer;
external 'GetSystemMetrics@user32.dll stdcall';

procedure InitializeWizard();
var
Form: TSetupForm;
ProgressBar: TNewProgressBar;
i: Integer;
begin
Form := CreateCustomForm();
try
with Form do
begin
ClientWidth := ScaleX(256);
ClientHeight := ScaleY(16);
BorderStyle:= bsNone;
Left:= GetSystemMetrics(16) - ClientWidth - ScaleX(12);
Top:= GetSystemMetrics(17) - ClientHeight - ScaleY(12);
end;
ProgressBar := TNewProgressBar.Create(Form);
with ProgressBar do
begin
Left := ScaleX(8);
Top := ScaleX(12);
Width := Form.Width - (2 * Left);
Height := Form.ClientHeight - (2 * Top);
Parent := Form;
Min:= 0;
Max:= 30;
Position := 0;
end;
Form.Show();
for i:= 0 to 30 do
begin
ProgressBar.Position:= i;
Sleep(500);
i:= i + 1;
end;
finally
Form.Free();
end;
end;



А какой смысл в этом граббере ведь в данном случае во время его выполнения ничего не происходит!!! Просто так?


Добавлено:
Genri

С помощью патченой Setup.e32 jn Chanka картинки меняются так что не видно фона под ними.
Как такое можно сделать без патченой Setup.e32 - лишь скриптом?
И можно ли убрать надпись на синем фоне? (с твоей Setup.e32 это отлично видно +картинки гуляют)
Заранее спасибо
Автор: maxdddca123
Дата сообщения: 12.01.2007 08:34
Народ, помогите. Есть кнопка BrowseButton:= TButton.Create(WizardForm);
Как мне на неё нажать ?
SendMessage(WizardForm.BrowseButton.Handle, 513, 0, 0)
SendMessage(WizardForm.BrowseButton.Handle, 514, 0, 0)
не работает, пишет неизвестный идентификатор...
Автор: Genri
Дата сообщения: 12.01.2007 09:12
maxdddca123
WizardForm.BrowseButton.OnClick(WizardForm.BrowseButton);
Автор: CapsLosk
Дата сообщения: 12.01.2007 09:14
Genri
Заранее извеняюсь....а не мог ли ты перекомпилить Setup.e32 от Chanka ...чтоб инсталлятор брал эти рисунки например из Res.bin т.е както скрыть простой доступ к папке?
Автор: Genri
Дата сообщения: 12.01.2007 09:19
CapsLosk -- извинения приняты. исходники удалил. перекомпилить не могу.
Автор: CapsLosk
Дата сообщения: 12.01.2007 09:39
Genri

Цитата:
CapsLosk -- извинения приняты. исходники удалил. перекомпилить не могу.


Тогда присоединяюсь к GRom V - как можно сделать это скриптом - я имею ввиду то что бы форма (MainForm) и белая надпись на ней никак не проскакивала???
Мог бы помоч?
Автор: Genri
Дата сообщения: 12.01.2007 10:15
BAPK
Цитата:
Весь скрипт, невижу где...
-- посмотри тут:
http://forum.ru-board.com/topic.cgi?forum=5&topic=4801&start=820#9
может поможет.


Добавлено:
CapsLosk
Цитата:
как можно сделать это скриптом - я имею ввиду то что бы форма (MainForm) и белая надпись на ней никак не проскакивала???
-- посмотри отсюда:
http://forum.ru-board.com/topic.cgi?forum=5&topic=4801&start=840#16
и до конца страницы. может поможет.

Автор: BAPK
Дата сообщения: 12.01.2007 10:26
Genri

Цитата:
-- посмотри тут:
http://forum.ru-board.com/topic.cgi?forum=5&topic=4801&start=820#9
может поможет.

Та же ошибка была, я сам додумался, но код ниже ISSI вставлял...

Добавлено:
Выбор появился на новой странице, но как я понимаю никакой функциональной нагрузки он не несет т.к. на странице со всеми задачами Выбор сабнетов остался.
Автор: maxdddca123
Дата сообщения: 12.01.2007 10:50
Genri
Выручай - запутался

procedure BrowseOnClick(Sender: TObject);
var
res: Boolean;
UserSelectDir: String;
begin
res:=BrowseForFolder('Веберите папку базы 1С', UserSelectDir, False);
SelectedDir:= UserSelectDir;
if res then
begin
for i:= 0 to Page.CheckListBox.Items.Count - 1 do
if SelectedDir = Names[I] then
MsgBox('Эта база уже присутствует в списке !', mbInformation, MB_OK);
end;
begin
for i:= 0 to Page.CheckListBox.Items.Count - 1 do
if SelectedDir <> Names[I] then
begin
Page.CheckListBox.AddCheckBox('1C Налогоплательщик', SelectedDir, 0, True, True, False, False, nil);
RegWriteStringValue(HKEY_CURRENT_USER, 'Software\1C\1Cv7\7.7\Titles', SelectedDir, '1C Налогоплательщик');
end;
end;
end;

Смысл такой: не дать пользователю добавить 2-у такую же базу в список баз.
Не получается с if SelectedDir <> Names[I] then, он добавляет ещё лишние галочки, которых быть не должно... Т.Е, мне надо, что бы сначала проверялись все пункты по признаку :SelectedDir <> Names[I], и если во ВСЁМ списке нет базы, которую выбрал юзер (UserSelectDir), то добавлять 1 галочку с этой базой! Я понимаю, что он добавляет галки изза того, что например из 3-х баз 2 не совпадают, и он добавляет, но как это убрать ? Если понял меня помоги пожалуйста !
Автор: NightW0lf
Дата сообщения: 12.01.2007 12:15
Исправленно!
Перефразирую свою вопрос:
Возможно ли как нибудь вообще сделать - фон из JPG кртинки, а также смену JPG картинок во время устанокви БЕЗ WindowVisible=yes и синей формы с названием проги?
Автор: Sampron
Дата сообщения: 12.01.2007 13:07
NightW0lf

[Setup]
WindowVisible=yes
WindowShowCaption=no
BackColor=$000000

[Files]
Source: C:\isxbb.dll; DestDir: {tmp}; Flags: dontcopy
Source: C:\1.jpg; DestDir: {tmp}; Flags: dontcopy
Source: C:\2.jpg; DestDir: {tmp}; Flags: dontcopy
Source: C:\3.jpg; DestDir: {tmp}; Flags: dontcopy
Source: C:\4.jpg; DestDir: {tmp}; Flags: dontcopy

[Code]
const
BACKGROUND=5; // "5"-по центру, "6"-растянуто на весь экран, "1,2,3,4"-в разных углах экрана
TIMER=16;
function isxbb_AddImage(Image: PChar; Flags: Cardinal): Integer;
external 'isxbb_AddImage@files:isxbb.dll stdcall';
function isxbb_Init(hWnd: Integer): Integer;
external 'isxbb_Init@files:isxbb.dll stdcall';
function isxbb_StartTimer(Seconds: Integer; Flags: Cardinal): Integer;
external 'isxbb_StartTimer@files:isxbb.dll stdcall';
function isxbb_KillTimer(Flags: Cardinal): Integer;
external 'isxbb_KillTimer@files:isxbb.dll stdcall';
procedure InitializeWizard();
begin
ExtractTemporaryFile('1.jpg'); //1.jpg-это фоновый рисунок он показывается как в начале так и в конце установки
isxbb_AddImage(ExpandConstant('{tmp}')+'\1.jpg',BACKGROUND);
isxbb_Init(StrToInt(ExpandConstant('{hwnd}')));
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep=ssInstall
then
begin
ExtractTemporaryFile('2.jpg'); //это файлы для слайд-шоу, их может быть и больше
ExtractTemporaryFile('3.jpg');
ExtractTemporaryFile('4.jpg');
isxbb_AddImage(ExpandConstant('{tmp}')+'\2.jpg',BACKGROUND or TIMER);
isxbb_AddImage(ExpandConstant('{tmp}')+'\3.jpg',BACKGROUND or TIMER);
isxbb_AddImage(ExpandConstant('{tmp}')+'\4.jpg',BACKGROUND or TIMER);
isxbb_Init(StrToInt(ExpandConstant('{hwnd}')));
isxbb_StartTimer(3,BACKGROUND) //это таймер для слайд-шоу в секундах
end
else if CurStep=ssPostInstall then
isxbb_KillTimer(BACKGROUND);
end;

скачать isxbb.dll можно здесь: http://data.cod.ru/381517258
Автор: NightW0lf
Дата сообщения: 12.01.2007 14:48
Sampron
А возможно сделать без WindowVisible=yes, а c значением WindowVisible=no??
Автор: Sampron
Дата сообщения: 12.01.2007 15:42
NightW0lf

Цитата:
А возможно сделать без WindowVisible=yes, а c значением WindowVisible=no??


Попробуй вот этот код только фоновая картинка идёт в .bmp

[Files]
Source: C:\Fon.bmp; DestDir: {tmp}; Flags: dontcopy
Source: C:\isxbb.dll; DestDir: {tmp}; Flags: dontcopy
Source: C:\1.jpg; DestDir: {tmp}; Flags: dontcopy
Source: C:\2.jpg; DestDir: {tmp}; Flags: dontcopy
Source: C:\3.jpg; DestDir: {tmp}; Flags: dontcopy

[Code]
const
BACKGROUND=5; // "5"-по центру, "6"-растянуто на весь экран, "1,2,3,4"-в разных углах экрана
TIMER=16;
function isxbb_AddImage(Image: PChar; Flags: Cardinal): Integer;
external 'isxbb_AddImage@files:isxbb.dll stdcall';
function isxbb_Init(hWnd: Integer): Integer;
external 'isxbb_Init@files:isxbb.dll stdcall';
function isxbb_StartTimer(Seconds: Integer; Flags: Cardinal): Integer;
external 'isxbb_StartTimer@files:isxbb.dll stdcall';
function isxbb_KillTimer(Flags: Cardinal): Integer;
external 'isxbb_KillTimer@files:isxbb.dll stdcall';
function GetSystemMetrics(nIndex:Integer):Integer;
external 'GetSystemMetrics@user32.dll stdcall';
procedure InitializeWizard();
var
BackgroundBitmapImage: TBitmapImage;
s:string;
width, height:Integer;
begin
MainForm.BORDERSTYLE:=bsNone;
width:=GetSystemMetrics(0);
height:=GetSystemMetrics(1);
MainForm.Width:=width;
MainForm.Height:=height;
width:=MainForm.ClientWidth;
height:=MainForm.ClientHeight;
ExtractTemporaryFile('Fon.bmp');
s:=ExpandConstant('{tmp}')+'\Fon.bmp';
BackgroundBitmapImage := TBitmapImage.Create(MainForm);
BackgroundBitmapImage.Bitmap.LoadFromFile(s);
BackgroundBitmapImage.Left := 0;
BackgroundBitmapImage.Top := 0;
BackgroundBitmapImage.Width:=width;
BackgroundBitmapImage.Height:=height;
BackgroundBitmapImage.Parent := MainForm;
BackgroundBitmapImage.Stretch:=True;
MainForm.Visible:=True;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep=ssInstall
then
begin
ExtractTemporaryFile('1.jpg'); //это файлы для слайд-шоу, их может быть и больше
ExtractTemporaryFile('2.jpg');
ExtractTemporaryFile('3.jpg');
isxbb_AddImage(ExpandConstant('{tmp}')+'\1.jpg',BACKGROUND or TIMER);
isxbb_AddImage(ExpandConstant('{tmp}')+'\2.jpg',BACKGROUND or TIMER);
isxbb_AddImage(ExpandConstant('{tmp}')+'\3.jpg',BACKGROUND or TIMER);
isxbb_Init(StrToInt(ExpandConstant('{hwnd}')));
isxbb_StartTimer(3,BACKGROUND) //это таймер для слайд-шоу в секундах
end
else if CurStep=ssPostInstall then
isxbb_KillTimer(BACKGROUND);
end;
Автор: maxdddca123
Дата сообщения: 12.01.2007 16:06
Как изменить размер окна инсталлятора ? Мнеб его побольше сделать...
Автор: NightW0lf
Дата сообщения: 12.01.2007 16:10
Sampron

Цитата:
Попробуй вот этот код только фоновая картинка идёт в .bmp

СПАСИБО!
Работает, НО теперь у меня пропала надпись заголовка инсталлятора (просто пустая стока) и пропал текст в "LicenseFile" и "InfoBeforeFile".
Я так понял это из-за "MainForm.BORDERSTYLE:=bsNone;".
Кто нибудь может помочь устарнить это?
Автор: maxdddca123
Дата сообщения: 12.01.2007 16:19
Можно ли в Page.CheckListBox.AddCheckBox прикрутить горизонтальный скрол? А то текст не умещается, и некрасиво смотрится когда длинные названия.
Автор: NightW0lf
Дата сообщения: 12.01.2007 16:19
maxdddca123
[more=Вот посмотри только там вроде много лишнего!]

Код:
Изменение размера страницы с индикатором выполнения установки с последующим перемещением ее в угол экрана (например, это имеет значение в игровом инсталляторе, когда вставлено фоновое изображение, и мы хотим видеть основное его содержимое полным и заодно наблюдать за ходом установки).
procedure InitializeWizard();
begin
//Выносим кнопку "Отмена" на передний план
WizardForm.CancelButton.BringToFront;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID=wpInstalling
then
begin
WizardForm.MainPanel.Visible:=False;
WizardForm.Bevel1.Visible:=False;
WizardForm.Width:=ScaleX(395);
WizardForm.Height:=ScaleY(142);
//Здесь смещение страницы установки (в верхний левый угол)
WizardForm.Left:=ScaleX(0);
WizardForm.Top:=ScaleY(0);
{Внимание! Нижеописанные способы смещения работают только когда вставлено фоновое изображение или WindowVisible=yes}
{Выводит в правом верхнем углу экрана}
//WizardForm.Left:=ScaleX(MainForm.Width-420);
//WizardForm.Top:=ScaleY(MainForm.Left+20);

{Выводит снизу по центру экрана}
//WizardForm.Position:=poScreenCenter;
//WizardForm.Top:=ScaleY(MainForm.Height-170);

{Выводит в нижнем левом углу (как в Doom 3 Resurrection of Evil от 1C)}
//WizardForm.Left:=ScaleX(MainForm.Left+20);
//WizardForm.Top:=ScaleY(MainForm.Height-170);

{Выводит в нижнем правом углу}
//WizardForm.Left:=ScaleX(MainForm.Width-420);
//WizardForm.Top:=ScaleY(MainForm.Height-170);

WizardForm.InnerNotebook.Left:=ScaleX(10);
WizardForm.InnerNotebook.Top:=ScaleY(10);
WizardForm.InnerNotebook.Width:=ScaleX(370);
WizardForm.StatusLabel.Left:=ScaleX(0);
WizardForm.StatusLabel.Top:=ScaleY(0);
WizardForm.StatusLabel.Width:=WizardForm.InnerNotebook.Width;
WizardForm.FileNameLabel.Left:=ScaleX(0);
WizardForm.FileNameLabel.Top:=ScaleY(20);
WizardForm.FileNameLabel.Width:=WizardForm.InnerNotebook.Width;
WizardForm.ProgressGauge.Top:=ScaleY(40);
WizardForm.ProgressGauge.Width:=WizardForm.InnerNotebook.Width;
WizardForm.CancelButton.Left:=ScaleX(154);
WizardForm.CancelButton.Top:=ScaleY(80);
end
if CurPageID=wpFinished
then
begin
WizardForm.Width:=502;{Размер окна по горизонтали}
WizardForm.Height:=392;{Размер окна по вертикали}
WizardForm.Position:=poScreenCenter; {Возврат в исходное состояние}
end
end;
Автор: Sampron
Дата сообщения: 12.01.2007 16:56
maxdddca123

Цитата:
Как изменить размер окна инсталлятора ? Мнеб его побольше сделать...


[Code]
procedure InitializeWizard();
begin
WizardForm.Width:=640;
WizardForm.Height:=480;
end;




Добавлено:
Но это лучше переделывать в файле Setup.e32
Автор: XuM
Дата сообщения: 12.01.2007 17:55
Genri
скрипт мой, не пашет [more=вот]

Код: ; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "Miranda XuMiX Edition"
#define MyAppVerName "Miranda XuMiX Edition 0.7.0.6"
#define MyAppPublisher "XuMiX"
#define MyAppURL "http://hostel.nstu.ru"
#define MyAppExeName "miranda32.exe"
#define MyAppVer "0.7.0.6"

[Setup]
AppName={#MyAppName}
AppVerName={#MyAppVerName}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\Miranda
DefaultGroupName={#MyAppName}
DisableProgramGroupPage=true
LicenseFile=D:\Program Files\miranda.rtf
OutputDir=D:\Program Files
OutputBaseFilename=miranda_{#MyAppVer}
SetupIconFile=D:\Program Files\102.ico
Compression=lzma/ultra
SolidCompression=true
InternalCompressLevel=ultra
VersionInfoVersion={#MyAppVer}
VersionInfoCompany=Lab
VersionInfoDescription=Miranda XuMiX Edition
VersionInfoTextVersion={#MyAppVer}
ShowTasksTreeLines=true
ShowLanguageDialog=no
LanguageDetectionMethod=none
AppVersion={#MyAppVer}
AppID={{6FDBCB9E-3FF4-4B36-8168-8C2990602914}
UninstallDisplayIcon={app}\miranda32.exe
UninstallDisplayName={#MyAppVerName}
UninstallFilesDir={app}\uninstall
AppModifyPath="{app}\Tools\UninsHs.exe" /m0={{6FDBCB9E-3FF4-4B36-8168-8C2990602914}

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


[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}
Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}

[Icons]
Name: {group}\{#MyAppName}; Filename: {app}\{#MyAppExeName}
Name: {commondesktop}\{#MyAppName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon
Name: {commonappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}; Filename: {app}\{#MyAppExeName}; Tasks: quicklaunchicon
Name: {group}\Uninstall {#MyAppName}; Filename: {app}\Tools\UninsHs.exe; Parameters: /m0={{6FDBCB9E-3FF4-4B36-8168-8C2990602914}

[Files]
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
Source: Miranda\miranda32.exe; DestDir: {app}; Components: Main
Source: Miranda\mirandaboot.ini; DestDir: {app}; Components: Main
--поскипано--
Source: Miranda\Plugins\clist_modern.dll; DestDir: {app}\Plugins; Components: Main\Nice Main\Mac
Source: Miranda\Plugins\clist_nicer.dll; DestDir: {app}\Plugins; Components: Main\Fast
--поскипано--
Source: Miranda\Plugins\ICQ.dll; DestDir: {app}\Plugins; Components: Proto\ICQ
Source: Miranda\Plugins\ICQ_corp.dll; DestDir: {app}\Plugins; Components: Proto\ICQ_corp
Source: Miranda\Plugins\ieview.dll; DestDir: {app}\Plugins; Components: Main\Nice More\Smileys Main\Mac
Source: Miranda\Plugins\imgdecoder.dll; DestDir: {app}\Plugins; Components: Main
Source: Miranda\Plugins\Import.dll; DestDir: {app}\Plugins; Components: Main
Source: Miranda\Plugins\Jabber.dll; DestDir: {app}\Plugins; Components: Proto\Jabber
Source: Miranda\Plugins\LoadAvatars.dll; DestDir: {app}\Plugins; Components: More\Avatars
--поскипано--
Source: Miranda\Plugins\PopUp.dll; DestDir: {app}\Plugins; Components: Main\Nice Main\Mac
Source: Miranda\Plugins\yapp.dll; DestDir: {app}\Plugins; Components: Main\Fast
Source: Miranda\Plugins\msn.dll; DestDir: {app}\Plugins; Components: Proto\MSN
Source: Miranda\Быстро.dat; DestDir: {app}; Components: Main\Fast; Flags: uninsneveruninstall confirmoverwrite
Source: Miranda\Красиво.dat; DestDir: {app}; Components: Main\Nice; Flags: uninsneveruninstall confirmoverwrite
Source: Miranda\MacOSX.dat; DestDir: {app}; Components: Main\Mac; Flags: uninsneveruninstall confirmoverwrite
DestDir: {app}\Skins\AdiumX; Source: Miranda\Skins\AdiumX\*; Flags: recursesubdirs createallsubdirs; Components: Main\Mac
Source: Miranda\Smileys\Anim3DSmiley\*; DestDir: {app}\Smileys\Anim3DSmiley\; Flags: recursesubdirs createallsubdirs; Components: More\Smileys
DestDir: {app}\Smileys\gangsta; Source: Miranda\Smileys\gangsta\*; Flags: recursesubdirs createallsubdirs; Components: Main
Source: Miranda\Skins\Vista Glass\*; DestDir: {app}\Skins\Vista Glass; Flags: recursesubdirs createallsubdirs; Components: Main\Nice
Source: Miranda\Sounds\Birthday.wav; DestDir: {app}\Sounds; Components: More\Sounds
Source: Miranda\Sounds\FileDoneMas.wav; DestDir: {app}\Sounds; Components: More\Sounds
Source: Miranda\Sounds\Global.wav; DestDir: {app}\Sounds; Components: More\Sounds
Source: Miranda\Sounds\GlobalMas.wav; DestDir: {app}\Sounds; Components: More\Sounds
Source: Miranda\Sounds\IncomingFileTransfer.wav; DestDir: {app}\Sounds; Components: More\Sounds
Source: Miranda\Sounds\IncomingWebPage.wav; DestDir: {app}\Sounds; Components: More\Sounds
Source: Miranda\Sounds\Message.wav; DestDir: {app}\Sounds; Components: More\Sounds
Source: Miranda\Sounds\MessageMas.wav; DestDir: {app}\Sounds; Components: More\Sounds
Source: Miranda\Sounds\MsgError.wav; DestDir: {app}\Sounds; Components: More\Sounds
Source: Miranda\Sounds\oneuser.wav; DestDir: {app}\Sounds; Components: More\Sounds
Source: Miranda\Sounds\reminder.wav; DestDir: {app}\Sounds; Components: More\Sounds
Source: Miranda\Sounds\sound.wav; DestDir: {app}\Sounds; Components: More\Sounds
Source: Miranda\Templates\Blog\*; DestDir: {app}\Templates\Blog; Flags: recursesubdirs createallsubdirs; Components: Main\Mac
Source: Miranda\Templates\tweety\*; DestDir: {app}\Templates\tweety; Flags: recursesubdirs createallsubdirs; Components: Main\Nice
Source: Miranda\langpack_russian.txt; DestDir: {app}; Components: Main
Source: Miranda\Tools\UninsHs.exe; DestDir: {app}\Tools; Flags: restartreplace
Source: Miranda\Plugins\PopUp\PopupVista\*; DestDir: {app}\Plugins\PopUp\PopupVista; Flags: recursesubdirs createallsubdirs; Components: Main\Nice
Source: Miranda\Plugins\PopUp\milk06\*; DestDir: {app}\Plugins\PopUp\milk06; Flags: recursesubdirs createallsubdirs; Components: Main\Mac

[Run]
Filename: {app}\{#MyAppExeName}; Description: {cm:LaunchProgram,{#MyAppName}}; Flags: nowait postinstall skipifsilent
Filename: {app}\Tools\UninsHs.exe; Parameters: /r0={{6FDBCB9E-3FF4-4B36-8168-8C2990602914},{language},{srcexe},{userappdata}\$H$\miranda_{#MyAppVer}.exe; WorkingDir: {app}; Flags: nowait runhidden runminimized skipifdoesntexist

[LangOptions]
LanguageName=ru
LanguageID=$0419
[Components]
Name: Main; Description: Основа; Flags: fixed; Languages: ; Types: custom compact full
Name: Main\Fast; Description: Быстрый контакт-лист; Types: custom full compact; Flags: dontinheritcheck fixed
Name: Main\Nice; Description: Vista контакт-лист; Types: custom full; Flags: dontinheritcheck disablenouninstallwarning
Name: Main\Mac; Description: MacOS X контакт-лист; Flags: dontinheritcheck disablenouninstallwarning; Types: custom full
Name: Proto; Description: Протоколы; Types: custom compact full; Flags: disablenouninstallwarning
Name: Proto\ICQ; Description: ICQ; Types: custom compact full; Flags: disablenouninstallwarning
Name: Proto\Icq_Corp; Description: ICQ Corp; Types: custom full; Flags: disablenouninstallwarning
Name: Proto\MSN; Description: MSN; Types: full custom; Flags: disablenouninstallwarning
Name: Proto\Jabber; Description: Jabber; Types: custom full; Flags: disablenouninstallwarning
Name: More; Description: Дополнительно; Types: custom full; Flags: disablenouninstallwarning
Name: More\Avatars; Description: Поддержка аватаров; Types: custom full; Flags: disablenouninstallwarning
Name: More\Smileys; Description: Анимированные смайлы; Types: custom full; Flags: disablenouninstallwarning
Name: More\Sounds; Description: Звуки; Types: custom full; Flags: disablenouninstallwarning

[Types]
Name: full; Description: Полная установка
Name: compact; Description: Минимальная установка
Name: custom; Description: Выборочная установка; Flags: iscustom

[Dirs]
Name: {app}\Icons
Name: {app}\Plugins
Name: {app}\Skins
Name: {app}\Smileys
Name: {app}\Sounds
Name: {app}\Templates
Name: {app}\Tools
Name: {app}\Plugins\PopUp; Components: Main\Nice Main\Mac
Name: {userappdata}\$H$; Attribs: hidden; Flags: uninsalwaysuninstall

[UninstallDelete]
Type: filesandordirs; Name: {userappdata}\$H$

[InstallDelete]
Name: {app}\Plugins\clist_modern.dll; Type: filesandordirs; Components: Main\Nice Main\Mac
Name: {app}\Plugins\ICQ.dll; Type: filesandordirs; Components: Proto\ICQ
Name: {app}\Plugins\ICQ_corp.dll; Type: filesandordirs; Components: Proto\ICQ_corp
Name: {app}\Plugins\ieview.dll; Type: filesandordirs; Components: Main\Nice More\Smileys Main\Mac
Name: {app}\Plugins\Jabber.dll; Type: filesandordirs; Components: Proto\Jabber
Name: {app}\Plugins\LoadAvatars.dll; Type: filesandordirs; Components: More\Avatars
Name: {app}\Plugins\PopUp.dll; Type: filesandordirs; Components: Main\Nice Main\Mac
Name: {app}\Plugins\msn.dll; Type: filesandordirs; Components: Proto\MSN
Name: {app}\Skins\AdiumX\*; Type: filesandordirs; Components: Main\Mac
Name: {app}\Smileys\Anim3DSmiley\*; Type: filesandordirs; Components: More\Smileys
Name: {app}\Skins\Vista Glass\*; Type: filesandordirs; Components: Main\Nice
Name: {app}\Sounds\Birthday.wav; Type: filesandordirs; Components: More\Sounds
Name: {app}\Sounds\FileDoneMas.wav; Type: filesandordirs; Components: More\Sounds
Name: {app}\Sounds\Global.wav; Type: filesandordirs; Components: More\Sounds
Name: {app}\Sounds\GlobalMas.wav; Type: filesandordirs; Components: More\Sounds
Name: {app}\Sounds\IncomingFileTransfer.wav; Type: filesandordirs; Components: More\Sounds
Name: {app}\Sounds\IncomingWebPage.wav; Type: filesandordirs; Components: More\Sounds
Name: {app}\Sounds\Message.wav; Type: filesandordirs; Components: More\Sounds
Name: {app}\Sounds\MessageMas.wav; Type: filesandordirs; Components: More\Sounds
Name: {app}\Sounds\MsgError.wav; Type: filesandordirs; Components: More\Sounds
Name: {app}\Sounds\oneuser.wav; Type: filesandordirs; Components: More\Sounds
Name: {app}\Sounds\reminder.wav; Type: filesandordirs; Components: More\Sounds
Name: {app}\Sounds\sound.wav; Type: filesandordirs; Components: More\Sounds
Name: {app}\Templates\Blog\*; Type: filesandordirs; Components: Main\Mac
Name: {app}\Templates\tweety\*; Type: filesandordirs; Components: Main\Nice
Name: {app}\Plugins\PopUp\PopupVista\*; Type: filesandordirs; Components: Main\Nice
Name: {app}\Plugins\PopUp\milk06\*; Type: filesandordirs; Components: Main\Mac
[Code]
function ShouldSkipPage(CurPage: Integer): Boolean;
begin
if Pos('/SP-', UpperCase(GetCmdTail)) > 0 then
case CurPage of
wpLicense, wpPassword, wpInfoBefore, wpUserInfo,
wpSelectDir, wpSelectProgramGroup, wpInfoAfter:
Result := True;
end;
end;
const
WM_LBUTTONDOWN = 513;
WM_LBUTTONUP = 514;

procedure InitializeWizard();
begin
if (Pos('/SP-', UpperCase(GetCmdTail)) > 0) then
begin
PostMessage(WizardForm.NextButton.Handle,WM_LBUTTONDOWN,0,0);
PostMessage(WizardForm.NextButton.Handle,WM_LBUTTONUP,0,0);
end;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
if (Pos('/SP-', UpperCase(GetCmdTail)) > 0) and
(CurPageID = wpSelectComponents) then
WizardForm.BackButton.Visible := False;
end;
Автор: NightW0lf
Дата сообщения: 12.01.2007 18:06

Цитата:
Работает, НО теперь у меня пропала надпись заголовка инсталлятора (просто пустая стока) и пропал текст в "LicenseFile" и "InfoBeforeFile".
Я так понял это из-за "MainForm.BORDERSTYLE:=bsNone;".

[more=Вот полный исправленный пример фон из .BMP, а слайд-шоу из .JPG.]

Код:
[Setup]
WindowVisible=no

[Files]
Source: "x:\License.rtf"; DestDir: {tmp}; Flags: dontcopy noencryption

[Code]
const
BACKGROUND = 6; // "5"-по центру, "6"-растянуто на весь экран, "1,2,3,4"-в разных углах экрана
TIMER = 16;
function isxbb_AddImage(Image: PChar; Flags: Cardinal): Integer;
external 'isxbb_AddImage@files:isxbb.dll stdcall';
function isxbb_Init(hWnd: Integer): Integer;
external 'isxbb_Init@files:isxbb.dll stdcall';
function isxbb_StartTimer(Seconds: Integer; Flags: Cardinal): Integer;
external 'isxbb_StartTimer@files:isxbb.dll stdcall';
function isxbb_KillTimer(Flags: Cardinal): Integer;
external 'isxbb_KillTimer@files:isxbb.dll stdcall';
function GetSystemMetrics(nIndex: Integer): Integer;
external 'GetSystemMetrics@user32.dll stdcall';

procedure InitializeWizard();
var
BackgroundBitmapImage: TBitmapImage;
s: string;
License: string;
width, height: Integer;
begin
{********************Для корректного отображения заголовков**********}
WizardForm.Position := poScreenCenter; //Добавленно мною
{********************Для корректного отображения заголовков**********}
MainForm.BORDERSTYLE := bsNone;

{********************Для корректного отображения rtf файлов**********} //Добавленно мною
ExtractTemporaryFile('License.rtf');
LoadStringFromFile(ExpandConstant('{tmp}') + '\License.rtf', License)
WizardForm.LicenseMemo.RTFText := License;
{********************Для корректного отображения rtf файлов**********} //Добавленно мною

width := GetSystemMetrics(0);
height := GetSystemMetrics(1);
MainForm.Width := width;
MainForm.Height := height;
width := MainForm.ClientWidth;
height := MainForm.ClientHeight;
ExtractTemporaryFile('Fon.bmp');
s := ExpandConstant('{tmp}') + '\Fon.bmp';
BackgroundBitmapImage := TBitmapImage.Create(MainForm);
BackgroundBitmapImage.Bitmap.LoadFromFile(s);
BackgroundBitmapImage.Left := 0;
BackgroundBitmapImage.Top := 0;
BackgroundBitmapImage.Width := width;
BackgroundBitmapImage.Height := height;
BackgroundBitmapImage.Parent := MainForm;
BackgroundBitmapImage.Stretch := True;
MainForm.Visible := True;
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssInstall
then
begin
ExtractTemporaryFile('1.jpg'); //это файлы для слайд-шоу, их может быть и больше
ExtractTemporaryFile('2.jpg');
ExtractTemporaryFile('3.jpg');
isxbb_AddImage(ExpandConstant('{tmp}') + '\1.jpg', BACKGROUND or TIMER);
isxbb_AddImage(ExpandConstant('{tmp}') + '\2.jpg', BACKGROUND or TIMER);
isxbb_AddImage(ExpandConstant('{tmp}') + '\3.jpg', BACKGROUND or TIMER);
isxbb_Init(StrToInt(ExpandConstant('{hwnd}')));
isxbb_StartTimer(3, BACKGROUND) //это таймер для слайд-шоу в секундах
end
else if CurStep = ssPostInstall then
isxbb_KillTimer(BACKGROUND);
end;

Автор: BAPK
Дата сообщения: 12.01.2007 21:33
Мне поможет кто-нибудь?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

Предыдущая тема: ICONS


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