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

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

Автор: Denis_Kokyev
Дата сообщения: 22.01.2007 13:26
Хотелось бы узнать, можно ли в принципе такое сделать: при выборе
компонентов чтоб ниже строчки выбора появлялась бы соответствующая картинка?
http://img301.imageshack.us/img301/1866/qqq1nw.jpg
Автор: Sero
Дата сообщения: 22.01.2007 13:58
Помогите пожалуйста с этим кодом:

Код:
procedure InitializeWizard();
var Form :TSetupForm;
Text :TNewStaticText;
begin
Text := TNewStaticText.Create(Form);
Text.Top := 5;
Text.Left := 5;
Text.Parent := Form;
Text.Caption := 'Starting Inno Setup Wizard...';
Text.AutoSize := False;
Form := CreateCustomForm;
Form.BorderStyle := bsNone;
Form.Width := 250;
Form.Height := 70;
Form.Center;
Form.Show;
ExtractTemporaryFile('50 Cent-P.I.M.P (nude version).avi');
Form.Close;
end;
Автор: Sampron
Дата сообщения: 22.01.2007 14:12
Sero

Цитата:
Как можно сделать чтобы WizardSmallImageFile в инстталяторе был 170х55 а не 55х55.

[Code]
procedure InitializeWizard();
begin
WizardForm.WizardSmallBitmapImage.Left:=327;
WizardForm.WizardSmallBitmapImage.Top:=0;
WizardForm.WizardSmallBitmapImage.Width:=170;
WizardForm.WizardSmallBitmapImage.Height:=58;
WizardForm.PageDescriptionLabel.Width:=285;
WizardForm.PageNameLabel.Width:=300;
end;
Автор: Sero
Дата сообщения: 22.01.2007 14:31
Sampron
Спасибо работает!
Автор: EagleSH
Дата сообщения: 22.01.2007 14:41
вычитал в ньюсгруппах инно:

TLabel.Transparent will be exposed in the next version.
Автор: Sero
Дата сообщения: 22.01.2007 14:42
И еще такой вопрос: как переместить WizardImageFile на правую сторону инстталятора.
Автор: Sampron
Дата сообщения: 22.01.2007 15:15
Sero

Цитата:
И еще такой вопрос: как переместить WizardImageFile на правую сторону инстталятора.

[Code]
procedure InitializeWizard();
var
Page: TWizardPage;
begin
WizardForm.WizardBitmapImage.Left:=333; //Страница Приветствия
WizardForm.WelcomeLabel1.Left:=20;
WizardForm.WelcomeLabel2.Left:=20;
WizardForm.WizardBitmapImage2.Left:=333; //Страница Финиша
WizardForm.FinishedLabel.Left:=20;
WizardForm.FinishedHeadingLabel.Left:=20;
WizardForm.RunList.Left:=20;
WizardForm.YesRadio.Left:=20;
WizardForm.NoRadio.Left:=20;
end;

Добавлено:
EagleSH

Цитата:
вычитал в ньюсгруппах инно:

TLabel.Transparent will be exposed in the next version.

Хм неплохо будем ждать.
Автор: Denis_Kokyev
Дата сообщения: 22.01.2007 15:57
И вот что мне ещё не понятно:
Для того, чтоб программа ставилась только под XP, вычитал что делать
надо так:

Код:
function InitializeSetup(): Boolean;

begin

if UsingWinNT=False
then
Result:=True
else
begin
MsgBox('I?ia?aiia ii?ao auou onoaiiaeaia oieuei ia NT ieaooi?io!', mbError, mb_OK);
Result:=False;
end;

end;
Автор: Genri
Дата сообщения: 22.01.2007 16:38
Denis_Kokyev -- добавь Exit; в первое условие:

if UsingWinNT=False
then
Result:=True
else
begin
MsgBox('I?ia?aiia ii?ao auou onoaiiaeaia oieuei ia NT ieaooi?io!', mbError, mb_OK);
Result:=False;
Exit;
end;


Добавлено:
и почитай в хелпе о MinVersion. Может это тебе лучше подойдет.
Автор: 842
Дата сообщения: 22.01.2007 18:48
Подскажите пожалуйста, если кто знает...
Как убрать диалог выбора пользователя, от имени которого делается установка?
Немного поясню - мне нужно сделать установку от текущего пользователя.
Программа пишется для пользователей, которые не имеют админские прова и окошко не нужно...
Заранее Спасибо!
Автор: Sampron
Дата сообщения: 22.01.2007 19:12
842

