» Inno Setup (создание инсталяционных пакетов)
nik1967
Цитата:
Да он сам не знает что он хочет.
Maks23zr
Мы тут решаем конкретно поставленные задачи. Скажи где у тебя ошибка и мы попробуем ее решить.
Цитата:
Я что то не понял: чем тебя не устраивает???
Да он сам не знает что он хочет.
Maks23zr
Мы тут решаем конкретно поставленные задачи. Скажи где у тебя ошибка и мы попробуем ее решить.
Не могу реализовать страницу компонентов в ботве. Был пример вроде бы от скрипта ГТА только вот его не как не найти.
Avenger13 вот
[more][Setup]
AppId={{1DB65FC5-F8C6-4E0B-9F24-C5F474869716}
AppName=My Program
AppVerName=My Program 1.5
AppPublisher=My Company, Inc.
AppPublisherURL=http://www.example.com/
AppSupportURL=http://www.example.com/
AppUpdatesURL=http://www.example.com/
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
[Files]
[Icons]
Name: {group}\My Program; Filename: {app}\MyProg.exe
Name: {group}\{cm:UninstallProgram,My Program}; Filename: {uninstallexe}
[Components]
Name: component1; Description: Grand Theft Auto IV (Русская версия 1.0.6.0 от 1С); Types: full compact custom; Flags: disablenouninstallwarning checkablealone
Name: component1\c1; Description: Базовые файлы; Types: full; Flags: exclusive
Name: component1\c1\c2; Description: Русификатор от ENPY Studio (Вместо перевода 1С); Types: full; Flags: dontinheritcheck
Name: component1\c1\c3; Description: Отключить в игре службу Xlive (Увеличивает производительность); Types: full; Flags: dontinheritcheck
Name: component1\c1\c4; Description: Графические мод ENBSeries 0.079 SORA; Types: full; Flags: dontinheritcheck
[Code]
var
Components,ComponentsList: TLabel;
Procedure InitializeWizard();
begin
////////////////////// SelectComponentsPage //////////////////////
ComponentsList := TLabel.Create(WizardForm);
with ComponentsList do begin
WizardForm.ComponentsList.Left:= ScaleX(70)///положение панели
WizardForm.ComponentsList.Top:= ScaleY(140);
WizardForm.ComponentsList.Width:= ScaleX(360)///размер панели
WizardForm.ComponentsList.Height:= ScaleY(110)
WizardForm.ComponentsList.Color:= clBlack;///цвет фона в панели страници компонентов
WizardForm.ComponentsList.Font.Color:= ClWhite;///цвет текста в панели страници компонентов
WizardForm.ComponentsList.Font.Style:= [fsBold];
WizardForm.ComponentsList.Font.Size:= 8;
WizardForm.ComponentsList.Font.Name:= 'Arial'
WizardForm.ComponentsList.Parent:= WizardForm;
WizardForm.SelectComponentsPage;
end;
////////////////////// ComponentsPage //////////////////////
end;
procedure CurPageChanged(CurPageID: Integer);
begin
WizardForm.ComponentsList.Hide;
WizardForm.TypesCombo.Hide;
begin
case CurPageID of
wpSelectComponents:
begin
WizardForm.ComponentsList.Show;
end;
end;
end;
end;[/more]
[more][Setup]
AppId={{1DB65FC5-F8C6-4E0B-9F24-C5F474869716}
AppName=My Program
AppVerName=My Program 1.5
AppPublisher=My Company, Inc.
AppPublisherURL=http://www.example.com/
AppSupportURL=http://www.example.com/
AppUpdatesURL=http://www.example.com/
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
[Files]
[Icons]
Name: {group}\My Program; Filename: {app}\MyProg.exe
Name: {group}\{cm:UninstallProgram,My Program}; Filename: {uninstallexe}
[Components]
Name: component1; Description: Grand Theft Auto IV (Русская версия 1.0.6.0 от 1С); Types: full compact custom; Flags: disablenouninstallwarning checkablealone
Name: component1\c1; Description: Базовые файлы; Types: full; Flags: exclusive
Name: component1\c1\c2; Description: Русификатор от ENPY Studio (Вместо перевода 1С); Types: full; Flags: dontinheritcheck
Name: component1\c1\c3; Description: Отключить в игре службу Xlive (Увеличивает производительность); Types: full; Flags: dontinheritcheck
Name: component1\c1\c4; Description: Графические мод ENBSeries 0.079 SORA; Types: full; Flags: dontinheritcheck
[Code]
var
Components,ComponentsList: TLabel;
Procedure InitializeWizard();
begin
////////////////////// SelectComponentsPage //////////////////////
ComponentsList := TLabel.Create(WizardForm);
with ComponentsList do begin
WizardForm.ComponentsList.Left:= ScaleX(70)///положение панели
WizardForm.ComponentsList.Top:= ScaleY(140);
WizardForm.ComponentsList.Width:= ScaleX(360)///размер панели
WizardForm.ComponentsList.Height:= ScaleY(110)
WizardForm.ComponentsList.Color:= clBlack;///цвет фона в панели страници компонентов
WizardForm.ComponentsList.Font.Color:= ClWhite;///цвет текста в панели страници компонентов
WizardForm.ComponentsList.Font.Style:= [fsBold];
WizardForm.ComponentsList.Font.Size:= 8;
WizardForm.ComponentsList.Font.Name:= 'Arial'
WizardForm.ComponentsList.Parent:= WizardForm;
WizardForm.SelectComponentsPage;
end;
////////////////////// ComponentsPage //////////////////////
end;
procedure CurPageChanged(CurPageID: Integer);
begin
WizardForm.ComponentsList.Hide;
WizardForm.TypesCombo.Hide;
begin
case CurPageID of
wpSelectComponents:
begin
WizardForm.ComponentsList.Show;
end;
end;
end;
end;[/more]
Maks23zr
Закоментируй эту строчку
Код: WFButtonFont.Free
Закоментируй эту строчку
Код: WFButtonFont.Free
Shegorat
а как исправить?
а как исправить?
Maks23zr он же тебе написал закаментировать
//WFButtonFont.Free
вот подправленый http://rghost.ru/2400517
//WFButtonFont.Free
вот подправленый http://rghost.ru/2400517
Ребята, не подскажете как называется родитель у WizardForm.PageDescriptionLabel и WizardForm.PageNameLabel?
Всё, сам вспомнил: Parent:= WizardForm.MainPanel;
Всё, сам вспомнил: Parent:= WizardForm.MainPanel;
сори за оффтоп:
как с помощью isdone сделать распаковку нескольких архивов ARC, чтобы потом извлеченный из них srp-файл преобразовался в pcf, из pcf в 7z, а потом уже в оригинал.
с одним файлом сделать не проблема, а вот можно ли сделать с 2-мя и более и как. например:
Код: if not ISArcExtract ( 0, OveralPct, 0, ExpandConstant('{src}\playerped.arc'), ExpandConstant('{app}'), false,CallBack, '', '', '') then break;
//if not ISArcExtract ( 0, OveralPct, 0, ExpandConstant('{src}\ISDONE.arc'), ExpandConstant('{app}'), false,CallBack, '', '', '') then break;
if not ISSRepExtract ( 0, OveralPct, 0, ExpandConstant('{app}\playerped.srp'), ExpandConstant('{app}\playerped.pcf'), '', true, CallBack ) then break;
if not ISPrecompExtract( 0, OveralPct, 0, ExpandConstant('{app}\playerped.pcf'), ExpandConstant('{app}\playerped.7z'), true, CallBack ) then break;
if not IS7ZipExtract ( 0, OveralPct, 0, ExpandConstant('{app}\playerped.7z'), ExpandConstant('{app}'), true, CallBack, '' ) then break;
//if not ISArcExtract ( 0, OveralPct, 0, ExpandConstant('{src}\Data1.bin'), ExpandConstant('{app}'), false,CallBack, '', '', '') then break;
как с помощью isdone сделать распаковку нескольких архивов ARC, чтобы потом извлеченный из них srp-файл преобразовался в pcf, из pcf в 7z, а потом уже в оригинал.
с одним файлом сделать не проблема, а вот можно ли сделать с 2-мя и более и как. например:
Код: if not ISArcExtract ( 0, OveralPct, 0, ExpandConstant('{src}\playerped.arc'), ExpandConstant('{app}'), false,CallBack, '', '', '') then break;
//if not ISArcExtract ( 0, OveralPct, 0, ExpandConstant('{src}\ISDONE.arc'), ExpandConstant('{app}'), false,CallBack, '', '', '') then break;
if not ISSRepExtract ( 0, OveralPct, 0, ExpandConstant('{app}\playerped.srp'), ExpandConstant('{app}\playerped.pcf'), '', true, CallBack ) then break;
if not ISPrecompExtract( 0, OveralPct, 0, ExpandConstant('{app}\playerped.pcf'), ExpandConstant('{app}\playerped.7z'), true, CallBack ) then break;
if not IS7ZipExtract ( 0, OveralPct, 0, ExpandConstant('{app}\playerped.7z'), ExpandConstant('{app}'), true, CallBack, '' ) then break;
//if not ISArcExtract ( 0, OveralPct, 0, ExpandConstant('{src}\Data1.bin'), ExpandConstant('{app}'), false,CallBack, '', '', '') then break;
alex2605
Цитата:
А что мешает в вышеуказанном скрипте закомментировать или убрать строку со срепом?
Цитата:
и еще, можете дать кто-нибудь скрипт распаковки 7z+isprecomp+freearc??
А что мешает в вышеуказанном скрипте закомментировать или убрать строку со срепом?
snoxius
это понятно, тогда :
Цитата:
???
это понятно, тогда :
Цитата:
ак с помощью isdone сделать распаковку нескольких архивов ARC, чтобы потом извлеченный из них srp-файл преобразовался в pcf, из pcf в 7z, а потом уже в оригинал.
с одним файлом сделать не проблема, а вот можно ли сделать с 2-мя и более и как.
???
Цитата:
как с помощью isdone сделать распаковку нескольких архивов ARC, чтобы потом извлеченный из них srp-файл
Фриарк не поддерживает многотомные архивы. Как можно из нескольких архивов извлечь один srp файл?
А все
Всем привет! Кто нибудь знает, как реализовать проверку хэша файла (hash)?
nik1967
Хэша файла в смысле MD5? Если да то можно библиотеку на Дельфях с ваять которая будет MD5 возвращать.
Хэша файла в смысле MD5? Если да то можно библиотеку на Дельфях с ваять которая будет MD5 возвращать.
nik1967
Цитата:
Есть встроенные функции:
function GetMD5OfFile(const Filename: String): String;
function GetSHA1OfFile(const Filename: String): String;
Цитата:
Всем привет! Кто нибудь знает, как реализовать проверку хэша файла (hash)?
Есть встроенные функции:
function GetMD5OfFile(const Filename: String): String;
function GetSHA1OfFile(const Filename: String): String;
snoxius
Цитата:
Ну да. MD5, SHA-1, CRC32.
John_White
Цитата:
Спасибо. Это тоже знаю, но туплю, как организовать проверку.
Сам себе отвечаю: что то похожее.
Код: MD5 := GetMD5OfFile(ExpandConstant('{src}\WwW.ALL-SofT.NeT.RU - TeaM.nfo'));
If not (MD5 = '945156034d291926915ad4d872f538a5') then
begin
MessageBox(hWnd, 'Ошибка суммы MD5 в файле "WwW.ALL-SofT.NeT.RU - TeaM.nfo".'#13#13'Установка будет прервана!', 'Внимание!', MB_OK or $10);
Result:=False;
end;
Цитата:
Хэша файла в смысле MD5?
Ну да. MD5, SHA-1, CRC32.
John_White
Цитата:
Есть встроенные функции
Спасибо. Это тоже знаю, но туплю, как организовать проверку.
Сам себе отвечаю: что то похожее.
Код: MD5 := GetMD5OfFile(ExpandConstant('{src}\WwW.ALL-SofT.NeT.RU - TeaM.nfo'));
If not (MD5 = '945156034d291926915ad4d872f538a5') then
begin
MessageBox(hWnd, 'Ошибка суммы MD5 в файле "WwW.ALL-SofT.NeT.RU - TeaM.nfo".'#13#13'Установка будет прервана!', 'Внимание!', MB_OK or $10);
Result:=False;
end;
Подскажите как в скрипте Need for Speed™ Undercover.iss v 2.2 [Final] + ISDone реалезованна установка выбора языка ну или озвучки. В каком формате должны быть файлы озвучки или в чем запакованны и с каким названием.
MiniMan
В скрипте есть функция function Lang: Boolean;, которая возвращает значение, если выбрана кнопка rus.
Пример:
Код: [Files]
Source: rus\*; DestDir: {app}; Flags: ignoreversion; Check: Lang;
Source: eng\*; DestDir: {app}; Flags: ignoreversion; Check: not Lang;
В скрипте есть функция function Lang: Boolean;, которая возвращает значение, если выбрана кнопка rus.
Пример:
Код: [Files]
Source: rus\*; DestDir: {app}; Flags: ignoreversion; Check: Lang;
Source: eng\*; DestDir: {app}; Flags: ignoreversion; Check: not Lang;
Уух давненько я сюда не захаживал..
Привет всем!
Есть вопрос мож где уже по теме был почему у некоторых (единицы) при установке игры потом самоудаляется, а у других всё нормально??
счем связано такое??
Привет всем!
Есть вопрос мож где уже по теме был почему у некоторых (единицы) при установке игры потом самоудаляется, а у других всё нормально??
счем связано такое??
Цитата:
nik1967
Спс. Получается что файлы сжать не получится, они должны быть в оригинале?
привет! подскажите пожалуйста что и где нужно прописать в скрипте для создания в моих документах папки с файлами?
на примере Сталкер Чистое Небо..где есть папка stalker - stkcs и файл user.ltx
на примере Сталкер Чистое Небо..где есть папка stalker - stkcs и файл user.ltx
MiniMan
Цитата:
Ну вообще то Inno сам неплохо жмёт.
Цитата:
Получается что файлы сжать не получится
Ну вообще то Inno сам неплохо жмёт.
Sarcastic_94
Цитата:
[more]Всем известная игра S.T.A.L.K.E.R. при установке использует некоторые хитрости. Дело не в проверке системных требований или свободного места на диске. Самый важный момент при инсталляции перепакованной игры - создать правильный файл "fsgame.ltx". Данный файл представляет собой некоторый загрузчик данных. Любое неправильное его построение чревато глюками и неправильной работе игры. Чтобы создать абсолютно точную копию оригинала нужно выполнить следующий код (не забываем при сборке, чтобы файл "fsgame.ltx" был абсолютно пустой):
[Code]
procedure CurStepChanged(CurStep: TSetupStep);
var
S: String;
begin
If CurStep=ssPostInstall then
begin
S := ExpandConstant('{commondocs}\STALKER-SHOC\')
StringChangeEx(S, ':\', ':\|', True);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$app_data_root$=true|false|' + S + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$game_data$ = false| true| $fs_root$| gamedata\' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$game_ai$ = true| false| $game_data$| ai\' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$game_spawn$ = true| false| $game_data$| spawns\' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$game_anims$ = true| true| $game_data$| anims\' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$game_levels$ = true| false| $game_data$| levels\' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$game_meshes$ = true| true| $game_data$| meshes\' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$game_dm$ = true| true| $game_data$| meshes\' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$game_shaders$ = true| true| $game_data$| shaders\' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$game_sounds$ = true| true| $game_data$| sounds\' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$game_textures$ = true| true| $game_data$| textures\' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$game_scripts$ = true| false| $game_data$| scripts\' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$game_config$ = true| false| $game_data$| config\' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$level$ = false| false| $game_levels$' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$game_saves$ = true| false| $app_data_root$| savedgames\' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$logs$ = true| false| $app_data_root$| logs\' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$screenshots$ = true| false| $app_data_root$| screenshots\' + #13, true);
end;
end;[/more]
ЗЫ
Это пример. У себя сделаешь аналогично...
Цитата:
привет! подскажите пожалуйста что и где нужно прописать в скрипте для создания в моих документах папки с файлами?
на примере Сталкер Чистое Небо..где есть папка stalker - stkcs и файл user.ltx
[more]Всем известная игра S.T.A.L.K.E.R. при установке использует некоторые хитрости. Дело не в проверке системных требований или свободного места на диске. Самый важный момент при инсталляции перепакованной игры - создать правильный файл "fsgame.ltx". Данный файл представляет собой некоторый загрузчик данных. Любое неправильное его построение чревато глюками и неправильной работе игры. Чтобы создать абсолютно точную копию оригинала нужно выполнить следующий код (не забываем при сборке, чтобы файл "fsgame.ltx" был абсолютно пустой):
[Code]
procedure CurStepChanged(CurStep: TSetupStep);
var
S: String;
begin
If CurStep=ssPostInstall then
begin
S := ExpandConstant('{commondocs}\STALKER-SHOC\')
StringChangeEx(S, ':\', ':\|', True);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$app_data_root$=true|false|' + S + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$game_data$ = false| true| $fs_root$| gamedata\' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$game_ai$ = true| false| $game_data$| ai\' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$game_spawn$ = true| false| $game_data$| spawns\' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$game_anims$ = true| true| $game_data$| anims\' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$game_levels$ = true| false| $game_data$| levels\' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$game_meshes$ = true| true| $game_data$| meshes\' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$game_dm$ = true| true| $game_data$| meshes\' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$game_shaders$ = true| true| $game_data$| shaders\' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$game_sounds$ = true| true| $game_data$| sounds\' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$game_textures$ = true| true| $game_data$| textures\' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$game_scripts$ = true| false| $game_data$| scripts\' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$game_config$ = true| false| $game_data$| config\' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$level$ = false| false| $game_levels$' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$game_saves$ = true| false| $app_data_root$| savedgames\' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$logs$ = true| false| $app_data_root$| logs\' + #13, true);
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$screenshots$ = true| false| $app_data_root$| screenshots\' + #13, true);
end;
end;[/more]
ЗЫ
Это пример. У себя сделаешь аналогично...
John_White
посмотри пожалуйста в ЛС
Добавлено:
и еще кто подскаежет почему когда запускаешь один инстал...затем другой..путь к игре остается от старого инстала?
посмотри пожалуйста в ЛС
Добавлено:
и еще кто подскаежет почему когда запускаешь один инстал...затем другой..путь к игре остается от старого инстала?
Sarcastic_94
Цитата:
Из справки:
[Setup]: UsePreviousSetupType
Возможные значения:yes или no
Значение по умолчанию:yes
Описание:
При значении директивы yes, в начале установки инсталлятор поищет в реестре, не была ли установлена данная программа на данном компьютере, и если так, будет использовать тип и компоненты предыдущей установки, которые выбрал пользователь в прошлый раз при установке, как по умолчанию.
Если Uninstallable=no, эта директива имеет значение no.
Цитата:
и еще кто подскаежет почему когда запускаешь один инстал...затем другой..путь к игре остается от старого инстала?
Из справки:
[Setup]: UsePreviousSetupType
Возможные значения:yes или no
Значение по умолчанию:yes
Описание:
При значении директивы yes, в начале установки инсталлятор поищет в реестре, не была ли установлена данная программа на данном компьютере, и если так, будет использовать тип и компоненты предыдущей установки, которые выбрал пользователь в прошлый раз при установке, как по умолчанию.
Если Uninstallable=no, эта директива имеет значение no.
Скажите, как правильно объединять скрипты Без <<IssJoiner>>
Всем привет!
Видел сообщения где пользователи использую скрипт от Механиков, где его скачать-то? )
Или где взять скрипт, например как здесь.
Видел сообщения где пользователи использую скрипт от Механиков, где его скачать-то? )
Или где взять скрипт, например как здесь.
Страницы: 1234567891011121314151617181920212223
Предыдущая тема: Skype (Часть 3)
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.