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

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

Автор: Forslay
Дата сообщения: 08.12.2008 11:13

Цитата:
Нужно ли добавлять возможность использования avi,swf,flv в качестве Splash-screen? это заметно увеличит размер dll.


Да конечно, подумаешь размер какой то. Ха! Да щас размер не имеет большого значения! Конечно добавляй ! И большое спасибо за эту библиотеку, буду смотреть что к чему... =)))

Добавлено:
Подскажите, а можно ли при запуске инсталляции, пользователю сделать "чёрный фон" на рабочем столе, хотя бы на время установки... Просто как бы без рисунка, и фон чёрный.... Если да, то напишите как, заранее спасибо...
Автор: ExpeditorR
Дата сообщения: 08.12.2008 12:48
Forslay

Цитата:
Да конечно, подумаешь размер какой то. Ха! Да щас размер не имеет большого значения! Конечно добавляй ! И большое спасибо за эту библиотеку, буду смотреть что к чему... =)))

Да в тои то идело многим миниатюризацию подавай. А насчёт avi,swf,flv я пока ещё подумаю, может оно никому и не надо будет.


Цитата:
Подскажите, а можно ли при запуске инсталляции, пользователю сделать "чёрный фон" на рабочем столе, хотя бы на время установки... Просто как бы без рисунка, и фон чёрный.... Если да, то напишите как, заранее спасибо...