Цитата:
Подскажите пожалуйста, если кто знает...
Как убрать диалог выбора пользователя, от имени которого делается установка?

[Setup]
UserInfoPage=no
Автор: Sero
Дата сообщения: 22.01.2007 19:17
Sampron
Спасибо, все OK.
Автор: 842
Дата сообщения: 22.01.2007 19:30
>Sampron
Спасибо!
Как раз то, что нужно...
Автор: NightW0lf
Дата сообщения: 23.01.2007 13:17
Genri
Посмотри личку (последний вопрос на ту тему).


Добавлено:
ВНИМАНИЕ ВСЕМ!

Вот примеры кнопок управления .mp3 музыкой.

[more=Пример 1 – музыка воспроизводится только при нажатии кнопки «play»]

Код:
[Setup]
AppName=My Program
AppVerName=My Program 1.5
AppPublisher=My Company, Inc.
DefaultDirName=C:\example

[Files]
Source: BASS.dll; DestDir: " {tmp} "; Flags: dontcopy noencryption
Source: sound.mp3; DestDir: "{tmp}"; Flags: dontcopy noencryption nocompression



Код:
const
BASS_ACTIVE_STOPPED = 0;
BASS_ACTIVE_PLAYING = 1;
BASS_ACTIVE_STALLED = 2;
BASS_ACTIVE_PAUSED = 3;
BASS_SAMPLE_LOOP = 4;


var
mp3Handle: HWND;
mp3Name: string;


function BASS_Init(device: Integer; freq, flags: DWORD; win: hwnd; CLSID: Integer): Boolean;
external 'BASS_Init@files:BASS.dll stdcall delayload';

function BASS_StreamCreateFile(mem: BOOL; f: PChar; offset: DWORD; length: DWORD; flags: DWORD): DWORD;
external 'BASS_StreamCreateFile@files:BASS.dll stdcall delayload';

function BASS_Start(): Boolean;
external 'BASS_Start@files:BASS.dll stdcall delayload';

function BASS_ChannelPlay(handle: DWORD; restart: BOOL): Boolean;
external 'BASS_ChannelPlay@files:BASS.dll stdcall delayload';

function BASS_ChannelIsActive(handle: DWORD): Integer;
external 'BASS_ChannelIsActive@files:BASS.dll stdcall delayload';

function BASS_ChannelPause(handle: DWORD): Boolean;
external 'BASS_ChannelPause@files:BASS.dll stdcall delayload';

function BASS_Stop(): Boolean;
external 'BASS_Stop@files:BASS.dll stdcall delayload';

function BASS_Pause(): Boolean;
external 'BASS_Pause@files:BASS.dll stdcall delayload';

function BASS_Free(): Boolean;
external 'BASS_Free@files:BASS.dll stdcall delayload';


function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('BASS.dll');
ExtractTemporaryFile('sound.mp3');
mp3Name := ExpandConstant('{tmp}\sound.mp3');
mp3Handle := BASS_StreamCreateFile(FALSE, PChar(mp3Name), 0, 0, BASS_SAMPLE_LOOP);
Result := True;
end;


procedure PlayButtonOnClick(Sender: TObject);
begin
case BASS_ChannelIsActive(mp3Handle) of
BASS_ACTIVE_PAUSED:
begin
BASS_ChannelPlay(mp3Handle, False);
end;
BASS_ACTIVE_STOPPED:
begin
BASS_Init(-1, 44100, 0, 0, 0);
mp3Handle := BASS_StreamCreateFile(FALSE, PChar(mp3Name), 0, 0, BASS_SAMPLE_LOOP);
BASS_Start();
BASS_ChannelPlay(mp3Handle, False);
end;
end;
end;


procedure PauseButtonOnClick(Sender: TObject);
begin
BASS_ChannelPause(mp3Handle);
end;


procedure StopButtonOnClick(Sender: TObject);
begin
BASS_Stop();
BASS_Free();
end;


