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

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

Автор: boss911
Дата сообщения: 06.05.2007 00:14
Sero


Код: if WizardSilent=False then
begin
Автор: cs137
Дата сообщения: 06.05.2007 00:23

Как сделать подпись (желательно для всех страниц)?
Автор: boss911
Дата сообщения: 06.05.2007 00:37
cs137


Код: [Messages]

BeveledLabel=Copyright 2007 © Boss911
Автор: cs137
Дата сообщения: 06.05.2007 11:03
boss911
Спасибо
Автор: FLIER
Дата сообщения: 06.05.2007 12:21
Sampron
Код сдесь
Автор: Sero
Дата сообщения: 06.05.2007 12:34
boss911

Цитата:
Только вот очень хочется, чтоб этот параметр задавался через запуск инсталла из командной строки!

Не думаю что возможно такое!
Автор: Sampron
Дата сообщения: 06.05.2007 14:03
FLIER
В процедуре InitializeWizard удали эту строчку:
WizardForm.Position:=poScreenCenter
и заместь её вставь эту:
WizardForm.Caption:='Установка Command and Conquer 3 Tiberium Wars™'
Автор: Sero
Дата сообщения: 06.05.2007 19:31
boss911

Цитата:
Не думаю что возможно такое!

Беру свои слова обратно!
Вот [more=код]

Код:
[Setup]
AppName=My Program
AppVerName=My Program 1.5
AppPublisher=My Company, Inc.
AppPublisherURL=http://www.mycompany.com
AppSupportURL=http://www.mycompany.com
AppUpdatesURL=http://www.mycompany.com
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Files]
Source: "C:\Program Files\Inno Setup Scripting v5.0\Addons\Libraries\BASSMOD.dll"; DestDir: "{tmp}"; Flags: dontcopy
Source: "music.xm"; DestDir: "{tmp}"; Flags: dontcopy
Source: {sys}\*.dll; Destdir:{tmp}; flags:external

[Code]
var NoMusic: Boolean;
const
BASS_MUSIC_RAMP = 1; // normal ramping (only for Fast Tracker .xm)
BASS_MUSIC_RAMPS = 2; // sensitive ramping (only for Fast Tracker .xm)
BASS_MUSIC_LOOP = 4; // loop music
BASS_MUSIC_FT2MOD = 16; // play .MOD as FastTracker 2 does
BASS_MUSIC_PT1MOD = 32; // play .MOD as ProTracker 1 does
BASS_MUSIC_SURROUND     = 512; // surround sound
BASS_MUSIC_SURROUND2     = 1024; // surround sound (mode 2)

function BASSMOD_Init(device: Integer; freq, flags: DWORD): Boolean;
external 'BASSMOD_Init@files:BASSMOD.dll stdcall delayload';

procedure BASSMOD_MusicFree();
external 'BASSMOD_MusicFree@files:BASSMOD.dll stdcall delayload';

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

function BASSMOD_MusicPlay(): Boolean;
external 'BASSMOD_MusicPlay@files:BASSMOD.dll stdcall delayload';

function BASSMOD_MusicGetPosition(): Boolean;
external 'BASSMOD_MusicGetPosition@files:BASSMOD.dll stdcall delayload';

function BASSMOD_MusicStop(): Boolean;
external 'BASSMOD_MusicStop@files:BASSMOD.dll stdcall delayload';

function BASSMOD_MusicPause(): Boolean;
external 'BASSMOD_MusicPause@files:BASSMOD.dll stdcall delayload';

procedure BASSMOD_Free();
external 'BASSMOD_Free@files:BASSMOD.dll stdcall delayload';

procedure PlayButtonOnClick(Sender: TObject);
var
Name1: string;
begin
if not BASSMOD_MusicPlay then
begin
Name1:=ExpandConstant('{tmp}\music.xm');
if BASSMOD_MusicLoad(FALSE, PChar(Name1), 0, 0, 4 or 512 or 32 or 1) then
BASSMOD_MusicPlay;
end;
end;

procedure PauseButtonOnClick(Sender: TObject);
begin
BASSMOD_MusicPause;
end;

procedure StopButtonOnClick(Sender: TObject);
begin
BASSMOD_MusicStop;
BASSMOD_MusicFree;
end;

procedure InitializeWizard();
var
Name1: string;
PlayButton, PauseButton, StopButton, RewButton: TButton;
Text: TNewStaticText;
Panel1: TPanel;
begin
NoMusic := ExpandConstant('{param:NoMusic|0}')='1';
if NoMusic=False then
begin
ExtractTemporaryFile(ExpandConstant('BASSMOD.dll'));
ExtractTemporaryFile(ExpandConstant('music.xm'));
if not BASSMOD_Init(-1,44100,0) then begin
MsgBox('BASSMOD íå ñìîãëà èíèöèàëèçèðîâàòüñÿ, ïðîèãðûâàíèå ìóçûêè íåâîçìîæíî.', mbInformation, MB_OK)
BASSMOD_Free;
end;
begin
Name1:=ExpandConstant('{tmp}\music.xm');
BASSMOD_MusicFree;
if BASSMOD_MusicLoad(FALSE, PChar(Name1), 0, 0, BASS_MUSIC_LOOP or BASS_MUSIC_SURROUND) then
BASSMOD_MusicPlay;
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 := 'èãðà';
PlayButton.OnClick := @PlayButtonOnClick;
PlayButton.Parent := WizardForm;
PlayButton.Cursor := crHand;
PlayButton.Hint := 'Âîñïðîèçâåäåíèå ìóçûêè';
PlayButton.ShowHint := True;

