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

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

Автор: MrDum32
Дата сообщения: 12.07.2012 12:43
alex0413

Спасибо, а насчет редактирования... я конечно не уверен, но может на этой странице можно чего-нибудь упростить? Я тут искал способ как сделать бегущую строку, нашел, но у меня не работает, чего нетак??? Inno Setup не понимает tmr1: TTimer;, с этим можно чего-то сделать или надо какой-то другой код.

[more=Подробнее..]
[Code]
var
lbl1: TLabel;
tmr1: TTimer;

procedure tmr1Timer(Sender: TObject);
var
str: string;
begin
str:= lbl1.Caption;
lbl1.Caption:= Copy(str, 2, Length(str) - 1) + Copy(str, 1, 1);
end;

procedure InitializeWizard();
begin
//lbl1
lbl1:= TLabel.Create(WizardForm);
with lbl1 do begin
Parent:= WizardForm;
Left:= 20;
Top:= 325;
Width:= 200;
Height:= 20;
AutoSize:= False;
Caption:= 'Вот, что можно сделать средствами Inno Setup... ';
Font.Color:= clWindowText;
Font.Height:= -16;
Font.Name:= 'MS Sans Serif';
Font.Style:= [];
ParentFont:= False;
end;

//tmr1
tmr1:= TTimer.Create(WizardForm);
with tmr1 do begin
Interval:= 200;
OnTimer:= @tmr1Timer;
end;
end;
[/more]
Автор: alex0413
Дата сообщения: 12.07.2012 13:02
MrDum32
у меня работает, я ничего не изменял[more][no]; Скрипт создан через Мастер Inno Setup Script.
; ИСПОЛЬЗУЙТЕ ДОКУМЕНТАЦИЮ ДЛЯ ПОДРОБНОСТЕЙ ИСПОЛЬЗОВАНИЯ INNO SETUP!

[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Code]
var
lbl1: TLabel;
tmr1: TTimer;

procedure tmr1Timer(Sender: TObject);
var
str: string;
begin
str:= lbl1.Caption;
lbl1.Caption:= Copy(str, 2, Length(str) - 1) + Copy(str, 1, 1);
end;

procedure InitializeWizard();
begin
//lbl1
lbl1:= TLabel.Create(WizardForm);
with lbl1 do begin
Parent:= WizardForm;
Left:= 20;
Top:= 325;
Width:= 200;
Height:= 20;
AutoSize:= False;
Caption:= 'Вот, что можно сделать средствами Inno Setup... ';
Font.Color:= clWindowText;
Font.Height:= -16;
Font.Name:= 'MS Sans Serif';
Font.Style:= [];
ParentFont:= False;
end;