procedure InitializeWizard();
var
Name1: string;
PlayButton, PauseButton, StopButton: TButton;
Text: TNewStaticText;
Panel1: TPanel;
begin
WizardForm.Position := poScreenCenter;
WizardForm.CancelButton.BringToFront;
begin
Panel1 := TPanel.Create(WizardForm);
with Panel1 do
begin
Panel1.Parent := WizardForm;
Panel1.Left := ScaleX(1);
Panel1.Top := ScaleY(315);
Panel1.Width := ScaleX(165);
Panel1.Height := ScaleY(46);
Panel1.TabOrder := 0;
Panel1.Color := clWhite;
Panel1.BevelInner := bvLowered;
Panel1.BevelOuter := bvRaised;
Panel1.BorderStyle := bsSingle;

PlayButton := TButton.Create(WizardForm);
PlayButton.Left := 5;
PlayButton.Top := 335;
PlayButton.Width := 50;
PlayButton.Height := 20;
PlayButton.Caption := 'play';
PlayButton.OnClick := @PlayButtonOnClick;
PlayButton.Parent := WizardForm;
PlayButton.Cursor := crHand;

PauseButton := TButton.Create(WizardForm);
PauseButton.Left := 58;
PauseButton.Top := 335;
PauseButton.Width := 50;
PauseButton.Height := 20;
PauseButton.Caption := 'pause';
PauseButton.OnClick := @PauseButtonOnClick;
PauseButton.Parent := WizardForm;
PauseButton.Cursor := crHand;

StopButton := TButton.Create(WizardForm);
StopButton.Left := 111;
StopButton.Top := 335;
StopButton.Width := 50;
StopButton.Height := 20;
StopButton.Caption := 'stop';
StopButton.OnClick := @StopButtonOnClick;
StopButton.Parent := WizardForm;
StopButton.Cursor := crHand;

Text := TNewStaticText.Create(WizardForm);
Text.Caption := 'music';
Text.Parent := WizardForm;
Text.Font.Style := Text.Font.Style + [fsUnderline];
Text.Font.Color := clNavy;
Text.Top := 319;
Text.Left := 71;
Text.Color := clWhite;
end;
end;
end;


procedure DeinitializeSetup();
begin
BASS_Stop();
BASS_Free();
end;
Автор: Xom9I4oK
Дата сообщения: 23.01.2007 14:48
NightW0lf

Цитата:
ВНИМАНИЕ ВСЕМ!

Вот примеры кнопок управления .mp3 музыкой.

Пример 1 – музыка воспроизводится только при нажатии кнопки «play»

Респект - буду пробовать!