PauseButton := TButton.Create(WizardForm);
PauseButton.Left := 58;
PauseButton.Top := 335;
PauseButton.Width := 50;
PauseButton.Height := 20;
PauseButton.Caption := 'ïàóçà';
PauseButton.OnClick := @PauseButtonOnClick;
PauseButton.Parent := WizardForm;
PauseButton.Cursor := crHand;
PauseButton.Hint := 'Ïðèîñòàíîâèòü ìóçûêó';
PauseButton.ShowHint := True;

StopButton := TButton.Create(WizardForm);
StopButton.Left := 111;
StopButton.Top := 335;
StopButton.Width := 50;
StopButton.Height := 20;
StopButton.Caption := 'còîï';
StopButton.OnClick := @StopButtonOnClick;
StopButton.Parent := WizardForm;
StopButton.Cursor := crHand;
StopButton.Hint := 'Îñòàíîâèòü ìóçûêó';
StopButton.ShowHint := True;

Text := TNewStaticText.Create(WizardForm);
Text.Caption := 'ìóçûêà èíñòàëëÿòîðà';
Text.Parent := WizardForm;
Text.Font.Style := Text.Font.Style + [fsUnderline];
Text.Font.Color := clNavy;
Text.Top := 319;
Text.Left :=26;
Text.Color := clWhite;
end;
end;
end;
end;
Автор: maxdddca123
Дата сообщения: 07.05.2007 09:25
Ребят, подскажите, мне нужно что бы при нажатии кнопки О программе

procedure AboutButtonOnClick(Sender: TObject);
begin
MsgBox('Copyright © 2007, Версия 07Q13 от ' + GetDateTimeString('dd/mm/yyyy hh:nn:ss', '.', ':'), mbInformation, mb_Ok);
end;

вместо GetDateTimeString('dd/mm/yyyy hh:nn:ss', '.', ':') выводилось дата и время КОМПИЛЯЦИИ... В данном случае выводится только текущее время... Не подскажите как такое реализовать ?
ЗЫ Скорее всего если посмотреть св-ва файла, то нужное мне время это графа Изменён
Автор: FLIER
Дата сообщения: 07.05.2007 15:06
Sampron
Большое спасибо!
Автор: noiseless
Дата сообщения: 07.05.2007 15:48

Цитата:
All
Необходимо установить программу под правами админа на компьютере пользователя. Хотелось бы сделать так, чтобы при запуске инсталлятора появлялось окошко с предложением изменения прав доступа на установку (типа "Запуск от имени..."). В сам инсталлятор проверку прав админа я добавил, но при запуске не админом инсталлятор выдает сообщение "Для запуска необходимы права администратора" и прекращает установку, а хотелось чтобы он предлагал запуск от другого имени. Можно ли так сделать?

Никто не поможет?
Автор: iTASmania_Inc
Дата сообщения: 07.05.2007 23:08
Sampron
Пожалуйста, скажи, как ты реализовал это! http://data.cod.ru/948993482
Ведь не через Bevellabel, да?
Автор: Sampron
Дата сообщения: 07.05.2007 23:46
iTASmania_Inc
Это не Bevellabel, это созданный новый текст. Но можно и через Bevellabel.
Автор: iTASmania_Inc
Дата сообщения: 08.05.2007 23:40
Sampron
В смысле? Что означает:
Цитата:
это созданный новый текст

Если не трудно, можешь обьяснить (кратко!!!!!!!!!!!!!!!!!!!!!!), как ты его сделал?
Автор: Sampron
Дата сообщения: 09.05.2007 00:28
iTASmania_Inc

[Code]
Var
Text: TNewStaticText;

Procedure InitializeWizard();
begin
Text:=TNewStaticText.Create(WizardForm)
Text.Left:=10
Text.Top:=468
Text.Color:=$dbcdcc
Text.Font.Color:=$ab663d
Text.Caption:='бла бла бла'
Text.Parent:=WizardForm
end;
Автор: boss911
Дата сообщения: 09.05.2007 03:12
Sero

Цитата:
Запусти инсталл с параметром /NoMusic=1 и музыки не будет

Я переполнен восторгом и радостью, огромное тебе спасибо! Решил попробывать такой трюк:

Код: var
Music: Boolean;
begin
Music := ExpandConstant('{param:NoMusic|0}')='No';
if Music=False then
Автор: Sero
Дата сообщения: 09.05.2007 09:43
boss911
Вот другой вариант:

