» Переменные

Официальный сайт SFX Creator
Группа SFX Creator [В]Контакте

Что такое переменные и для чего они нужны?

Например, вы хотите создать SFX-архив, добавить в него дистрибутив программы и вам необходимо распаковать программу в папку "Program Files" на компьютере пользователя
Т.к. у каждого пользователя система может находиться на любом диске (C: D: E: F: и т.д.) - мы не можем угадать и в таком случае нам необходимо что-то, что позволит создать универсальный SFX архив, который будет работать вне зависимости от того, на каком диске и какой будет путь в каталог программ у пользователя. Для таких случаев и были созданы переменные, без них вы просто не сможете создать корректно работающий на любом компьютере SFX архив.

При запуске SFX-архива, все нижеперечисленные переменные принимают вид полных путей в зависимости от настроек системы у пользователя
Например, после запуска SFX архива переменная $PROGRAMFILES примет вид полного пути в программную директорию пользователя (например C:\Program Files), переменная $DESKTOP примет вид полного пути к папке рабочего стола пользователя и т.д.

Как использовать переменные среды ОС
 Показать »

Вы можете использовать любые переменные среды операционной системы в SFX Creator, если необходимой переменной в SFX Creator нет, то вам необходимо указывать в поля SFX Creator переменную, заключенную в символы % и перед переменной ставить символ переменной SFX Creator - $

 Например, в случае необходимости использования переменной %ALLUSERSPROFILE%, вам необходимо в поля в SFX Creator указывать вот так:
$%ALLUSERSPROFILE%

Так же, вы можете использовать любую переменную из временных сред ОС

 


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


${PRODUCT_NAME}
Этой переменной назначается имя вашего проекта, которое вы указываете в главном диалоге программы в самом верхнем текстовом поле
Переменные можно указывать в любых текстовых строках вашего проекта
Например, можно указать данную переменную в поле Ветка в UnInstall в диалоге настройки деинсталлятора

${PRODUCT_VER}
Возвращает версию вашего проекта, эта переменная принимает значение текстового поля, которое расположено правее поля с Именем вашего проекта

Также значение ${PRODUCT_VER} разбивается на отдельные части (пример на версии 1.2.3.4):
${VER_MMB}.4
Первые 3 значения версии

${VER_MAJOR}.2.3.4
Первое значение версии

1.${VER_MINOR}.3.4
Второе значение версии

1.2.${VER_BUILD}.4
Третье значение версии

1.2.3.${VER_REVISION}
Четвертое значение версии

$UserName
Возвращает имя пользователя, от которого выполняется SFX архив

$PROJECT
Хочу, чтобы вы правильно поняли назначение этой "переменной"
При компиляции проекта она будет возвращать папку вашего проекта, т.е. вы можете указывать данную переменную в следующие поля:
Выходной файл, Иконка, Добавляемый файл и т.д.
Эта переменная может указываться только в те поля (не во все!), где происходит обработка непосредственно ваших файлов, например как в возможности "Показать изображение перед запуском" вы можете указать данную переменную в качестве пути к файлу изображения, в то время как само изображение должно находиться в папке вашего проекта.
Эта переменная введена для возможности создания портабельных проектов, т.е. теперь вы можете безболезненно положить все файлы вашего проекта в папку проекта и переносить папку SFX Creator куда душа пожелает :)


Переменные в поле "Сохранить SFX архив в файл"

В поле Сохранить SFX архив в файл вы можете использовать следующие переменные:

$PROJECT
${PRODUCT_NAME}
${PRODUCT_VER} (и все остальные переменные версии с приставкой VER_)

$SFXCREATOR_DIR
Возвратит путь к папке SFX Creator

$DESKTOP
Возвратит путь к папке рабочего стола пользователя, под учетной записью которого выполняется сборка проекта

$TEMP
Возвратит путь к временной папке

$DOCUMENTS
Возвратит путь к папке "Документы" пользователя, под учетной записью которого выполняется сборка проекта


Переменные директорий системы, пользователя и SFX архива

Вы можете указывать переменные в любых полях в проекте

