Скрипты Inno Setup. Помощь и советы [часть 4]

Ответить
 • Просмотры: 24
Аватара пользователя
Temyraz@fb

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение Temyraz@fb »

Цитата BlackInferno:



Flags: uninsdeletekey
Скрипты Inno Setup. Помощь и советы [часть 4]




Это значение называется: Удалить ключ при деинсталляции! В общем юзай ISTool, там всё вроде понятно, да и ты не только реестр и компоненты можешь, добавлять, редактировать, удалять, но и многое другое. Сам часто пользуюсь ISTool в подобных ситуациях, потому всего не упомнишь.



Ещё например в

Код:

Код: Выделить всё

Root: HKLM; SubKey: SOFTWARE\Codemasters\World Championship Snooker 2003; ValueType: string; Flags: uninsdeletekey

можешь добавить Components: a, он позволит заносить ветку в реестр только в том случае если компонент выбран, т.е получится

Код:

Код: Выделить всё

Root: HKLM; SubKey: SOFTWARE\Codemasters\World Championship Snooker 2003; ValueType: string; Flags: uninsdeletekey; Components: a


Цитата nik1967:



И ещё, обычно дополнительный софт располагают не на странице выбора компонентов, а на странице дополнительных задач.
Скрипты Inno Setup. Помощь и советы [часть 4]




Всё верно, так и делают.
Аватара пользователя
nik1967

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение nik1967 »

BlackInferno, R.i.m.s.k.y., ну и зачем городить такой огород? Запихивать в инсталлятор дистрибутив, распаковывать его в папку установки и только потом, оттуда, запускать? Не проще ли (да и быстрее по времени) расположить папку с дистрибутивом рядом с Setup.exe и запускать оттуда, не копируя файлы в {app}? Тогда и в директории установки не будут создаваться файлы дистрибутива. И ещё, обычно дополнительный софт располагают не на странице выбора компонентов, а на странице дополнительных задач.


Небольшой пример:




Код:

Код: Выделить всё

[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
SolidCompression=yes
Compression=lzma/ultra
ShowTasksTreeLines=true
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
[Tasks]
Name: Redist; Description: Дополнительное программное обеспечение:
Name: Redist\directx; Description: Обновить Microsoft DirectX;
[Run]
Filename: {src}\Redist\DirectX\DXSETUP.exe; WorkingDir: {src}\Redist\DirectX\; Parameters: /silent; StatusMsg: Идет обновление DirectX...   Пожалуйста, подождите.; Tasks: Redist\directx; Flags: skipifdoesntexist waituntilterminated






Папку Redist с вложенной в неё папкой DirectX располагаешь рядом с Setup.exe в папке Output по умолчанию. Ну и соответственно потом на диске установки (если будет создаваться) должна находиться папка Redist.
Аватара пользователя
R.i.m.s.k.y.

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение R.i.m.s.k.y. »

Цитата R.i.m.s.k.y.:



очень умно давать цынк на ресур требующий регистрацию
Скрипты Inno Setup. Помощь и советы [часть 4]




Извиняюсь, дал ссылку на свой профиль в Р.Г. Каталист, не подумав, что для просмотра нужна регистрация.
Цитата R.i.m.s.k.y.:



безо всяких "out of bounds?
Скрипты Inno Setup. Помощь и советы [часть 4]




Это легко решаемо с помощью флага Flags: skipifdoesntexist.

А впрочем, я никому ничего не навязываю. Пусть будет, так, как будет. Пардон за Изображение
Аватара пользователя
BlackInferno

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение BlackInferno »

Цитата Devils Night:



И ещё, обычно дополнительный софт располагают не на странице выбора компонентов, а на странице дополнительных задач.
Скрипты Inno Setup. Помощь и советы [часть 4]




А как указать это? Я так понимаю, что все что в [Components] нужно вырезать и вставить в [Tasks], а в секциях [Files] и [Run] оставить все без изменений?
Аватара пользователя
nik1967

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение nik1967 »

R.i.m.s.k.y., ну да, ну да, если доп.софт весит более 100 мб., то утяжелять инсталлятор как то не кошерно. Но это, как говориться, моё ИМХО (да и не только моё).
Аватара пользователя
Johny777

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение Johny777 »

BlackInferno, в секция [Files] и [Run] тоже Components поменять на Tasks
Аватара пользователя
R.i.m.s.k.y.

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение R.i.m.s.k.y. »

Цитата R.i.m.s.k.y.:



ISToolом хорошо править массово флаги, ну и для простеньки скриптов
Скрипты Inno Setup. Помощь и советы [часть 4]




Ну для новичка тоже, самое оно, так отредактировать по мелочи.




Цитата R.i.m.s.k.y.:



как только лезешь в секцию кода сразу приходится переключаться на расширенный компилятор
Скрипты Inno Setup. Помощь и советы [часть 4]




Я и не спорю.



Кстати, о коде, можно ли привязать к какому либо отдельному куску кода компонент например Components: a?



И ещё, возможно ли в секции [Setup], привязать к некоторым строкам Components: a, а точнее вот это:



Код:

Код: Выделить всё

[Setup]
Uninstallable=false
CreateUninstallRegKey=false
UpdateUninstallLogAppName=false

?
Аватара пользователя
BlackInferno

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение BlackInferno »

Цитата Devils Night:



Кстати, о коде, можно ли привязать к какому либо отдельному куску кода компонент например Components: a?
Скрипты Inno Setup. Помощь и советы [часть 4]





Из справки


Pascal Scripting: IsComponentSelected

Прототип:

function IsComponentSelected(const Components: String): Boolean;



Описание:

Возвращает True, если заданный компонент выделен. Несколько компонентов могут быть указаны в том же порядке с помощью параметра секции Components.



Например:

begin

if IsComponentSelected('helpfiles') then

// the 'helpfiles' component is selected

end;
Аватара пользователя
R.i.m.s.k.y.

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение R.i.m.s.k.y. »

Цитата Devils Night:



привязать к какому либо отдельному куску кода компонент
Скрипты Inno Setup. Помощь и советы [часть 4]




пример (при переходе на страницу wpReady цвет WizardForm становится чёрным)






читать дальше »




Код:

Код: Выделить всё

[Setup]
AppName=My Program
AppVersion=1.5
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
[Components]
Name: a; Description: a
Name: b; Description: b
[ code]
procedure CurPageChanged(CurPageID: Integer);
begin
  if CurPageID=wpReady then
  begin
    if IsComponentSelected('a') then
      WizardForm.Color:=clBlack;
  end;
end;





.
Аватара пользователя
nik1967

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение nik1967 »

Цитата R.i.m.s.k.y.:



в секция [Files] и [Run] тоже Components поменять на Tasks
Скрипты Inno Setup. Помощь и советы [часть 4]




Ага спасибо, и вроде как Types: full тоже убрать надо, вроде как секция [Tasks] не читает этот тег.
Ответить

Вернуться в «Автоматическая установка приложений»