можно ли получить информацию из констант секции SETUP в секции CODE например значение VersionInfoVersion?
» Inno Setup (создание инсталяционных пакетов)
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;
Если установлен препроцессор, то так:
Код:
[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;
iTASmania_Inc
Спасибо помогло.
Жалко что в русском ISetup.chm из шапки нет куска о ISPP
Спасибо помогло.
Жалко что в русском ISetup.chm из шапки нет куска о ISPP
Скажите, пожалуйста, как после копирования файлов удалить ключ aaaa из секции bbb ini файла {app}\settings.ini, если он существует (ключ)? Возможно ли это?
Подскажите, плиз, реально ли сделать такое.
Есть игра+порядка 10 модов к ней. Делаю общий инсталлятор, в котором можно делать выбор нужных модов.
Возникает проблема- всё не влезает на 1 DVD болванку. Однако может влезть, если сделать следующее:
В каждом моде есть около 50 мегабайт файлов, которые для всех модов одинаковые. Так вот, что если эти общие файлы я положу отдельно и, в зависимости от выбранного для инсталляции мода, устанавливать эти файлы в нужные папки (для каждого мода своя папка- именно такое строение модов)?
Но тут возникает проблема- в разделе [Files] не знаю как состыковать Components и DestDir. По идее DestDir должен иметь множественные значения, т.е. для каждого мода???
Помогите, если кто знает, как решить такую задачу.
Есть игра+порядка 10 модов к ней. Делаю общий инсталлятор, в котором можно делать выбор нужных модов.
Возникает проблема- всё не влезает на 1 DVD болванку. Однако может влезть, если сделать следующее:
В каждом моде есть около 50 мегабайт файлов, которые для всех модов одинаковые. Так вот, что если эти общие файлы я положу отдельно и, в зависимости от выбранного для инсталляции мода, устанавливать эти файлы в нужные папки (для каждого мода своя папка- именно такое строение модов)?
Но тут возникает проблема- в разделе [Files] не знаю как состыковать Components и DestDir. По идее DestDir должен иметь множественные значения, т.е. для каждого мода???
Помогите, если кто знает, как решить такую задачу.
Цитата:
Ну, в руководстве Kindly используется процедура CurStepChanged, в моём коде CurPageChanged - отличия в хелпе.
Ага, понятно. Впрочем, ролик при запуске инсталятора всё равно не запустился. Сейчас соберу полностью, чтобы инсталяция дольше шла - может заработает.
Цитата:
Эта ошибка, наверное, больше относится к секции [Components], хотя не исключены другие конфликты.
Огромное спасибо, отловил Дело оказалось в знаке '. Надо сообщить автору ISTool, что этот знак нужно принудительно отключить.
Цитата:
А включены ли в инсталлятор другие файлы?
Включены, но их было мало и инсталяция проходила моментально - может быть из-за этого не получалось.
Цитата:
Возможно, затягивается извлечение файлов во временную директорию до нужного .avi - в этом случае используйте флаг solidbreak.
Это в опциях - непрерывное сжатие, да?
Уважаемые знатоки, помогите разобраться.
Не получается во время инсталяции открытие файла майкрософт аксесс, чтобы мастер установки скрывался и ждал завершения работы аксеса. При том хочется, чтобы файл аксеса был с флагом dontcopy.
Не получается во время инсталяции открытие файла майкрософт аксесс, чтобы мастер установки скрывался и ждал завершения работы аксеса. При том хочется, чтобы файл аксеса был с флагом dontcopy.
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]
[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]
[Run]
Filename: "{win}\regedit.exe"; parameters: "/s {app}\file.reg"; Flags: waituntilterminated shellexec
[_EndOfScript]
Что здесь не так???
Почему не рег. ???
Filename: "{win}\regedit.exe"; parameters: "/s {app}\file.reg"; Flags: waituntilterminated shellexec
[_EndOfScript]
Что здесь не так???
Почему не рег. ???
Подскажите, существует ли возможность выполнения отката при установке? То есть, по результатам запуска внешнего инсталлятора (.msi, например), либо продолжить выполнение далее, либо удалить все внесенные изменения?
Вопрос снят, разобрался.
Вопрос снят, разобрался.
KurtWagner
Попробуй так
[Run]
Filename: "{win}\regedit.exe"; Parameters: "/s {app}\file.reg"
По крайней мере мои рег-файлы так работают.
Попробуй так
[Run]
Filename: "{win}\regedit.exe"; Parameters: "/s {app}\file.reg"
По крайней мере мои рег-файлы так работают.
Господа, почему Inno Setup не приниает в [Registry] циферно-буквенные значения ValueData:, к примеру - 0000fa32, 0000000e, {95808DC4-FA4A-4c74-92FE-5B863F82066B}
Кто, что подскажет ?
Кто, что подскажет ?
iTASmania_Inc
Спасибо огромное!
Теперь понял.
Спасибо огромное!
Теперь понял.
есть вопрос насчет создания резервных копий.
Нужно копировать в 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) Как забекапить несколько файлов
Заранее спасибо
Нужно копировать в 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) Как забекапить несколько файлов
Заранее спасибо
Sig666
А я делаю немного по-другому. Я указываю в секции [Files] следующее:
Код: Source: {app}\master.dat; DestDir: {app}\backup; Flags: external onlyifdoesntexist skipifsourcedoesntexist uninsneveruninstall overwritereadonly; Tasks: backup
А я делаю немного по-другому. Я указываю в секции [Files] следующее:
Код: Source: {app}\master.dat; DestDir: {app}\backup; Flags: external onlyifdoesntexist skipifsourcedoesntexist uninsneveruninstall overwritereadonly; Tasks: backup
Kutsenko
Спасибо огромное. Все получилось.
Еще хотелось бы на время процедуры бекапа сменить "Распаковка файлов..." на что-то вроде "Выполняется резервное копирование"
Спасибо огромное. Все получилось.
Еще хотелось бы на время процедуры бекапа сменить "Распаковка файлов..." на что-то вроде "Выполняется резервное копирование"
Sig666
К сожалению как это сделать я не знаю(((. В секции [Run] есть такой параметр как StatusMsg и в нём пишеш то что тебе нада, а у нас секция [Files] и если туда вписать этот параметр то компилятор ругается и не хочет компилировать.
Есть одно решение, может немного по тупому, но работает.
Ты создай батник который будет копировать файлы которы тебе нада и пропиши его в секцию [Run] и поставь флаг "при начале установки запускать его" а в StatusMsg напиши то что ты хотел "Выполняется резервное копирование", другого решения я не нашёл))).
К сожалению как это сделать я не знаю(((. В секции [Run] есть такой параметр как StatusMsg и в нём пишеш то что тебе нада, а у нас секция [Files] и если туда вписать этот параметр то компилятор ругается и не хочет компилировать.
Есть одно решение, может немного по тупому, но работает.
Ты создай батник который будет копировать файлы которы тебе нада и пропиши его в секцию [Run] и поставь флаг "при начале установки запускать его" а в StatusMsg напиши то что ты хотел "Выполняется резервное копирование", другого решения я не нашёл))).
Скажите, пожалуйста, как после копирования файлов удалить ключ aaaa из секции bbb ini файла {app}\settings.ini, если он существует (ключ)? Возможно ли это?
И в целом возможно ли удаление секций/ключей из ини средствами Инно?
И в целом возможно ли удаление секций/ключей из ини средствами Инно?
Serge2005
Установи себе ISTool запусти свой скрипт через него и слева от скрипта будут секции, выбери INI и там пошагово сделай то что тебе нада, там всё будет просто и ясно написано))).
Установи себе ISTool запусти свой скрипт через него и слева от скрипта будут секции, выбери INI и там пошагово сделай то что тебе нада, там всё будет просто и ясно написано))).
Kutsenko
У меня стоит весь набор, который в шапке.....
Я знаю про возмонжость такую в ISTool. Но там не указано, и в справках я тоже не нашел, удаление секции/ключа при УСТАНОВКЕ, а не при деинсталяции.... ....?
У меня стоит весь набор, который в шапке.....
Я знаю про возмонжость такую в ISTool. Но там не указано, и в справках я тоже не нашел, удаление секции/ключа при УСТАНОВКЕ, а не при деинсталяции.... ....?
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
[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;
Genri
Спасибо Большое!!
Спасибо Большое!!
Допустим у меня в скрипте есть такая строка.....
MyVideoFile:= 'Video\Video.zip'
могу ли я указать инсталлятору что Video.zip = Video.avi
тоесть в папке лежит авишник с измененным на zip расширение .......Можноли как нить замутить?
MyVideoFile:= 'Video\Video.zip'
могу ли я указать инсталлятору что Video.zip = Video.avi
тоесть в папке лежит авишник с измененным на zip расширение .......Можноли как нить замутить?
Genri, не знаешь ли пример плавной прокрутки "бегущей" строки? Желательно в объекте Memo, чтобы поддерживалась помимо горизонтальной прокрутки и вертикальная. Полагаю, нужно подключать таймер.
Kindly -- сходу нет. надо думать. в данный момент напряг со временем.
Genri
Большое спасибо!
Большое спасибо!
Corona Skin (437 Кб в архиве) - расширение инсталлятора Inno Setup.
Новая возможность: переключение Мастера на этапе установки в компактное/обычное окно.
(если ключ MiniProgress указан, Copy.avi не включается в проект, а страница wpInstalling примет компактный вид).
Дополнен ключ WizardPos - положение окна мастера по горизонтали и вертикали задаётся раздельно.
Новая возможность: переключение Мастера на этапе установки в компактное/обычное окно.
(если ключ MiniProgress указан, Copy.avi не включается в проект, а страница wpInstalling примет компактный вид).
Дополнен ключ WizardPos - положение окна мастера по горизонтали и вертикали задаётся раздельно.
Victor_Dobrov - спасибо огромное. Особенно за компактный вид инсталлятора.
Victor_Dobrov
Спасибо!
All
Существует ли решение для такой задачи:
Есть игра+порядка 10 модов к ней. Делаю общий инсталлятор, в котором можно делать выбор нужных модов. Но всё не влезает на 1 DVD болванку. Однако может влезть, если сделать следующее:
В каждом моде есть около 50 мегабайт файлов, которые для всех модов одинаковые. Так вот, что если эти общие файлы я положу отдельно и, в зависимости от выбранного для инсталляции мода, устанавливать эти файлы в нужные папки (для каждого мода своя папка- именно такое строение модов)?
Но тут возникает проблема- в разделе [Files] не знаю как состыковать Components и DestDir. По идее DestDir должен иметь множественные значения, т.е. для каждого мода???
Help me, please!
Спасибо!
All
Существует ли решение для такой задачи:
Есть игра+порядка 10 модов к ней. Делаю общий инсталлятор, в котором можно делать выбор нужных модов. Но всё не влезает на 1 DVD болванку. Однако может влезть, если сделать следующее:
В каждом моде есть около 50 мегабайт файлов, которые для всех модов одинаковые. Так вот, что если эти общие файлы я положу отдельно и, в зависимости от выбранного для инсталляции мода, устанавливать эти файлы в нужные папки (для каждого мода своя папка- именно такое строение модов)?
Но тут возникает проблема- в разделе [Files] не знаю как состыковать Components и DestDir. По идее DestDir должен иметь множественные значения, т.е. для каждого мода???
Help me, please!
fty
посмотри как эта прога скрипты генерит и сделай также
http://csmania.ru/forum/viewtopic.php?t=4688
посмотри как эта прога скрипты генерит и сделай также
http://csmania.ru/forum/viewtopic.php?t=4688
Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
Предыдущая тема: Поиск в WinDjView
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.