Можно. Нужно через реестр поменять Wallpaper на свой, в данном случае чёрный. Смотри в HKEY_CURRENT_USER\Control Panel\Desktop и там собственно напротив имени Wallpaper будет путь к картинке.
правда потом надо оповестить систему о проделанных изменения, в Delphi я бы это сделал так SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, Nil, SPIF_SENDWININICHANGE ); но вот пройдёт ли это в inno проверять времени нет увы.
Автор: Forslay
Дата сообщения: 08.12.2008 14:06
Оно то поидее правильно, но вот рисунок рабочего стола после редактирования реестра, всё равно остаётся и меняется только тогда, когда можно произвести выход из системы, или самому в настройках не изменить.... 8*(

Добавлено:
Просто у меня Splash с чёрным фоном, и он классно смотриться на чёрном фоне, сливается, а с другими тупо... 8*(
Автор: htuos
Дата сообщения: 08.12.2008 14:34
ExpeditorR
splash конечно здорово, только позволю себе немного критики
1.размер великоват (с учетом того, что dll сжата). можно было уложится в 40-50 КБ без сжатия (скорее всего меньше). хотя это для многих не принципиально
2.прозрачный фон у гифа куда делся?
3.ну и png не помешали бы

ЗЫ не понял зачем "Width-Ширина окна, Height-Высота окна" в ShowSplashGif
Автор: Forslay
Дата сообщения: 08.12.2008 15:44
Да PNG было бы не плохо...
Автор: ExpeditorR
Дата сообщения: 08.12.2008 15:46
htuos

Цитата:
1.размер великоват (с учетом того, что dll сжата). можно было уложится в 40-50 КБ без сжатия (скорее всего меньше). хотя это для многих не принципиально

Ну это с использованием GDI+ и созданием окна на WinApi, я вообще-то так и хотел, правда не понял как AlphaBlend сделать, да и с таймером возиться для плавного появления, вобщем лень. Вот если бы нашёлся добрый человек кому не лень всё это сделать, все были бы только рады и я тоже

Цитата:
2.прозрачный фон у гифа куда делся?

Вообщето он прозрачный, в примере который был в архиве фон белый, и это виден цвет формы, а не фон gif'a, хотя может на других gif'aх прозрачность и не работает, на тесты времени нет.

Цитата:
3.ну и png не помешали бы

Сделаем и png, правда потолстеет dll'ка ещё на пару кило

Цитата:
ЗЫ не понял зачем "Width-Ширина окна, Height-Высота окна" в ShowSplashGif

Так я же в readme написал: AutoSize Если=True, то Автоматически подгонять размер окна под размер картинки(Width,Heigh игнорируются), если False то испульзуются рамеры указанные Width,Heigh, т.е. делаем размер окна на свой вкус или это никому не нужно.
Вобщем спасибо за краткую оценку, ибо критика двигатель прогресса
p.s.
А может ещё добавить проигрывание звука? И вот ещё я в раздумии, стоит ли делать чтобы splash закрывался если кликнуть по нему?

Автор: Forslay
Дата сообщения: 08.12.2008 16:44

Цитата:
А может ещё добавить проигрывание звука? И вот ещё я в раздумии, стоит ли делать чтобы splash закрывался если кликнуть по нему?


Кстати молодец что спросил. Лучше сделай опцию выбора... Потому, что не всегда нужно, что бы пользователь мог его закрывать... Если такое возможно конечно...
Автор: Artem_Butenko
Дата сообщения: 08.12.2008 17:31
ExpeditorR -- спасибо за помощь, думаю поддержка других форматов в данной библиотеки очень необходима. С нетерпением буду ждать обновлений!
Автор: andreasb
Дата сообщения: 08.12.2008 20:01
У меня не большая проблема! почему? я не ставлю галочку во время установки создать ярлык на рабочем столе а он всеровно устанавливается? как зделать так чтобы я сам
решал ставить или нет?



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

[Setup]
AppName=Самоучитель Adobe Photoshop CS
AppVerName=Самоучитель Adobe Photoshop CS
DefaultDirName={pf}\Самоучитель Adobe Photoshop CS от (AndreasB)
DefaultGroupName=Самоучитель Adobe Photoshop CS от (AndreasB)
DisableProgramGroupPage=yes
OutputDir=C:\
OutputBaseFilename=Самоучитель Adobe Photoshop CS от (AndreasB)
SetupIconFile=E:\Install\autoran pro\Andreas.ico
Compression=lzma
SolidCompression=yes

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

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "C:\Самоучитель Adobe Photoshop CS\Старт.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Самоучитель Adobe Photoshop CS\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\Самоучитель Adobe Photoshop CS"; Filename: "{app}\Старт.exe"; WorkingDir: "{app}";
Name: "{group}\{cm:UninstallProgram,Самоучитель Adobe Photoshop CS}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\Самоучитель Adobe Photoshop CS"; Filename: "{app}\Старт.exe"; WorkingDir: "{app}";

[Run]
Filename: "{app}\Старт.exe"; Description: "{cm:LaunchProgram,Самоучитель Adobe Photoshop CS}"; Flags: nowait postinstall skipifsilent



кто знает не поленитесь помогите!!!
буду очень благодарен.
Автор: Don_Juan
Дата сообщения: 08.12.2008 20:23
andreasb

[Icons]
Name: "{group}\Самоучитель Adobe Photoshop CS"; Filename: "{app}\Старт.exe"; WorkingDir: "{app}";
Name: "{group}\{cm:UninstallProgram,Самоучитель Adobe Photoshop CS}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\Самоучитель Adobe Photoshop CS"; Filename: "{app}\Старт.exe"; WorkingDir: "{app}"; Tasks: desktopicon
Автор: ExpeditorR
Дата сообщения: 09.12.2008 09:41
Обновил библиотеку для показа Splash-screen issplash.dll до версии 1.01 (ох, и жирная вышла 245кб.)
Исправил ошибку с показом jpg.
Добавил поддержку png, а так же закрытие Splash-screen при клике мышкой по картинке. Теперь все картинки включая gif, показываются одной процедурой ShowSplashPic [more=Подробнее]issplash.dll v1.01
библиотека для показа Splash screen.
Поддерживаемые форматы bmp, jpg, gif, png

Для показа Splash screen ипользуйте процедуру:
procedure ShowSplashPic (Fpath:pchar;Start,Show,Stop:integer;TransColor,BGColor:Tcolor;CutColor,CloseOnClick:Boolean); external 'ShowSplashPic@files:issplash.dll stdcall delayload';
Fpath - Путь к файлу картинки.
Start - Время плавного появления мс.
Show - Время показа мс.
Stop - Время исчезания мс.
TransColor - Цвет прозрачности, будет вырезан из картинки (работает только с bmp)
BGColor - Цвет фона для Gif.
CutColor - Если True, то цвет будет вырезан, если False то нет.
CloseOnClick - Если True, то при клике мышкой по Splash он будет закрыт, если False то нет.

Планируется обширное расширение функций в следующих версиях.
Если вам понравилась данная библиотека, то загляните на мой сайт Ссылка и посмотрите другой мой проект mp3runner.
пишите если что: dimon-na-domu@mail.ru
9.12.2008 [/more] Скачать можно здесь Ссылка
Автор: omals
Дата сообщения: 09.12.2008 11:52
ExpeditorR

Цитата:
Обновил библиотеку для показа Splash-screen issplash.dll

Огромное СПАСИБО!
нужная в хозяйстве штука
Автор: EagleSH
Дата сообщения: 09.12.2008 15:44
подскажите код господа:

пример: есть папка D:\Games\NAME

в этой папке другая папка NAME1, получается D:\Games\NAME\NAME1

как в конце установки тупо перемувить файлы из папки NAME1 в NAME со всеми патрахами ну и NAME1 прибить
Автор: andreasb
Дата сообщения: 09.12.2008 15:52

Огромное спасибо Don_Juan всё заработало .
Выражаю свою УВАЖУХУ!!!
Автор: equis
Дата сообщения: 09.12.2008 19:08
omals

Цитата:
если задать
Compression=lzma/ultra (или ultra64)
то InnoUnp в TotalCommander дает
пустую папку
[## Inno Setup ##]
и два файла
install.exe
uninst.exe
размером 0

при других параметрах Compression, все нормально

Посмотри, как себя ведет базовая innounp 0.20, а также что происходит при распаковке обычным консольным способом.
Автор: omals
Дата сообщения: 09.12.2008 21:14
equis

Цитата:
Посмотри, как себя ведет базовая innounp 0.20, а также что происходит при распаковке обычным консольным способом.

поведение такое же
а вот с консоли все нормально - одинаково
Автор: crank666
Дата сообщения: 09.12.2008 23:14
1. Когда в инсталляторе нажимаеш кнопку отмена выскакивает окошко с надписью
"Установка не завершена. Если вы выйдите ...", как изменить эту надпись ?

2. Подскажите ещё как изменить в деинсталляторе иконку в верхнем правом углу
(55*58) на другую ? или как оставить такую же как и в инстолляторе ?

3. Как добавить в св-ва ярлыка: версия файла, описание, внутреннее имя, исходное имя файла, язык ? и как убрать оттуда: комментарий и производитель ?
Автор: serg_aka_lain
Дата сообщения: 09.12.2008 23:57
crank666
1.[Messages]
ExitSetupTitle=Выход из программы установки
ExitSetupMessage=Установка не завершена. Если Вы выйдете, программа не будет установлена.%n%nВы сможете завершить установку, запустив программу установки позже.%n%nВыйти из программы установки?

2.[Setup]
WizardSmallImageFile=путь к\WizardSmallImage.bmp


Цитата:
Как добавить в св-ва ярлыка: версия файла, описание, внутреннее имя, исходное имя файла, язык ?

В свойствах ярлыка этого нет, оно есть в свойствах файла на который этот ярлык ссылается.

Автор: equis
Дата сообщения: 10.12.2008 04:36
omals

Цитата:
а вот с консоли все нормально

Значит такие вещи либо с консоли, либо с помощью Inno Setup Unpacker Explorer, если хочется gui.
Автор: Aion13
Дата сообщения: 10.12.2008 09:00
Всем привет!
У меня тут целый ряд вопросов, наверное они уже рассматривались, поэтому я надеюсь вы мне поможете. Итак прям по списку:

1) Помогите пожалуйста решить такую проблемку: на странице выбора дополнительных компонентов (создание ярлыков и прочее), мне нужно под выбранным компонентом написать свой текст, что-то вроде описания, со своим стилем шрифтом и так далее. Как это осуществить?
Пример такого описания тут: http://s56.radikal.ru/i151/0812/4a/103725771e2f.png

2) Как сделать ещё одну страницу с выбором дополнительных компонентов, т.е. на одной один выбор компонентов, на другой допустим отдельным пунктом идёт выбор, к примеру резервирования файлов?

3) Как сделать кнопки управления музыкой инсталлятора, вынесенные в нижнюю левую часть (где прописывается BeveledLabel), и их было всего 2: play/pause и stop? Вот как это осуществить?