$INSTDIR
Директория, куда ваш SFX архив распаковывает ваши файлы
Также в данной директории будет создана программа удаления, если включена возможность создания деинсталлятора
Этой переменной может назначаться путь в нескольких случаях:
1. Путь, указанный в главном окне программы в поле "Директория для установки"
2. Путь, который выберет пользователь, если вы включили опцию Предоставить выбор пользователю в главном окне программы
3. Путь, который выберет пользователь, если вы включили подключение графического интерфейса и включили отображение Выбора каталога
4. Путь, который указан в ключе /D=, если SFX архив был запущен через командную строку

$TMPDIR
Временная директория при работе SFX архива, все файлы, которые распакованны в данную директорию будут удалены после всех действий вашего архива
Полезно, если вы создаёте распаковщик инсталлятора
Внимание! Не используйте данную переменную в поле "Директория для установки"

Информация о переменных дружески позаимствована из Справочника по NSIS

$PROGRAMFILES, $PROGRAMFILES32, $PROGRAMFILES64 — папка Program files. В 64разрядной системе констатация $PROGRAMFILES и $PROGRAMFILES32 представляют папку C:\Program Files (x86), а $PROGRAMFILES64 - C:\Program Files.

$COMMONFILES, $COMMONFILES32, $COMMONFILES64 — по аналогии с предыдущей константой, ссылается на C:\Program Files\Common Files.

$DESKTOP — Папка рабочего стола. 

$EXEDIR — папка, откуда запущен SFX архив.

$EXEFILE — имя исполняемого файла SFX архива.

$EXEPATH — полный путь SFX архива, т.е. $EXEDIR+$EXEFILE

$WINDIR — папка, куда установлена операционная система. Как правило, C:\Windows.

$SYSDIR — системная директория Windows. Обычно это C:\Windows\System32.

$TEMP — папка для временных файлов. Например, C:\Windows\Temp

$STARTMENU — папка меню «пуск». 

$SMPROGRAMS – папка «Меню пуск-Программы».

$SMSTARTUP — Папка в меню пуск с названием «Автозагрузка».

$QUICKLAUNCH — Папка панели «Быстрый запуск». Если такой папки в системе нет — возвращается путь, равный $TEMP.

$DOCUMENTS — Папка «Мои документы».

$SENDTO — Папка «Отправить» контекстого меня проводника.

$RECENT — Папка с ярлыками «Недавние документы». Она присутствует в меню пуск

$FAVORITES — Папка «Избранное». 

$MUSIC — Папка «Мои Документы\Моя музыка». 

$PICTURES — Папка «Мои Документы\Мои рисунки». 

$VIDEOS — Папка «Мои Документы\Видео». 

$NETHOOD — Папка с ярлыками на сетевые объекты «Сетевое окружение»

$FONTS — Системная папка со шрифтами (C:\Windows\Fonts).

$TEMPLATES — Системная папка с шаблонами документов. 

$APPDATA — папка с данными учётной записи пользователя (c:\Documents and Settings\Ваше имя\Application Data\)

$LOCALAPPDATA – папка c:\Documents and Settings\Ваше имя\Local Settings\Application Data\.

$PRINTHOOD — ссылка на папку «Принтеры»

$INTERNET_CACHE — папка с временными файлами приложения Internet Explorer.

$COOKIES — Папка, содержащая файлы-cookies Internet Explorer.

$HISTORY — история посещений Internet Explorer.

$PROFILE — папка, где хранится системный профиль пользователя, например, C:\Documents and Settings\Foo.

$ADMINTOOLS — Папка «Администрирование».

$RESOURCES — Ссылка на папку C:\windows\resources.

$RESOURCES_LOCALIZED — Ссылка на папку локализованных ресурсов Widnows, например, C:\Windows\Resources\1033.

$CDBURN_AREA — папка, где хранятся файлы, ожидающие записи на компакт-диск средствами Windows.

$PLUGINSDIR — временная папка (создаётся при запуске SFX архива), где хранятся плагины NSIS.


Переменные общих папок пользователей

Примечание. Смотрите описание соответствующей переменной выше, без приставки $All

$All.APPDATA
$All.ADMINTOOLS
$All.DESKTOP
$All.DOCUMENTS
$All.MUSIC
$All.PICTURES
$All.STARTMENU
$All.SMPROGRAMS
$All.SMSTARTUP
$All.TEMPLATES
$All.VIDEOS