для
SotM Цитата: Есть игрушка и я хочу сделать инстал к ней, паковаться она будет долго и нудно (несколько гигов всё таки).
1. Можно ли сначала всё это дело запаковать, а потом менять скрипт установки сколько мне хочется без перепаковки всего архива? Или нужно сразу скрипт с последней версией запаковывать со всеми файлами?
2. Есть ли такие функции, чтобы из скрипта получать информацию о файлах, которые содержатся в архиве. (ну там имя файла, его размер).
Я только несколько недель копаюсь, попытаюсь ответить, несогласные могут дополнить.
1) нет, там идёт же как бы компиляция, т.е. сборка, а не простая архивация.
2) Напрямую вроде бы нет, есть две утилиты:Inno Setup Unpacker (innounp ) и InnoUnPacker.
На первую линк есть в шапке. А вторая ссылка
http://ifolder.ru/6192841 автор Valeron87 (если ссылка умрет можно навреное через личку ссылку запросить у автора)
Добавлено: Подскажите кто с программированием больше знаком.
не получается одна вроде бы несложная вещь.
Необходимо добавить в скрипт от Kindly (из руководства его) который можно взять по этому пути после инсталяции.
C:\Program Files\Inno Setup Scripting v5.1\Scripts\SourceScript\iss.iss
как в него добавить дополнительно свою страницу корректно. Дополнительная страница это 2 переключателя типа радиокнопки.
вот код его (лишние пользовательские данные я убрал, чтобы яснее было видно, отдельно и в другой форме он работает этот код).
[more]procedure CreateTheWizardPages; //главная
var
Newpage: TWizardPage;
begin
Newpage:=CreateCustomPage(wpWelcome, 'Выберите вариант установки ');
NoMusicBtn:=TRadioButton.Create(Newpage);
NoMusicBtn.Top
NoMusicBtn.Width
NoMusicBtn.Height
NoMusicBtn.Caption
NoMusicBtn.Checked
NoMusicBtn.Parent
MusicBtn:=TRadioButton.Create(Newpage);
MusicBtn.Top
MusicBtn.Width
MusicBtn.Height
MusicBtn.Caption
MusicBtn.Checked
MusicBtn.Parent
StaticText := TNewStaticText.Create(Newpage);
StaticText.Top
StaticText.Caption
StaticText.AutoSize
StaticText.Parent
StaticText := TNewStaticText.Create(Newpage);
StaticText.Top
StaticText.Caption
StaticText.AutoSize;
StaticText.Parent
end;
procedure RegisterPreviousData(PreviousDataKey: Integer); // вкл-выкл
begin
SetPreviousData(PreviousDataKey, 'NoMusicС', IntToStr(Ord(NoMusicBtn.Checked)));
SetPreviousData(PreviousDataKey, 'MusicС', IntToStr(Ord(MusicBtn.Checked)));
end;
function NoMusic: Boolean;
begin
Result:=NoMusicBtn.Checked;
end;
function Music: Boolean;
begin
Result:=MusicBtn.Checked;
end;
Procedure InitializeWizard(); // и ещё одну процедурка
var
begin
CreateTheWizardPages
end;
[/more]
Т.е. если я этот код тупо вставлю в скрипт iss.iss, то просто повляется дополнительная страница с фоновым рисунком, но без моих данных. Но кнопки НАЗАД ВПЕРЕД ОТМЕНА присутствуют.
Моих знаний по программированию хватило только на подобный код
(здесь только те изменения которые я внес)
[more]
procedure CreateTheWizardPages; // собственно создание дополнительной страницы
// с радиокнопками
var
Newpage: TWizardPage;
begin
Newpage:=CreateCustomPage(wpWelcome, 'Выберите вариант установки ');
NoMusicBtn:=TRadioButton.Create(Newpage);
MusicBtn:=TRadioButton.Create(Newpage);
StaticText:= TNewStaticText.Create(Newpage);
end;
procedure RegisterPreviousData(PreviousDataKey: Integer);
begin
SetPreviousData(PreviousDataKey, 'SCNoMusic', IntToStr(Ord(NoMusicBtn.Checked)));
SetPreviousData(PreviousDataKey, 'SCMusic', IntToStr(Ord(MusicBtn.Checked)));
end;
function NoMusic: Boolean;
begin
Result:=NoMusicBtn.Checked;
end;
function Music: Boolean;
begin
Result:=MusicBtn.Checked;
end;
Procedure HideAll(); //добавил в вскрытые свои компоненты наряду с другими.
Begin // это надо было?
…
NoMusicBtn.Hide
MusicBtn.Hide
StaticText.Hide
…
end;
Procedure InitializeSkin(); // самое главное в скрипте от Kindly-отображение картинки
Begin
……..
// wpWelcome здесь соответсвенно оригин код от Kindly
.......
//Newpage А это моя добавленная страница
// 2 радиокнопки и 2 поля текста
NoMusicBtn.Top
NoMusicBtn.Width
NoMusicBtn.Height
NoMusicBtn.Caption
NoMusicBtn.Checked
NoMusicBtn.Parent
MusicBtn.Top
MusicBtn.Width
MusicBtn.Height
MusicBtn.Caption
MusicBtn.Checked;
MusicBtn.Parent
StaticText.Top
StaticText.Caption
StaticText.AutoSize
StaticText.Parent
StaticText.Top :
StaticText.Caption
StaticText.AutoSize
StaticText.Parent
// wpLicense........// wpInfoBefore..........// wpSelectDir…… и тд по оригиналу.
end;
procedure ShowPageComponents(CurPageID: Integer); // отображение компонентов
begin
Case CurPageID of
……..
wpWelcome:
..........
NewPage: // в процедуре отображения компонентов
Begin // добавил свои
NoMusicBtn.Show // 2 кнопки и текстовое поле
MusicBtn.Show //
StaticText.Show //
..........
wpSelectDir:
…… // и т.д.
end
procedure CurPageChanged(CurPageID: Integer);
begin
HideAll
ShowPageComponents(CurPageID)
CreateTheWizardPages // вот здесь добавил на всякий случай,
//моя страница относится к CurPage ?
.......
end;
[/more]
вот это всё компилируется без ошибок , но в процессе запуска выдаёт типа
Runtime Error (at 105:2968) или 3002 и тд.
Could not call proc
или 105:3002 и тд., в зависимости от того что я вкл-выключаю в коде заккоментировав.
Вот собственно и вопрос как включить скрытое изображение, куда смотреть в какую процедуру? или как то по другому нарисовать надо создаваемую страницу?