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

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

Автор: ErshovSP2004
Дата сообщения: 21.01.2008 00:53
можно ли получить информацию из констант секции SETUP в секции CODE например значение VersionInfoVersion?
Автор: iTASmania_Inc
Дата сообщения: 21.01.2008 01:04
ErshovSP2004
Если установлен препроцессор, то так:

Код:
[Setup]
AppName=My Program
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program
VersionInfoVersion=1.2.3.4

[Code]
procedure InitializeWizard();
begin
MsgBox('{#SetupSetting("VersionInfoVersion")}', mbInformation, mb_Ok)
end;
Автор: ErshovSP2004
Дата сообщения: 21.01.2008 01:21
iTASmania_Inc
Спасибо помогло.
Жалко что в русском ISetup.chm из шапки нет куска о ISPP
Автор: Serge2005
Дата сообщения: 21.01.2008 03:25
Скажите, пожалуйста, как после копирования файлов удалить ключ aaaa из секции bbb ini файла {app}\settings.ini, если он существует (ключ)? Возможно ли это?
Автор: fty
Дата сообщения: 21.01.2008 08:54
Подскажите, плиз, реально ли сделать такое.

Есть игра+порядка 10 модов к ней. Делаю общий инсталлятор, в котором можно делать выбор нужных модов.
Возникает проблема- всё не влезает на 1 DVD болванку. Однако может влезть, если сделать следующее:
В каждом моде есть около 50 мегабайт файлов, которые для всех модов одинаковые. Так вот, что если эти общие файлы я положу отдельно и, в зависимости от выбранного для инсталляции мода, устанавливать эти файлы в нужные папки (для каждого мода своя папка- именно такое строение модов)?

Но тут возникает проблема- в разделе [Files] не знаю как состыковать Components и DestDir. По идее DestDir должен иметь множественные значения, т.е. для каждого мода???

Помогите, если кто знает, как решить такую задачу.
Автор: Gideon Vi
Дата сообщения: 21.01.2008 12:50

Цитата:
Ну, в руководстве Kindly используется процедура CurStepChanged, в моём коде CurPageChanged - отличия в хелпе.

Ага, понятно. Впрочем, ролик при запуске инсталятора всё равно не запустился. Сейчас соберу полностью, чтобы инсталяция дольше шла - может заработает.

Цитата:
Эта ошибка, наверное, больше относится к секции [Components], хотя не исключены другие конфликты.

Огромное спасибо, отловил Дело оказалось в знаке '. Надо сообщить автору ISTool, что этот знак нужно принудительно отключить.

Цитата:
А включены ли в инсталлятор другие файлы?

Включены, но их было мало и инсталяция проходила моментально - может быть из-за этого не получалось.

Цитата:
Возможно, затягивается извлечение файлов во временную директорию до нужного .avi - в этом случае используйте флаг solidbreak.

Это в опциях - непрерывное сжатие, да?
Автор: GuitarloverX
Дата сообщения: 22.01.2008 15:54
Уважаемые знатоки, помогите разобраться.
Не получается во время инсталяции открытие файла майкрософт аксесс, чтобы мастер установки скрывался и ждал завершения работы аксеса. При том хочется, чтобы файл аксеса был с флагом dontcopy.
Автор: iTASmania_Inc
Дата сообщения: 22.01.2008 19:32
GuitarloverX
[more=Подробнее]
[Setup]
AppName=My Prog
AppVerName=My Prog 1.5
DefaultDirName={pf}\My Prog

[Files]
Source: data_base.mdb; DestDir: {tmp}; Flags: dontcopy

[Code]
procedure CurStepChanged(CurStep: TSetupStep);
var
ErrorCode: Integer;
begin
if CurStep = ssInstall then
begin
ExtractTemporaryFile('data_base.mdb')
ShellExec('', ExpandConstant('{tmp}\data_base.mdb'), '', '', SW_SHOW, ewWaitUntilTerminated, ErrorCode)
end
end;
[/more]
Автор: KurtWagner
Дата сообщения: 23.01.2008 00:54
[Run]
Filename: "{win}\regedit.exe"; parameters: "/s {app}\file.reg"; Flags: waituntilterminated shellexec
[_EndOfScript]


