Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 6]

Закрытая тема
Настройки темы
Скрипты Inno Setup. Помощь и советы [часть 6]

Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1274
Благодарности: 1030


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: El Sanchez
Дата: 16-02-2015
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;

  • Inno Script Generator - генератор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • ISSJoiner - Программа для объединения нескольких скриптов InnoSetup в один.
    Последняя версия: 3.0 [23.07.2009]

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:

Отправлено: 19:06, 28-03-2013

 

Пользователь


Сообщения: 90
Благодарности: 2

Профиль | Отправить PM | Цитировать


Всем привет ! Ребят подскажите пример скрипта для добавления файлов по пути C:\Users\Djinn\AppData\Roaming?

Отправлено: 13:24, 05-05-2013 | #351



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 242
Благодарности: 128

Профиль | Отправить PM | Цитировать


wertulll {userappdata}
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:40, 05-05-2013 | #352


Пользователь


Сообщения: 90
Благодарности: 2

Профиль | Отправить PM | Цитировать


vint56, спасибо за ответ (но я не совсем понял мне бы именно пример скрипта бы увидеть с этой константой (как что и куда прописывать (просто я в этом деле новичёк я хочю свою лицензию с Assassin's Creed Brotherhood пере паковать и вшить дополнения (а они находятся по этому пути C:\Users\Djinn\AppData\Roaming\Ubisoft\Assassin's Creed Brotherhood\Saves

файл "OPTIONS"

Отправлено: 14:00, 05-05-2013 | #353


Старожил


Сообщения: 242
Благодарности: 128

Профиль | Отправить PM | Цитировать


wertulll
читать дальше »
#define MyAppName "Assassin's Creed Brotherhood"
#define MyAppVersion "1.03"
#define MyAppExeName "ACBSP.exe"

[Setup]
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
SlicesPerDisk=1 // на сколько дисков
DiskSpanning=true
DiskSliceSize=736000000 // размер деления на диски

[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "C:\Assassin's Creed Brotherhood\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "OPTIONS.txt"; DestDir: "{userappdata}"; Flags: ignoreversion

[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

Последний раз редактировалось vint56, 05-05-2013 в 14:20.

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:08, 05-05-2013 | #354


Ветеран


Сообщения: 510
Благодарности: 51

Профиль | Отправить PM | Цитировать


а можно иконку убить для setup? именно чтобы в инсталле она сбоку не висела

Отправлено: 14:48, 05-05-2013 | #355


Ветеран


Сообщения: 510
Благодарности: 51

Профиль | Отправить PM | Цитировать


wertulll примерно так
Source: "Ubisoft\*"; DestDir: "{userappdata}"; Flags: ignoreversion

Отправлено: 16:58, 05-05-2013 | #356


Пользователь


Сообщения: 90
Благодарности: 2

Профиль | Отправить PM | Цитировать


insombia,
вышло только вот таким макаром
Source: DLC\*; DestDir: "{userappdata}/Ubisoft/Assassin's Creed Brotherhood/Saves"; Flags: ignoreversion

а есть константы для добавления файлов в папки( Сохраненные игры,Изображения,Мои видеозаписи и тд>>>>>>?

Отправлено: 18:25, 05-05-2013 | #357


Старожил


Сообщения: 242
Благодарности: 128

Профиль | Отправить PM | Цитировать


wertulll, Константы из справки
читать дальше »
Главную роль в скрипте играют константы. Константы всегда заключаются в фигурные скобки { }. Инсталлятор (или деинсталлятор) присваивает константам значения, котроые определяются пользователем, либо опираясь на конфигурацию системы. Например, {win} будет воспринята компилятором как "C:\WINDOWS", если ОС установлена в эту папку.

Символ "{" рассматривается как начало константы. Если требуется ввести "{", наберите ее два раза. (You do not need to double "}" characters.)

Если за константой следует обратный слеш ("\"), инсталлятор его автоматически удалит, если константа уже оканчивается на обратный слеш. Например, если константа {const} имеет значение "C:\", а мы введем {constantname}\filename, в конечном счете получится "C:\filename", а не "C:\\filename", как должно быть по логике. Если требуется вывести именно "C:\\filename", обратный слеш придется заключить в фигурные скобки: {const}{\}\filename.

Список поддерживаемых констант.

Константы папок
{app}
Папка, куда устанавливается приложение. Она выбирается пользователем в окне Выбор папки назначения при установке.
Например: если Вы ввели {app}\MYPROG.EXE в значение параметра Source и пользователь пожелал установить Вашу программу в "C:\MYPROG", на выходе получится "C:\MYPROG\MYPROG.EXE".

{win}
Папка, где установлена Windows.
Например: ввели {win}\MYPROG.INI , папка Windows "C:\WINDOWS", на выходе "C:\WINDOWS\MYPROG.INI".

{sys}
Системная папка Windows.
Например: ввели {sys}\CTL3D32.DLL системная папка Windows "C:\WINDOWS\SYSTEM", на выходе "C:\WINDOWS\SYSTEM\CTL3D32.DLL".

На 64-разрядном Windows, по умолчанию, путь System32, возвращаемый этой константой указывает к папке, содержащий 32-разрядные системные файлы, точно так же как в 32-разрядном Windows. (Константа может быть переопределена включением 64-разрядного режима.)

{syswow64}
На 64-разрядном Windows системная папка SysWOW64, обычно "C:\WINDOWS\SysWOW64". Это каталог, в котором находятся 32-разрядные системные файлы.

Не используйте эту константу, если нет необходимости получить имя каталога, в котором находятся 32-разрядные системные файлы. Многократное использование {syswow64} в местах, где {sys} будет достаточен, может вызвать проблемы. (Для примера см. документацию флага sharedfile секции [Files].)

{src}
Папка, в которой находится инсталлятор.
Например: ввели {src}\MYPROG.EXE, инсталлятор запущен из "S:\", на выходе "S:\MYPROG.EXE".

{sd}
Системный диск, на котором установлен Windows. Обычно это "C:". Эта константа эквивалентна переменной среды SystemDrive.

{pf}
Путь к папке Program Files. {pf} эквивалентна {pf32}, если инсталлятор не работает в 64-разрядном режиме, иначе эквивалентна {pf64}.

{pf32}
Путь к 32-разрядной системной папке Program Files, обычно "C:\Program Files" в 32-разрядном Windows и "C:\Program Files (x86)" в 64-разрядном Windows.

{pf64}
Только для 64-разрядного Windows: 64-разрядные программные файлы. Путь к 64-разрядной системной папке Program Files, обычно "C:\Program Files". Будет исключение, если предпринять попытку использования этой константы в 32-разрядном Windows.

{cf}
Общие файлы - Common Files. {cf} эквивалентна {cf32}, если инсталлятор не работает в 64-разрядном режиме, иначе эквивалентна {cf64}.

{cf32}
32-разрядные общие файлы. Путь к 32-разрядной системной папке Common Files, обычно "C:\Program Files\Common Files" в 32-разрядном Windows и "C:\Program Files (x86)\Common Files" в 64-разрядном Windows.

{cf64}
Только для 64-разрядного Windows: 64-разрядные общие файлы. Путь к 64-разрядной системной папке Common Files, обычно "C:\Program Files\Common Files". Будет исключение, если предпринять попытку использования этой константы в 32-разрядном Windows.

{tmp}
Временная папка. Это не значение переменной среды TEMP пользователя. Это папка, где создаются временные файлы инсталлятора ("C:\WINDOWS\TEMP\IS-xxxxx.tmp"). Все файлы и папки удаляются из папки Temp после завершения установки приложения. Эта константа используется в случае, если в секции [Run] указаны файлы, необходимые при инсталляции, но не нужные для дальнейшей работы приложения.

{fonts}
Папка шрифтов. Обычно именуется FONTS и находится в папке Windows.

{dao}
Папка DAO. Эквивалентна {cf}\Microsoft Shared\DAO.

{dotnet11}
32-разрядная корневая папка .NET Framework версии 1.1.

Будет исключение, если предпринять попытку использования этой константы в системе, где не установлена .NET Framework версии 1.1.

{dotnet20}
Корневая папка .NET Framework версии 2. {dotnet20} эквивалентна {dotnet2032}, если инсталлятор не работает в 64-разрядном режиме, иначе эквивалентна {dotnet2064}.

Будет исключение, если предпринять попытку использования этой константы в системе, где не установлена .NET Framework версии 2.

{dotnet2032}
32-разрядная корневая папка .NET Framework версии 2.

Будет исключение, если предпринять попытку использования этой константы в системе, где не установлена .NET Framework версии 2.

{dotnet2064}
Только для 64-разрядного Windows: 64-разрядная корневая папка .NET Framework версии 2.

Будет исключение, если предпринять попытку использования этой константы в системе, где не установлена .NET Framework версии 2.

{dotnet40}
Корневая папка .NET Framework версии 4. {dotnet40} эквивалентна {dotnet4032}, если инсталлятор не работает в 64-разрядном режиме, иначе эквивалентна {dotnet4064}.

Будет исключение, если предпринять попытку использования этой константы в системе, где не установлена .NET Framework версии 4.

{dotnet4032}
32-разрядная корневая папка .NET Framework версии 4.

Будет исключение, если предпринять попытку использования этой константы в системе, где не установлена .NET Framework версии 4.

{dotne4064}
Только для 64-разрядного Windows: 64-разрядная корневая папка .NET Framework версии 4.

Будет исключение, если предпринять попытку использования этой константы в системе, где не установлена .NET Framework версии 4.

Константы специальных папок
В Inno Setup используются и другие константы, именуемые константами специальных папок. Используются они так же, как и константы папок.

Константы "common" являются общими для всех профилей пользователей.

Константы "user" берутся из профиля текущего пользователя, от имени которого выполняется инсталлятор. А пользователь часто не тот, который находится в системе, так что используйте константы "user" с осторожностью.

Как уже говорилось, константы специальных папок применимы ко всем версиям Windows, поддерживающих Inno Setup.

* = константа "common" равна константе "user", если пользователь, устанавливающий приложение, является администратором или PrivilegesRequired=lowest.

{group}
Путь к группе меню Пуск, который пользователь может изменить на странице Выберите папку в меню «Пуск». Эта папка всегда создается для всех профилей пользователей, если только пользователь, устанавливающий приложение, не имеет прав администратора, иначе путь задается только для профиля текущего пользователя.

{localappdata}
Путь к локальной папке приложения (не Roaming).

{sendto}
Путь к папке Send To пользователя (общей Send To папки нет).

{userappdata} & {commonappdata}
Путь к папке с данными приложения (Application Data).

{usercf}
Путь к папке Common Files текущего пользователя. Константа поддерживается только в Windows 7 и более поздних версиях. При использовании в предыдущих версиях Windows значение константы будет заменено на {localappdata}\Programs\Common.

{userdesktop} & {commondesktop} *
Путь к папке рабочего стола.

{userdocs} & {commondocs}
Путь к папке Мои документы.

{userfavorites} & {commonfavorites} *
Путь к папке Избранное.

{userpf}
Путь к папке Program Files текущего пользователя. Константа поддерживается только в Windows 7 и более поздних версиях. При использовании в предыдущих версиях Windows значение константы будет заменено на {localappdata}\Programs.

{userprograms} & {commonprograms} *
Путь к папке Программы в меню Пуск.

{userstartmenu} & {commonstartmenu} *
Путь к "корню" меню Пуск.

{userstartup} & {commonstartup} *
Путь к папке Автозагрузка в меню Пуск.

{usertemplates} & {commontemplates} *
Путь к папке шаблонов.

Прочие константы
{\}
Обратный слеш. Прочитайте в начале этой страницы о правилах использования {\} и \.

{%NAME|DefaultValue}
Вставляет значение переменной среды.

•NAME - имя переменной среды
•DefaultValue - определяет текст, который будет вставлен в случае, если константа не существует
•Для вставки запятой, вертикальной черты ("|"), или закрывающей фигурной скобки ("}") запишите нужный символ в виде "%-код символа.". Замените символ символом "%" и его двухразрядным шестнадцатеричным кодом. Запятая - "%2c", вертикальная черта - "%7c", и закрывающая фигурная скобка - "%7d". Если Вы хотите включить символ "%", используйте "%25".
•NAME и DefaultValue могут содержать константы. Обратите внимание, что описанным выше способом закрывающая фигурная скобка задается только в случае, когда она используется сама по себе. Если же она обозначает константу, подобные изощрения не нужны.
Например:
{%COMSPEC}{%PROMPT|$P$G}

{cmd}
Полный путь к стандартному системному интерпретатору. Это обычно Windows\System32\cmd.exe. При этом переменная среды COMSPEC не используется.

{computername}
Имя компьютера, на котором запущен инсталлятор или деинсталлятор (результат функции GetComputerName).

{drive:Path}
Возвращает букву диска и двоеточие из указанного пути (например, "C:"). В случае установки через сеть возвращает имя сервера и имя общего документа (например, "\\SERVER\SHARE").

•Path - определяет путь.
•Для вставки запятой, "|", или "}" запишите нужный символ в виде"%-код символа.". Например, запятая - это "%2c", вертикальная черта - "%7c", "}" - "%7d". "%" = "%25".
•Path может содержать константы. Обратите внимание, что описанным выше способом закрывающая фигурная скобка задается только в случае, когда она используется сама по себе. Если же она обозначает константу, подобные изощрения не нужны.
Примеры:
{drive:{src}}{drive:c:\path\file}{drive:\\server\share\path\file}

{groupname}
Имя папки, которую пользователь выбрал на странице Выберите папку в меню «Пуск». В отличие от константы {group} эта константа равна имени папки «Пуск», а не полному пути к ней.

{hwnd}
(Специального назначения) Дескриптор фонового окна инсталлятора.

{wizardhwnd}
(Специального назначения) Дескриптор окна мастера инсталлятора. Равен '0', если на момент обращения окно не существует.

{ini:Filename,Section,Key|DefaultValue}
Берет значение из .INI файла.

•Filename - имя ini-файла, из которого производится чтение
•Section - имя секции
•Key - имя ключа
•DefaultValue - значение, возвращаемое, если параметр не существует
•Для вставки запятой, "|", или "}" запишите нужный символ в виде"%-код символа.". Например, запятая - это "%2c", вертикальная черта - "%7c", "}" - "%7d". "%" = "%25".
•Filename, Section, и Key могут содержать константы. Обратите внимание, что описанным выше способом закрывающая фигурная скобка задается только в случае, когда она используется сама по себе. Если же она обозначает константу, подобные изощрения не нужны.
Например:
{ini:{win}\MyProg.ini,Settings,Path|{pf}\My Program}
{language}
Встроенное имя выбранного языка. Для справки обратитесь к секции [Languages].

{cm:MessageName}
{cm:MessageName,Arguments}
Возвращает стандартное сообщение на заданном языке.

•MessageName - имя стандартного сообщения, из которого производится считывание. Для справки обратитесь к секции [CustomMessages] .
•Arguments - аргументы сообщения, разделенные запятыми
•Для вставки запятой, "|", или "}" запишите нужный символ в виде"%-код символа.". Например, запятая - это "%2c", вертикальная черта - "%7c", "}" - "%7d". "%" = "%25".
•Каждый аргумент в Arguments может содержать константы. Обратите внимание, что описанным выше способом закрывающая фигурная скобка задается только в случае, когда она используется сама по себе. Если же она обозначает константу, подобные изощрения не нужны.
Например:
{cm:LaunchProgram,Inno Setup}
Пример выдает "Launch Inno Setup", если выбран английский язык.

{reg:HKxx\SubkeyName,ValueName|DefaultValue}
Возвращает значение реестра.

•HKxx - определяет корневой ключ. Для справки обратитесь к секции [Registry]
•SubkeyName - имя раздела
•ValueName - имя параметра. Пустой параметр = "По умолчанию".
•DefaultValue - значение, возвращаемое, если параметр не существует или не строкового типа (REG_SZ или REG_EXPAND_SZ)
•Для вставки запятой, "|", или "}" запишите нужный символ в виде"%-код символа.". Например, запятая - это "%2c", вертикальная черта - "%7c", "}" - "%7d". "%" = "%25".
•SubkeyName, ValueName, и DefaultValue могут содержать константы. Обратите внимание, что описанным выше способом закрывающая фигурная скобка задается только в случае, когда она используется сама по себе. Если же она обозначает константу, подобные изощрения не нужны.
Например:
{reg:HKLM\Software\My Program,Path|{pf}\My Program}
{param:ParamName|DefaultValue}
Возвращает параметры командной строки.

•ParamName - имя параметра
•DefaultValue - значение, возвращаемое, если запрашиваемое значение не существует или не может быть определено.
•Для вставки запятой, "|", или "}" запишите нужный символ в виде"%-код символа.". Например, запятая - это "%2c", вертикальная черта - "%7c", "}" - "%7d". "%" = "%25".
•ParamName и DefaultValue могут содержать константы. Обратите внимание, что описанным выше способом закрывающая фигурная скобка задается только в случае, когда она используется сама по себе. Если же она обозначает константу, подобные изощрения не нужны.
Например:
{param:Path|{pf}\My Program}
Возвращает c:\My Program, если в командной строке введен /Path="c:\My Program".

{srcexe}
Полный путь инсталлятора, например "C:\SETUP.EXE".

{uninstallexe}
Полный путь деинсталлятора, например "C:\Program Files\My Program\unins000.exe". Эта константа чаще всего используется в секции [Icons] для задания иконки деинсталлятора. Действует только если директиве Uninstallable секции [Setup] присвоено значение yes (по умолчанию).

{sysuserinfoname}
{sysuserinfoorg}
Имя и организация, соответственно, к которым зарегистрирован Windows. Эта информация берется из реестра.

{userinfoname}
{userinfoorg}
{userinfoserial}
Имя, организация и серийный номер, которые пользователь указал на странице Информация о пользователе (эту страницу можно активировать директивой UserInfoPage). Обычно эти константы используются в секциях [INI] и [Registry], чтобы сохранить их значения для дальнейшего использования.

{username}
Имя пользователя, запустившего инсталлятор или деинсталлятор (результат функции GetUserName).

{log}
Имя файла системного журнала, или пустая строка, если журналирование не включено.

Отправлено: 18:54, 05-05-2013 | #358


Ветеран


Сообщения: 517
Благодарности: 314

Профиль | Отправить PM | Цитировать


insombia,
Код: Выделить весь код
BorderStyle := bsDialog; //или 
BorderIcons := [];
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:38, 05-05-2013 | #359


Пользователь


Сообщения: 107
Благодарности: 2

Профиль | Отправить PM | Цитировать


Как мне изменить скрипт, чтоби чекбокс отображался на странице SelectComponentsPage а не SelectDirPage, все переделал, не помогло
читать дальше »
[_Code]
var
QuickLaunchIcon: TCheckBox;

function MakeQuickLaunchIcon: Boolean;
begin
Result:=QuickLaunchIcon.Checked;
end;

procedure InitializeWizard();
begin
QuickLaunchIcon := TCheckBox.Create(WizardForm);
Parent := WizardForm.SelectDirPage;
Caption := 'Создать значок в Панели быстрого запуска';
Left := ScaleX(0);
Top := WizardForm.DirEdit.Top + 117;
Width := ScaleX(300);
Height := ScaleY(15);
TabOrder := 0;
Checked := False;
end;
end;

Отправлено: 20:58, 05-05-2013 | #360



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 6]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 5] El Sanchez Автоматическая установка приложений 1999 28-03-2013 19:09
Скрипты Inno Setup. Помощь и советы [часть 4] El Sanchez Автоматическая установка приложений 2099 22-05-2012 23:16
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59




 
Переход