Кто-нибудь знает можно ли в WizardImageFile подсунуть jpg файл вместо bmp и как это реализовать?! И еще я немного модифицировал скин копирующий инсталлшилд - как сделать чтобы во время установки окно инсталлятора сворачивалось в маленькую полоску с прогрессом и помещалась в верхней левый угол. Это описано в руководстве и у меня это работало до того как я перешел на новый скин ((.
Автор: NightW0lf
Дата сообщения: 23.01.2007 16:06
Genri
Посмотри личку.
Автор: Sampron
Дата сообщения: 23.01.2007 16:09
NightW0lf

Цитата:
Вот примеры кнопок управления .mp3 музыкой.

Круто! пашет но только высокие частоты немного фонят а так неплохо.

Xom9I4oK

Цитата:
Кто-нибудь знает можно ли в WizardImageFile подсунуть jpg файл вместо bmp и как это реализовать?! И еще я немного модифицировал скин копирующий инсталлшилд - как сделать чтобы во время установки окно инсталлятора сворачивалось в маленькую полоску с прогрессом и помещалась в верхней левый угол. Это описано в руководстве и у меня это работало до того как я перешел на новый скин ((.


Всё прекрасно работает при любом разрешении и даже без фонового окна.
Вот пример:
[Code]
function GetSystemMetrics(nIndex:Integer):Integer;
external 'GetSystemMetrics@user32.dll stdcall';

procedure InitializeWizard();
begin
WizardForm.CancelButton.BringToFront;
WizardForm.NextButton.BringToFront;
end;

procedure CurPageChanged(CurPageID: Integer);
var i:integer;
begin
if CurPageID=wpInstalling then
begin
WizardForm.BorderStyle:=False;
WizardForm.MainPanel.Visible:=False;
WizardForm.Width:=ScaleX(320);
WizardForm.Height:=ScaleY(100);
WizardForm.InnerNotebook.Left:=ScaleX(7);
WizardForm.InnerNotebook.Top:=ScaleY(7);
WizardForm.InnerNotebook.Width:=ScaleX(300);
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(17);
WizardForm.FileNameLabel.Width:=WizardForm.InnerNotebook.Width;
WizardForm.ProgressGauge.Top:=ScaleY(37);
WizardForm.ProgressGauge.Width:=WizardForm.InnerNotebook.Width;
WizardForm.CancelButton.Left:=ScaleX(122);
WizardForm.CancelButton.Top:=ScaleY(70);
WizardForm.Left:=GetSystemMetrics(16)-(330);
WizardForm.Top:=GetSystemMetrics(17)-(84);
end
if CurPageID=wpFinished then
begin
WizardForm.BorderStyle:=True;
WizardForm.Width:=696;
WizardForm.Height:=528;
WizardForm.Position:=poScreenCenter;
end
end;

Размеры и расположение элементов подбирай сам под свой скин.
Автор: Sero
Дата сообщения: 23.01.2007 20:08
Люди, как мне изменить эту картинку?
Плизз.
Автор: Sampron
Дата сообщения: 23.01.2007 20:35
Sero

Цитата:
Люди, как мне изменить эту картинку?
Плизз.

Никак, её можно убрать а изменить навряд ли.
Автор: EagleSH
Дата сообщения: 23.01.2007 21:57
кста народ, а нельзя ли свой собственный шрифт бандить?
Автор: Sero
Дата сообщения: 23.01.2007 22:20
Sampron

Цитата:
Никак, её можно убрать а изменить навряд ли.

А убрать, как?
Автор: Sampron
Дата сообщения: 23.01.2007 23:43
Sero

Цитата:
А убрать, как?

В файле Setup.e32 сместить за пределы страницы.
Автор: Zabo4ka
Дата сообщения: 24.01.2007 07:33
Такой вопрос возник.
Мне надо часть файлов вынимать из архива.SFX или RAR-без разницы.Тоесть: в инсталляторе лежит этот архив с флагом nocompression, и мне надо,чтобы в процессе установки,этот архив распаковывался в {app}, и удалялся.Почитал руководство,но у меня получилось, что SFX запускается после завершения инсталляции, т.е. вместо программы((
Автор: Sanyk36
Дата сообщения: 24.01.2007 07:48
NightW0lf
А как бы собрать твой код

Цитата:
Вот примеры кнопок управления .mp3 музыкой.
Пример 2 – музыка воспроизводится сразу при запуске

и этот вместе: http://forum.ru-board.com/topic.cgi?forum=5&topic=4801&start=1360#19

Автор: Genri
Дата сообщения: 24.01.2007 10:24
Zabo4ka
Цитата:
у меня получилось, что SFX запускается после завершения инсталляции, т.е. вместо программы
-- а можно посмотреть пример твоего кода? Не совсем понятно, что имеется ввиду под "запускается вместо программы"
Автор: in0
Дата сообщения: 24.01.2007 13:43
Может такой вопрос уже задавался ранее, но весь форум перечитать пока не получается.

Можно ли с помощью InnoSetup создать многотомную инсталляцию.
Т.е. требуется чтобы каждая часть инсталляционного дистрибутива не превышала определенного размера (в частности дискеты 3'5).
Если можно реализовать каким-то другим способом (например, использовать какой-либо архиватор, а уже потом только одну его часть помещать в дистрибутив, а остальные помещать рядом, и при этом из скрипта обрабатывать такие вещи), то буду благодарен за любые предложения в решении этого вопроса.
Автор: EagleSH
Дата сообщения: 24.01.2007 13:49
in0
DiskSpanning=true
DiskSliceSize=1457664
Автор: in0
Дата сообщения: 24.01.2007 14:01
Огромное спасибо,EagleSH!
Автор: Zabo4ka
Дата сообщения: 24.01.2007 15:32
Genri
Просто запускаю его из секции Run да и всё.
А хотелось-бы чтобы он сам в процессе установке запускался,распаковывался куда надо и удалялся.
Автор: Xom9I4oK
Дата сообщения: 24.01.2007 16:22
Может немного странный вопрос )): как сделать так чтобы маленький файл инсталлировался около полуминуты или больше, чтобы можно было нормально просмотреть слайд шоу?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

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


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