Что здесь не так???

Почему не рег. ???
Автор: Ramazan
Дата сообщения: 23.01.2008 05:55
Подскажите, существует ли возможность выполнения отката при установке? То есть, по результатам запуска внешнего инсталлятора (.msi, например), либо продолжить выполнение далее, либо удалить все внесенные изменения?

Вопрос снят, разобрался.
Автор: noiseless
Дата сообщения: 23.01.2008 08:42
KurtWagner
Попробуй так

[Run]
Filename: "{win}\regedit.exe"; Parameters: "/s {app}\file.reg"

По крайней мере мои рег-файлы так работают.
Автор: PolluxVonTXII
Дата сообщения: 23.01.2008 17:23
Господа, почему Inno Setup не приниает в [Registry] циферно-буквенные значения ValueData:, к примеру - 0000fa32, 0000000e, {95808DC4-FA4A-4c74-92FE-5B863F82066B}
Кто, что подскажет ?
Автор: GuitarloverX
Дата сообщения: 23.01.2008 18:10
iTASmania_Inc
Спасибо огромное!
Теперь понял.
Автор: Sig666
Дата сообщения: 23.01.2008 23:04
есть вопрос насчет создания резервных копий.

Нужно копировать в Backup несколько файлов перед патчингом (movies000.dat, sound000.dat, soundmusic000.dat). Использую следующий скрипт:

procedure CurStepChanged(CurStep: TSetupStep);
begin
if IsTaskSelected('backup') then
if CurStep = ssInstall then
begin
CopyFiles(ExpandConstant('{app}\Data\'),ExpandConstant('{app}\Backup'),('movies000.dat'));
end;
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usPostUninstall then
begin
MoveFiles(ExpandConstant('{app}\Backup\'),ExpandConstant('{app}\Data\'),('movies000.dat'));
RemoveDir(ExpandConstant('{app}\Backup'));
end;
end;

Вопросы:

1) Как сделать так, чтобы во время установки резервное копирование как-то отображалось прогресс баром. На данный момент это выглядит так: http://img219.imageshack.us/img219/9008/22945846bu7.png

2) Как забекапить несколько файлов

Заранее спасибо
Автор: Kutsenko
Дата сообщения: 23.01.2008 23:12
Sig666

А я делаю немного по-другому. Я указываю в секции [Files] следующее:

Код: Source: {app}\master.dat; DestDir: {app}\backup; Flags: external onlyifdoesntexist skipifsourcedoesntexist uninsneveruninstall overwritereadonly; Tasks: backup
Автор: Sig666
Дата сообщения: 24.01.2008 00:19
Kutsenko

Спасибо огромное. Все получилось.

Еще хотелось бы на время процедуры бекапа сменить "Распаковка файлов..." на что-то вроде "Выполняется резервное копирование"
Автор: Kutsenko
Дата сообщения: 24.01.2008 09:13
Sig666

К сожалению как это сделать я не знаю(((. В секции [Run] есть такой параметр как StatusMsg и в нём пишеш то что тебе нада, а у нас секция [Files] и если туда вписать этот параметр то компилятор ругается и не хочет компилировать.
Есть одно решение, может немного по тупому, но работает.
Ты создай батник который будет копировать файлы которы тебе нада и пропиши его в секцию [Run] и поставь флаг "при начале установки запускать его" а в StatusMsg напиши то что ты хотел "Выполняется резервное копирование", другого решения я не нашёл))).
Автор: Serge2005
Дата сообщения: 24.01.2008 09:19
Скажите, пожалуйста, как после копирования файлов удалить ключ aaaa из секции bbb ini файла {app}\settings.ini, если он существует (ключ)? Возможно ли это?

И в целом возможно ли удаление секций/ключей из ини средствами Инно?
Автор: Kutsenko
Дата сообщения: 24.01.2008 09:49
Serge2005

Установи себе ISTool запусти свой скрипт через него и слева от скрипта будут секции, выбери INI и там пошагово сделай то что тебе нада, там всё будет просто и ясно написано))).
Автор: Serge2005
Дата сообщения: 24.01.2008 11:40
Kutsenko
У меня стоит весь набор, который в шапке.....
Я знаю про возмонжость такую в ISTool. Но там не указано, и в справках я тоже не нашел, удаление секции/ключа при УСТАНОВКЕ, а не при деинсталяции.... ....?
Автор: Genri
Дата сообщения: 24.01.2008 13:25
Sig666
Serge2005
[more]