//tmr1
tmr1:= TTimer.Create(WizardForm);
with tmr1 do begin
Interval:= 200;
OnTimer:= @tmr1Timer;
end;
end;[/no][/more]
Автор: MrDum32
Дата сообщения: 12.07.2012 13:46
Автор: alex0413
Дата сообщения: 12.07.2012 13:53
MrDum32
поставь расширенную версию от ResTools, а еще лучше, Inno Ultra, от Gnom`a.



упростил скрипт как смог, но, как и было раньше цвет текста CheckBox-ов черный(и сливается с фоном)
[more][no][Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Code]
var
DirectXPage: TWizardPage;
Panel1: TPanel;
DirectX,DotNET,VCRedist: TNewCheckBox;

procedure InitializeWizard();
begin
DirectXPage := CreateCustomPage(wpSelectDir, 'Установка дополнительного программного обеспечения', 'Какое дополнительное программное обеспечение требуется установить?');
with WizardForm do
begin
Color := clBlack;
InnerPage.Color := clBlack;
WelcomeLabel1.Color:=clBlack;
WelcomeLabel1.Font.Color:=clYellow;
WelcomePage.Color:=clBlack;
MainPanel.Color := clBlack;
FinishedPage.Color:=clBlack;
Font.Color:=clYellow;
ReadyMemo.Color:=clBlack;
end;
Panel1 := TPanel.Create(WizardForm);
with Panel1 do
begin
Parent := DirectXPage.Surface;
SetBounds(0,0,417,32);
Caption := 'Какое программное обеспечение необходимо установить?';
end;

DirectX := TNewCheckBox.Create(WizardForm);
with DirectX do
begin
Parent := DirectXPage.Surface;
SetBounds(16,50,280,20);
Caption := 'Установка Microsoft DirectX 9c';
end;

VCRedist := TNewCheckBox.Create(WizardForm);
with VCRedist do
begin
Parent := DirectXPage.Surface;
SetBounds(16,90,280,20);
Caption := 'Установка Microsoft Visual C++';
end;

DotNET := TNewCheckBox.Create(WizardForm);
with DotNET do
begin
Parent := DirectXPage.Surface;
SetBounds(16,130,280,20);
Caption := 'Установка Microsoft NET Framework 2.0';
end;
end;

procedure CurStepChanged(CurStep: TSetupStep);
var
ResultCode: Integer;
begin
if CurStep = ssPostInstall then begin
if DirectX.Checked then
Exec(ExpandConstant('{src}\Support\DirectX\DXSETUP.EXE'), '/silent', '', SW_SHOW,ewWaitUntilTerminated, ResultCode);
if VCRedist.Checked then
Exec(ExpandConstant('{src}\Support\vcredist_x86.EXE'), '', '', SW_SHOWNORMAL,ewWaitUntilTerminated, ResultCode);
if DotNET.Checked then
Exec(ExpandConstant('{src}\Support\dotnetfx.EXE'), '', '', SW_SHOWNORMAL,ewWaitUntilTerminated, ResultCode);
end;
end;[/no][/more]
Автор: MrDum32
Дата сообщения: 12.07.2012 14:03
Inno Ultra, как я жил без него раньше? Пойду выброшу свой "Дельфийский" учебник на помойку.



Нет, как бы некоторые коды из Дельфи эта штука принимает...
Автор: diesel_power999
Дата сообщения: 12.07.2012 15:59
Уважаемые форумчане. Помогите написать скрипт как в этой инсталляции:

_http://narod.ru/disk/19075609000/Metro2033.RU.Installer.exe

Инсталляция распаковывает файл Metro 2033_disk1.sim находящийся на диске в приводе или на смонтированном образе. Я распаковал файл и там распаковка через SimPack.exe

также содержатся файлы:
{app}\metro2033.exe
{app}\content.upk0
{app}\content.vfi
и
{tmp}\CompareList.dat
{tmp}\InnoCallback.dll
{tmp}\TaskBarCtl.dll
{tmp}\SimPack.exe
{tmp}\SimPack.exe.manifest
Автор: Shegorat
Дата сообщения: 12.07.2012 18:40
WildGoblin 11:22 12-07-2012
Цитата:
Скажи пожалуйста откуда такие сведения и что именно там изменилось? В описании команд нет изменений, новых команд (по сравнению с версией 36) тоже нет.

Скорее не сами команды, а приоритет их разбора. Т.к раньше к примеру ISUnpacker.exe собирал примерно такую ком. строку.

Код: innounp.exe -l1049 -v -m "E:\MySetup.exe"
Автор: MrDum32
Дата сообщения: 13.07.2012 00:12
Вот несколько замороченный вопрос:

[more=Подробнее..]
У меня есть программа "Replacer", которая состоит из нескольких папок с файлами. Каждая папка это отдельная, примерно похожая друг на друга, но различная по функцианальности программа(вносит в игру на тело персонажа татуировку), без исполняемого файла. Каждая из папок содержит в себе папку data и в ней некий контент. Полностью программу устанавливать нельзя, можно только одну из предложенных частей. Допустим, что каждую из папок "docks 1", "honeybrew", "outside markath", "plains", и "wildlife 1" я положил в директорию C:\777\111. Как это оформить, что делать дальше чтобы при установке можно было выбрать любую, но только одну из папок, а контент распаковывался начиная с папки data?
[/more]

Так, это возможно сделать, или придется делать как с модом "CBBE" для одной небезызвестной игры. Конечно, паковал его сугубо для себя, чтобы не морочиться, смысл такой, пришлось реплейсер паковать отдельно, пять различных видов тела и несколько нарядов по отдельности.
Автор: LordSP
Дата сообщения: 13.07.2012 07:33
Ребят, доброе время суток! Столкнулся с такой проблемой, как при запуске инсталлятора, произвести проверку реестра на значение ключа, и вывести его в MsgBox. Чтобы призапуске появлялось сообщение: Ваша версия программы: "тут значение прочитанное из реестра"??? mbInformation, mbOK и если такое возможно, то эту версию вывести в label призапуске инсталлятора на странице wpWelcome, чтобы label сам считывал версию из реестра?
Автор: WildGoblin
Дата сообщения: 13.07.2012 08:45
Shegorat

Цитата:
Но из функции параметры просто так не выкинуть, поэтому простое редактирование этой строки не поможет.
Зачем он вообще нужен этот "Inno Setup Unpacker, расширенная версия" - есть ведь плагин дли Тоталкоммандера...
Автор: equis
Дата сообщения: 13.07.2012 18:58

Цитата:
Пардон, а Inno Setup Unpacker enhanced свежее, чем в шапке, не пробегало?


Цитата:
В чём его отличие от обычного innounp (который сейчас доступен версии 0.37)?


Enhanced имеет доп. ключи и настройки для лучшей работы с нестандартными, модифицированными и зашифрованными инсталляторами. Ну и обычная не поддерживает другие языки, т.ч. заменять расширенную на обычную в архиве нецелесообразно.

Расширенной немногие пользуются, поэтому не обновлял. И убрал старую версию из шапки.
Автор: WildGoblin
Дата сообщения: 14.07.2012 15:28
equis

Цитата:
Enhanced имеет доп. ключи и настройки для лучшей работы с нестандартными, модифицированными...
Это очень интересно!

Цитата:
Ну и обычная не поддерживает другие языки, т.ч. заменять расширенную на обычную в архиве нецелесообразно.
То есть там сам innounp.exe модифицированный, а не только наличие гуи?

Цитата:
Расширенной немногие пользуются, поэтому не обновлял.
Может обновите?

Цитата:
И убрал старую версию из шапки.
IMHO зря!
Автор: diesel_power999
Дата сообщения: 15.07.2012 11:41
Я наверное не правильно выразился, помогите написать код чтобы можно было распаковывать файлы *.sim (стимовский инсталлер). На форуме было пару примеров но они не работают
Автор: Ruff
Дата сообщения: 15.07.2012 21:00
Уважаемые приветствую! С данным упаковщиком познакомился совсем недавно, есть один вопрос по реализации, собственно [more=Код][Files]
Source: C:\Setup\yellow_blue.bmp; DestDir: {app}; AfterInstall: extlog; Tasks: ; Flags: ignoreversion recursesubdirs
Source: C:\Setup\yellow_red.bmp; DestDir: {app}; AfterInstall: extlog; Tasks: ; Flags: ignoreversion recursesubdirs
Source: C:\Setup\green_blue.bmp; DestDir: {app}; AfterInstall: extlog; Tasks: ; Flags: ignoreversion recursesubdirs
Source: C:\Setup\green_red.bmp; DestDir: {app}; AfterInstall: extlog; Tasks: ; Flags: ignoreversion recursesubdirs

[Tasks]
Name: yellow; Languages: "ru"; Description: "Желтый"; GroupDescription: "Цвет стен:"; Flags: exclusive
Name: green; Languages: "ru"; Description: "Зеленый"; GroupDescription: "Цвет стен:"; Flags: exclusive

Name: blue; Languages: "ru"; Description: "Синий"; GroupDescription: "Цвет окна:"; Flags: exclusive
Name: red; Languages: "ru"; Description: "Красный"; GroupDescription: "Цвет окна:"; Flags: exclusive[/more]

Как видно в задачах есть четыре радиобатона в двух разных группах, как реализовать условие чтобы при выборе цветов, копировался соответствующий файл.
Например при выборе цветов "Зеленый" и "Красный" копировался файл green_red.bmp
Автор: marineharrison
Дата сообщения: 15.07.2012 23:04
Доброго времени суток. Спасибо за совет по поводу сжатия, но никакие манипуляции с настройками к желаемому результату не привели. Просьба помочь в следующем...
К примеру я упаковал игру в 2 архива 7z. По 4,3 ГБ каждый, чтоб на 2 DVD вместить. Каким образом мне сделать так, чтоб inno setup сначала распаковывал 1 архив с 1 диска, потом просил вставить 2 диск и распаковывал с него 2 архив. И чтобы это отображалось в прогрессбаре, потому что это необходимо для слайдшоу в инсталлере.
is7z.dll просьба не рекомендовать, с ним какой-то глюк, распаковывает все, но только от файлов одни названия и каждый весит 0 КБ. Такое чувство что dll для старой версии архиватора и с новой некорректно работает.
Автор: Tapas77789
Дата сообщения: 16.07.2012 10:54
marineharrison

Цитата:
Доброго времени суток. Спасибо за совет по поводу сжатия, но никакие манипуляции с настройками к желаемому результату не привели. Просьба помочь в следующем...
К примеру я упаковал игру в 2 архива 7z. По 4,3 ГБ каждый, чтоб на 2 DVD вместить. Каким образом мне сделать так, чтоб inno setup сначала распаковывал 1 архив с 1 диска, потом просил вставить 2 диск и распаковывал с него 2 архив. И чтобы это отображалось в прогрессбаре, потому что это необходимо для слайдшоу в инсталлере.
is7z.dll просьба не рекомендовать, с ним какой-то глюк, распаковывает все, но только от файлов одни названия и каждый весит 0 КБ. Такое чувство что dll для старой версии архиватора и с новой некорректно работает.


Юзай ISDone


Ruff

Цитата:
Уважаемые приветствую! С данным упаковщиком познакомился совсем недавно, есть один вопрос по реализации, собственно Код [?]

Как видно в задачах есть четыре радиобатона в двух разных группах, как реализовать условие чтобы при выборе цветов, копировался соответствующий файл.
Например при выборе цветов "Зеленый" и "Красный" копировался файл green_red.bmp


[more=Код][Files]
Source: C:\Setup\yellow_blue.bmp; DestDir: {app}; AfterInstall: extlog; Tasks: yellow; Flags: ignoreversion recursesubdirs
Source: C:\Setup\yellow_red.bmp; DestDir: {app}; AfterInstall: extlog; Tasks: green; Flags: ignoreversion recursesubdirs
Source: C:\Setup\green_blue.bmp; DestDir: {app}; AfterInstall: extlog; Tasks: blue; Flags: ignoreversion recursesubdirs
Source: C:\Setup\green_red.bmp; DestDir: {app}; AfterInstall: extlog; Tasks: red; Flags: ignoreversion recursesubdirs

[Tasks]
Name: yellow; Languages: "ru"; Description: "Желтый"; GroupDescription: "Цвет стен:"; Flags: exclusive
Name: green; Languages: "ru"; Description: "Зеленый"; GroupDescription: "Цвет стен:"; Flags: exclusive

Name: blue; Languages: "ru"; Description: "Синий"; GroupDescription: "Цвет окна:"; Flags: exclusive
Name: red; Languages: "ru"; Description: "Красный"; GroupDescription: "Цвет окна:"; Flags: exclusive[/more]
Автор: Ruff
Дата сообщения: 16.07.2012 13:27
Tapas77789, спасибо за помощь, но не совсем то, что нужно. В твоем примере при выборе двух радиобатонов будет копироваться два файла, а мне нужно чтобы выбор файла осуществлялся несколько иначе.

[more=Код][Files]
Source: C:\Setup\yellow_blue.bmp; DestDir: {app}; AfterInstall: extlog; Tasks: ; Flags: ignoreversion recursesubdirs
Source: C:\Setup\yellow_red.bmp; DestDir: {app}; AfterInstall: extlog; Tasks: ; Flags: ignoreversion recursesubdirs
Source: C:\Setup\green_blue.bmp; DestDir: {app}; AfterInstall: extlog; Tasks: ; Flags: ignoreversion recursesubdirs
Source: C:\Setup\green_red.bmp; DestDir: {app}; AfterInstall: extlog; Tasks: ; Flags: ignoreversion recursesubdirs

[Tasks]
Name: yellow; Languages: "ru"; Description: "Желтый"; GroupDescription: "Цвет стен:"; Flags: exclusive
Name: green; Languages: "ru"; Description: "Зеленый"; GroupDescription: "Цвет стен:"; Flags: exclusive

Name: blue; Languages: "ru"; Description: "Синий"; GroupDescription: "Цвет окна:"; Flags: exclusive
Name: red; Languages: "ru"; Description: "Красный"; GroupDescription: "Цвет окна:"; Flags: exclusive[/more]

Пример: выбираем цвет стен желтый и цвет окна красный, в итоге копируется только 1 файл - "yellow_red.bmp"
Автор: Shegorat
Дата сообщения: 16.07.2012 16:00
Ruff 22:00 15-07-2012
Цитата:
Как видно в задачах есть четыре радиобатона в двух разных группах, как реализовать условие чтобы при выборе цветов, копировался соответствующий файл. Например при выборе цветов "Зеленый" и "Красный" копировался файл green_red.bmp

Условия задач и компонентов можно комбинировать используя логические and, or, not.
[more=Код][Files]
Source: C:\Setup\yellow_blue.bmp; DestDir: {app}; AfterInstall: extlog; Tasks: yellow and blue; Flags: ignoreversion recursesubdirs
Source: C:\Setup\yellow_red.bmp; DestDir: {app}; AfterInstall: extlog; Tasks: yellow and red; Flags: ignoreversion recursesubdirs
Source: C:\Setup\green_blue.bmp; DestDir: {app}; AfterInstall: extlog; Tasks: green and blue; Flags: ignoreversion recursesubdirs
Source: C:\Setup\green_red.bmp; DestDir: {app}; AfterInstall: extlog; Tasks: green and red; Flags: ignoreversion recursesubdirs

[Tasks]
Name: yellow; Languages: "ru"; Description: "Желтый"; GroupDescription: "Цвет стен:"; Flags: exclusive
Name: green; Languages: "ru"; Description: "Зеленый"; GroupDescription: "Цвет стен:"; Flags: exclusive

Name: blue; Languages: "ru"; Description: "Синий"; GroupDescription: "Цвет окна:"; Flags: exclusive
Name: red; Languages: "ru"; Description: "Красный"; GroupDescription: "Цвет окна:"; Flags: exclusive[/more]

diesel_power999 12:41 15-07-2012
Цитата:
Я наверное не правильно выразился, помогите написать код чтобы можно было распаковывать файлы *.sim (стимовский инсталлер). На форуме было пару примеров но они не работают

Универсального скрипта нет, т.к для того чтобы распаковать стимовский инсталл, нужно знать ключи от него. Простейшим вариантом будет запуск simpack.exe с соответствующими параметрами, с помощью функции Exec.
Также в этом вопросе может помочь товарищ vint56, т.к когда-то я делал для него подобный скрипт-пример, который у меня не сохранился.
Автор: marineharrison
Дата сообщения: 16.07.2012 18:51
Tapas77789
а нельзя что-нибудь попроще. чтоб понять то, что там в скрипте, уйдет немало времени.
может какой-нибудь скрипт, который использовал бы библиотеки оригинального 7z для упаковки файлов и потом для распаковки...
Автор: Ruff
Дата сообщения: 16.07.2012 19:26
Shegorat, спасибо большое! Даже не думал что все так просто, уж были мысли функцию писать с if else
Автор: vint56
Дата сообщения: 17.07.2012 15:12
diesel_power999 вот пример от Shegorat за что ему большое спасибо NoSteamInstall http://rghost.ru/39257359
Автор: diesel_power999
Дата сообщения: 17.07.2012 21:07
Shegorat, vint56 огромное спасибо! Однако все же осталось несколько вопросов:

1. В файл GcfFiles.dat нужно добавлять строки с ключом и названием файла из которого будет распаковка в моем случае metro_2033_content.ncf и metro_2033_ru.ncf
2. Как сделать чтобы setup искал sim файл на съемном носителе на не на физическом приводе
Автор: Dark_Delphin
Дата сообщения: 18.07.2012 13:14
Всем привет.
Подскажите где скачать и как встроить в скрипт распаковку архивов isdone вроде... (пакуется инсайдом)

Заранее спасибо.
Автор: ultimo
Дата сообщения: 18.07.2012 19:54
Не могу додумать, как сделать, чтобы один файл файл (папка) при установке копировался только в том случае, если выбраны 2 разных компонента.
Автор: Shegorat
Дата сообщения: 18.07.2012 20:07
Dark_Delphin 14:14 18-07-2012
Цитата:
Всем привет.
Подскажите где скачать и как встроить в скрипт распаковку архивов isdone вроде... (пакуется инсайдом)
Заранее спасибо.

В гугле забанили?
Вот http://forum.ru-board.com/topic.cgi?forum=5&topic=34920&start=640#lt
Или лучше http://krinkels.org/showthread.php?p=12231#post12231 т.к проект переехал на этот форум.

ultimo 20:54 18-07-2012
Цитата:
Не могу додумать, как сделать, чтобы один файл файл (папка) при установке копировался только в том случае, если выбраны 2 разных компонента.

Пару постов выше практически такой же вопрос, но только с задачами.
Автор: equis
Дата сообщения: 18.07.2012 20:36
WildGoblin

Цитата:
То есть там сам innounp.exe модифицированный

Ну конечно. Сама утилита-распаковщик. В этом весь смысл.
GUI шел просто довеском для удобства. innounp работает хоть с ним, хоть без него.
Обновить - посмотрим, когда с отдыха вернусь.
Автор: WildGoblin
Дата сообщения: 19.07.2012 10:06
equis

Цитата:
Ну конечно. Сама утилита-распаковщик. В этом весь смысл.
GUI шел просто довеском для удобства. innounp работает хоть с ним, хоть без него.
Спасибо за ответ!

Цитата:
Обновить - посмотрим, когда с отдыха вернусь.
Хорошо вам отдохнуть!
Автор: ultimo
Дата сообщения: 19.07.2012 10:07
В общем беда какая-то. При запуске установщика он зависает. (файлов достаточно много упаковано, без внешних утилит, самим Inno) Параметры сжатия:


Код:
Compression=lzma/Ultra64
SolidCompression=true
Автор: Shegorat
Дата сообщения: 19.07.2012 10:48
ultimo 11:07 19-07-2012
Цитата:
В общем беда какая-то. При запуске установщика он зависает. (файлов достаточно много упаковано, без внешних утилит, самим Inno) Параметры сжатия:  

Либо убрать SolidCompression=true, либо перенести все файлы, которые используются в установщике в начало секции Files.
Автор: ultimo
Дата сообщения: 19.07.2012 10:52
Shegorat
Эм...в начало секции? Этот момент не понял.

*Убрал параметр SolidCompression.
*Почитал справку Inno
*Каюсь, что не сделал этого раньше
*Благодарю за подсказку с компонентами

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177

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


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