4) Ни в какую не хотят делаться проценты установки. Попробовал кучу возможных вариантов. Ни один не подошёл. Либо ничего не отображается, либо показывается только 0% всегда. Помогите решить и этот вопрос.

5) Как сделать так, чтобы на странице доп. информации (управляется параметром InfoBeforeFile) на кнопку "Далее" можно было нажать только если всю страницу прочтут до конца?

Если можно, напишите уже готовый код, а то я в этом смысле новичёк....

Заранее спасибо за помощь.

Автор: crank666
Дата сообщения: 10.12.2008 13:02
serg_aka_lain
Спс по 1-му вопросу, а 2-й - "WizardSmallImageFile=путь к\WizardSmallImage.bmp" я это знаю, у меня в инсталляторе поменялась иконка, но вот в деинсталляторе она выглядит как сам деинсталлятор, а не та иконка которая мне нужна.
А по поводу 3-го вопроса я не правельно выразился сорри, да я хочу поменять значения в св-вах самого *.exe (инсталллятора), как это сделать ?
Автор: SotM
Дата сообщения: 10.12.2008 13:57
crank666
Help тебе в помощь:
VersionInfoCompany
VersionInfoCopyright
VersionInfoDescription
VersionInfoProductName
VersionInfoProductVersion
VersionInfoTextVersion
VersionInfoVersion