var Music: String;

...

Music := ExpandConstant('{param:Music|yes}');
if Music='yes' then
begin
.....
.....
Автор: Genri
Дата сообщения: 09.05.2007 12:19
maxdddca123
Цитата:
...что бы при нажатии кнопки О программе
...... выводилось дата и время КОМПИЛЯЦИИ...


Есть два пути - простой и по-взрослому

Простой [more=здесь]

Код:
#expr Exec("cmd /c echo #define DateTime '%DATE% %TIME%' > data.iss")
#include "data.iss"

#define MyAppVerName "My Program version 1.5 from " + DateTime

[Setup]
AppName=My Program
AppVerName={#MyAppVerName}
DefaultDirName={pf}\My Program

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


Код:
function InitializeSetup(): Boolean;
begin
MsgBox('Copyright © 2007, ' + ExpandConstant('{#MyAppVerName}'), mbInformation, mb_Ok);
Result:= True;
end;
Автор: Sampron
Дата сообщения: 09.05.2007 13:24
Есть длл выдранная из NSIS с помощью которой на стандартные кнопки налаживаются текстуры и при нажатии на кнопку также меняется рисунок, в комплект также идёт пример, кусок кода NSIS с описанием и исходный код ДЛЛ, как можно использовать эту длл для Inno Setup?
Выложил сюда: 100кб
http://data.cod.ru/955612618
Автор: SalvadorDali
Дата сообщения: 09.05.2007 15:40
Господа подскажите какой параметр нужно править и в какое значение, чтобы от родительского компонента к дочерним были видны связи, как на рисунке ->

http://img43.imagevenue.com/img.php?image=th_14424_01_122_723lo.jpg

Извините разобрался, ошибка в оформлении, дочерних компонентов - флэш упустил
Автор: boss911
Дата сообщения: 10.05.2007 02:12
Sero

Цитата:
Вот другой вариант

Именно оно, спасибо!



Скажите плиз, как на BeveledLabel "повесить" ссылку, да так, чтоб текст по умолчанию не был подчеркнут, а при наведении на текст, он подччеркиваля и конечно, хотелось бы, менять цвет шрифта! Спасибо!
Автор: maxdddca123
Дата сообщения: 10.05.2007 11:44
Genri
Спасибо, а data.iss где можно посмотреть ?
Автор: Genri
Дата сообщения: 10.05.2007 12:33
maxdddca123 -- при запуске скрипта на компиляцию, data.iss будет создан автоматом в той же папке где и исходник.
Автор: maxdddca123
Дата сообщения: 10.05.2007 14:04
Genri
А как убрать милисекунды ? (15:03:12,79)

Убрал через COPY.
Вопрос немного не по теме: где почитать описание функций, которые идут перед files начинаясь с # (#define например)
Автор: Genri
Дата сообщения: 10.05.2007 15:06
maxdddca123 -- Inno Setup Help раздел Inno Setup Preprocessor
Автор: Sero
Дата сообщения: 10.05.2007 15:44
boss911

Цитата:
Скажите плиз, как на BeveledLabel "повесить" ссылку, да так, чтоб текст по умолчанию не был подчеркнут, а при наведении на текст, он подччеркиваля и конечно, хотелось бы, менять цвет шрифта! Спасибо!



Код:
procedure BevelLabelClick(Sender: TObject);
var ErrorCode: Integer;
begin
ShellExec('open','http://www.innosetup.com','', '', SW_SHOW, ewNoWait, ErrorCode)
end;

procedure InitializeWizard();
begin
with WizardForm do begin
with BeveledLabel do begin
OnClick:=@BevelLabelClick;
Font.Color:=clBlue;
Enabled:=True;
Cursor:=crHand;
end;
end;
end;
Автор: boss911
Дата сообщения: 10.05.2007 16:42
Sero

Спасибо! Я вот хотел цвет поставить "Dark Blue" (DarkBlue), но компиляция тормозится на этом месте, так же попробывал черех HEX (#000080 или 000080), тоже не идет! Хотелось бы иметь по больше выбор гаммы цветов!
Автор: Sero
Дата сообщения: 10.05.2007 16:56
boss911
Попробуй clNavy

P.S. Вот все что есть:
clBlack, clMaroon, clGreen, clOlive, clNavy, clPurple, clTeal, clGray, clSilver, clRed, clLime, clYellow, clBlue, clFuchsia, clAqua, clWhite
Автор: boss911
Дата сообщения: 10.05.2007 17:17
Sero

Все, я понял, цвет можно задавать в BGR:

Код: Font.Color:=8388608;
Автор: Sero
Дата сообщения: 10.05.2007 17:48
boss911


Цитата:
а то оно ниже 8-ки не воспринимает


У меня работет

Добавлено:

Цитата:
цвет можно задавать в BGR:

Программу,где взять?

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

Предыдущая тема: Mail.ru агент - вход не выполнен


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