Код:
[Setup]
AppName=My Program
AppVerName=My Program v.1.2
DefaultDirName={pf}\My Program

[Files]
Source: {app}\*; DestDir: {app}\backup; Flags: external skipifsourcedoesntexist uninsneveruninstall overwritereadonly; BeforeInstall: BeforeBackup
Source: Files\*; DestDir: {app}; BeforeInstall: BeforeSetup

[Code]
procedure BeforeBackup();
begin
WizardForm.StatusLabel.Caption:= 'Выполняется резервное копирование...';
end;

procedure BeforeSetup();
begin
WizardForm.StatusLabel.Caption:= 'Распаковка файлов...';
end;

procedure CurStepChanged(CurStep: TSetupStep);
var
ini: string;
begin
if CurStep = ssPostInstall then
begin
ini:= ExpandConstant('{app}\settings.ini');
if FileExists(ini) then
begin
DeleteIniSection('OldSectName', ini); // удаление всей секции
DeleteIniEntry('NewSectName', 'OldKeyName', ini); // удаление одного ключа
end;
end;
end;
Автор: Serge2005
Дата сообщения: 24.01.2008 13:34
Genri
Спасибо Большое!!
Автор: GRom V
Дата сообщения: 24.01.2008 15:22
Допустим у меня в скрипте есть такая строка.....

MyVideoFile:= 'Video\Video.zip'

могу ли я указать инсталлятору что Video.zip = Video.avi

тоесть в папке лежит авишник с измененным на zip расширение .......Можноли как нить замутить?

Автор: Kindly
Дата сообщения: 24.01.2008 17:07
Genri, не знаешь ли пример плавной прокрутки "бегущей" строки? Желательно в объекте Memo, чтобы поддерживалась помимо горизонтальной прокрутки и вертикальная. Полагаю, нужно подключать таймер.
Автор: Genri
Дата сообщения: 24.01.2008 18:12
Kindly -- сходу нет. надо думать. в данный момент напряг со временем.
Автор: Sig666
Дата сообщения: 24.01.2008 18:24
Genri

Большое спасибо!
Автор: Victor_Dobrov
Дата сообщения: 24.01.2008 19:20
Corona Skin (437 Кб в архиве) - расширение инсталлятора Inno Setup.

Новая возможность: переключение Мастера на этапе установки в компактное/обычное окно.
(если ключ MiniProgress указан, Copy.avi не включается в проект, а страница wpInstalling примет компактный вид).
Дополнен ключ WizardPos - положение окна мастера по горизонтали и вертикали задаётся раздельно.
Автор: Alex Zaguzin
Дата сообщения: 25.01.2008 08:08
Victor_Dobrov - спасибо огромное. Особенно за компактный вид инсталлятора.
Автор: fty
Дата сообщения: 25.01.2008 08:40
Victor_Dobrov
Спасибо!

All
Существует ли решение для такой задачи:
Есть игра+порядка 10 модов к ней. Делаю общий инсталлятор, в котором можно делать выбор нужных модов. Но всё не влезает на 1 DVD болванку. Однако может влезть, если сделать следующее:
В каждом моде есть около 50 мегабайт файлов, которые для всех модов одинаковые. Так вот, что если эти общие файлы я положу отдельно и, в зависимости от выбранного для инсталляции мода, устанавливать эти файлы в нужные папки (для каждого мода своя папка- именно такое строение модов)?
Но тут возникает проблема- в разделе [Files] не знаю как состыковать Components и DestDir. По идее DestDir должен иметь множественные значения, т.е. для каждого мода???

Help me, please!
Автор: exgamer
Дата сообщения: 25.01.2008 12:05
fty
посмотри как эта прога скрипты генерит и сделай также
http://csmania.ru/forum/viewtopic.php?t=4688

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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