Читай и выбирай что именно тебе нужно.
Автор: crank666
Дата сообщения: 10.12.2008 16:13
SotM
Спасибки

Aion13
3) Вот кнопки для проигрования музыки, тока там их 3-и: play, pause, stop.
[more]
[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

[Code]
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;
[/more], это я дал тебе скрипт из "Сборника вопросов" с этого сайта, там много всего полезного, почитай.
Автор: Aion13
Дата сообщения: 10.12.2008 17:09
crank666
Сборник читал, но там тоже 3. И вариант, который в сборнике мне не подходит. Мне просто кнопки нужны.
Автор: crank666
Дата сообщения: 10.12.2008 17:27
Aion13
Поняттно, я тоже так хочу как ты.

Подскажите можно какнить с помощью "BeveledLabel" или другой команды (напишите плиз какой) написать текст другим шрифтом и не слева, а подвинуть его к центру или к правой стороне ?
Автор: Forslay
Дата сообщения: 10.12.2008 18:06
Да в Inno всё что угодно можно (в пределах разумного конечно)
Автор: Dermuin
Дата сообщения: 10.12.2008 18:30
Как создать скрипт чтобы на страницу "Выбор папки установка" перенести чебоксы создания ярлыков и установки доп. компонентов.



Как можно извлекать ARC, 7-Zip, RAR архивы чтоб процесс их распаковки отображался в прогрессбаре.



Помогите очень надо.
Автор: skeptik_vdm
Дата сообщения: 10.12.2008 19:48
Dermuin

Автор раздач случайно не z10yded?
Почему то мне кажется что он!!!
Автор: crank666
Дата сообщения: 10.12.2008 20:49
4) Ты новерно чтото пропустил, если ты делаеш на примерах из "Сборника вопросов", то вот я использую такой скрипт и всё работает отлично:

[Files]
Source: Files\*; DestDir: {app}; AfterInstall: Progress() - не забудь добавить это

[Code]
var
ProgressLabel, SizeLabel: TLabel;

procedure Progress();
var
size: integer;

begin
with WizardForm.ProgressGauge do
ProgressLabel.Caption:= IntToStr((Position-Min)/((Max - Min)/100)) + '%';
FileSize(ExpandConstant(CurrentFileName), size);
SizeLabel.Caption:= IntToStr(size) + ' bytes';
end;

procedure InitializeWizard();
begin
ProgressLabel := TLabel.Create(WizardForm);
with WizardForm.ProgressGauge do
begin
ProgressLabel.Top := Top + Height + ScaleY(8);
ProgressLabel.Left:= Left + Width/2 - ScaleX(8);
ProgressLabel.AutoSize := True;
ProgressLabel.Parent := WizardForm.InstallingPage;
end;

SizeLabel := TLabel.Create(WizardForm);
with WizardForm.ProgressGauge do
begin
SizeLabel.Top := Top + Height + ScaleY(8);
SizeLabel.Left:= Left;
SizeLabel.AutoSize := True;
SizeLabel.Parent := WizardForm.InstallingPage;
end;
end;
Автор: SotM
Дата сообщения: 10.12.2008 21:48
Dermuin
На предыдущих страницах посмотри. Похожие вопросы уже спрашивали.
Поиск рулит!

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970

Предыдущая тема: Презентация


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