Главную роль в скрипте играют
константы. Константы всегда заключаются в фигурные скобки { }. Инсталлятор (или деинсталлятор) присваивает константам значения, котроые определяются пользователем, либо опираясь на конфигурацию системы. Например, {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

ath|{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}
Имя файла системного журнала, или пустая строка, если журналирование не включено.