[Цитировать]

    KaSpieC 666
  • 260
  • Стаж: 9 лет 1 месяц
  • Сообщений: 787
  • Репутация:127

    [+] [-]
  • Откуда: Одесса
HELP по созданию SFX!!!

Команды для сценариев SFX, с описаниями

;!@Install@!UTF-8! - Начало сценария.
-
GUIMode= - прогресс бар, отображается во время распаковки.

Возможные комбинации и скриншот функции

GUIMode="1" - вкл. прогресс бар во время распаковки (неактивна кнопка закрытия).
GUIMode="2" - выкл. прогресс бар во время распаковки.

-
GUIMode="0" - вкл. прогресс бар во время распаковки.
Работает кнопка закрытия и добавлена кнопка Отмена
-
MiscFlags="4" - готовый sfx, при запуске, будет требовать права Администратора.
-
OverwriteMode= - режим перезаписи файлов.

Возможные комбинации

OverwriteMode="2+8" - рекомендуемое значение!, можно вместо "2+8" писать "10" (без разницы).
Режим перезаписи файлов, где число, или сумма чисел равная сумме числовых значений, либо выражение "2+8". Порядок числовых значений в выражении может быть любой (обязательно в кавычках).
0 - перезаписывать все файлы (режим по умолчанию)
1 - не перезаписывать существующие файлы
2 - перезаписывать только те файлы, которые старее, чем в архиве/установке
8 - пропускать файлы заблокированные системой
Из значений 0, 1, 2 можно использовать только одно, но его можно комбинировать с числом 8
-
ExtractDialogText="Отображаемый текст" - текст, внутри консольного окна, отображаемый во время распаковки. Функция работает, при наличии вкл. прогресс бара!

Скриншот функции

-
ExtractTitle="Подождите..." - текст, на вкладке консольного окна, отображаемый во время распаковки. Функция работает, при наличии вкл. прогресс бара!

Скриншот функции

-
InstallPath="%Temp%\\папка" - путь, и папка распаковки sfx-а (указывать двойные слэшы в пути!).
Можно указывать полный путь, или добавлять переменные.
-
RunProgram= - запуск указанного файла, после распаковки.

Возможные комбинации

RunProgram="\"файл.exe\"" - запуск указанного файла, после распаковки.
-
RunProgram="hidcon:\"файл.exe\"" - скрытый запуск указанного файла, после распаковки.
-
RunProgram="hidcon:cmd.exe /c start \"\" \"%%T\файл.exe\"" - запуск файла с отвязкой от sfx (если был запуск sfx-а с флешки, то после запуска, флешку можно вытащить)
-
RunProgram="%%P:файл_%%P.exe" - при наличии в архиве файл_x86.exe и файл_x64.exe запустится тот, что соответствует разрядности.
файл_ - произвольное название файла
.exe - расширение (можно и батники)
x86 и x64 - обязательное окончание разрядности, в названии файлов.
-
Shortcut= - создание ярлыка.

Возможные комбинации с справкой

D - Создать ярлык на Рабочем столе
S - Создать ярлык в меню кнопки "Пуск"
P - Создать ярлык в меню "Пуск -> Программы"
T - Создать ярлык в папке "Автозагрузка
Ярлыки создаются ДЛЯ ВСЕХ пользователей. Для того, чтобы создать ярлык только для текущего пользователя, к указанным символам надо добавить u
Например - Du, Su, Pu, Tu,
Shortcut="Du,{%%T\\файл.exe}" - создать ярлык на рабочем столе (если нужно в другом месте, меняем с буквы D на S или P или T).
-
Shortcut="Pu,{%%T\\файл.exe},{},{папка1}" - создаст в "Пуск -> Программы", новую папку папка1, в которой будет ярлык на файл.exe.
В {} можно задать параметры запуска, например {/?} будет означать файл.exe /?
-
Shortcut="Pu,{%%T\\файл.exe},{},{папка1},{Текст1}" - создаст в "Пуск -> Программы", новую папку папка1, в которой будет ярлык на файл.exe, с описанием (при наведении курсора) Текст1.
В {} можно задать параметры запуска, например {/?} будет означать файл.exe /?
-
Delete= - удалить выбранные файлы/папки, после закрытия запущенного файла.

Возможные комбинации

Delete="%%T" - удалить папку с расспакованными файлами, при закрытии запущенного файла/программы.
-
Delete="%%T\\файл.exe" - выборочное удаление файла/папки, при закрытии запущенного файла/программы.
Данную комбинацию, можно дублировать, для каждого файла/папки.
-
;текст - оставить подпись. Ставиться перед концом сценария.
-
;!@InstallEnd@! - конец сценария
Примечание!!!
Подчеркнутое - обязательные пункты!
Зеленым цветом - произвольные пути/названия/расширения
-

Небольшой список системных переменных, считываемых модулем SFX

%ALLUSERSPROFILE%
C:\ProgramData
%APPDATA%
C:\Users\Имя пользователя\AppData\Roaming
%CommonProgramFiles%
C:\Program Files\Common Files
%CommonProgramFiles(x86)%
C:\Program Files (x86)\Common Files
%CommonProgramW6432%
C:\Program Files\Common Files
%COMPUTERNAME%
Имя компьютера
%ComSpec%
C:\Windows\system32\cmd.exe
%HOMEDRIVE%
Имя диска локальной рабочей станции, связанного с основным каталогом пользователя, (например: C:\)
%HOMEPATH%
Основной каталог пользователя, (например: \Users\Имя пользователя)
%LOCALAPPDATA%
C:\Users\Имя пользователя\AppData\Local
%LOGONSERVER%
Имя контроллера домена, использовавшегося для авторизации текущего пользователя.
%NUMBER_OF_PROCESSORS%
Количество процессоров в системе (фактически, количество ядер).
%OS%
Название операционной системы. Windows XP и Windows 2000 отображаются как Windows_NT.
%Path%
Указывает путь поиска исполняемых файлов, (например: \Users\Имя пользователя)
%PATHEXT%
Список расширений файлов, которые рассматриваются операционной системой как исполняемые.
%PROCESSOR_ARCHITECTURE%
Архитектура процессора. Возможные варианты: x86, IA64, AMD64.
%PROCESSOR_IDENTIFIER%
Описание процессора (в Интернете часто встречается ошибочное написание PROCESSOR_IDENTFIER - пропущена буква).
%PROCESSOR_LEVEL%
Номер модели процессора.
%PROCESSOR_REVISION%
Ревизия процессора.
%ProgramData%
C:\ProgramData
%ProgramFiles%
C:\Program Files
%ProgramFiles(x86)%
C:\Program Files (x86)
%ProgramW6432%
C:\Program Files
%PUBLIC%
C:\Users\Public
%SystemDrive%
Диск, на котором расположен корневой каталог Windows, (например: C:\)
%SystemRoot%
Путь к корневому каталогу Windows, (например: C:\Windows)
%TEMP%
C:\Users\Имя пользователя\AppData\Local\Temp или C:\Windows\TEMP (зависит от имени входа в систему)
%TMP%
C:\Users\Имя пользователя\AppData\Local\Temp или C:\Windows\TEMP (зависит от имени входа в систему)
%USERDOMAIN%
Имя домена, которому принадлежит текущий пользователь.
%USERNAME%
Имя текущего пользователя.
%USERPROFILE%
Путь к профилю текущего пользователя, (например: C:\Users\Имя пользователя)
%WINDIR%
Каталог, в котором установлена Windows, (наприме: C:\Windows)
-

Модульные переменные

%%M - имя SFX архива без пути
%%P - платформа операционной системы; принимает значения x86 и x64 в зависимости от разрядности ОС
%%S - полный путь к файлу SFX архива
%%T - полный путь распаковки
Все перечисленные переменные (основные переменные среды, переменные среды при работе модуля и переменные модуля) разбираются и подставляются в следующих параметрах:
'AutoInstall'
'AutoInstallX'
'BeginPrompt'
'CancelPrompt'
'Delete'
'DeleteX'
'Directory'
'ErrorTitle'
'ExecuteFile'
'ExecuteOnLoad'
'ExtractCancelText'
'ExtractDialogText'
'ExtractPathText'
'ExtractPathTitle'
'ExtractTitle'
'FinishMessage'
'HelpText'
'InstallPath' (за исключением %%T, а также переменных, определенных параметрами 'SetEnvironment', если в них используется %%T)
'PasswordText'
'PasswordTitle'
'PreExtract'
'PreExtractX'
'RunProgram'
'string' параметра 'SetEnvironment'
'Title'
'WarningTitle'
-
-
Параллельные темы:Вопросы по SFX - обсуждение SFX программ. В шапке присутствует большое количество программ.Программы для создания/редактирования SFX-овSFX Config Editor - программа для быстрого просмотра и редактирования данные в вашем SFX
Редактирование файлов в SFX-архиве (ком. строка) и небольшое дополнение и объяснение-LZMA2SFX Packer - "простая" программа, для создания SFX
Easy7zSFX - "простая" программа, для создания SFX-7z SFX Constructor - всё в одном! Программа умеет всё!Справки, инструкции и т.д.Файлы конфигурации 7z SFX. Помощь и советы - ветка с обсуждениями на oszone

Предупреждение от KaSpieC 666


Шапка, в режиме постоянного обновления/редактирования/исправление/дополнения.
Будьте аккуратны!!!


Последний раз редактировалось: KaSpieC 666 (2016-03-18 06:54), всего редактировалось 27 раз(а)

[Цитировать]

    Joker-2013
  • 1039
  • Стаж: 8 лет 9 месяцев
  • Сообщений: 2053
  • Репутация:120

    [+] [-]
  • Откуда: из прошлого
60197Какую функцию выполняет файл output.taw
А мы откуда знаем? Читайте в справке программы,которую хотите перепаковать...

[Цитировать]

    AVDB
  • 19853
  • Стаж: 5 лет 3 месяца
  • Сообщений: 2
  • Репутация:0

    [+] [-]
Здравствуйте, Joker-2013!
Я просмотрел много источников, но я так и не выяснил этот нюанс.
В справке читаю:
Setup=<программа>
После удачного извлечения файлов SFX-модуль попытается запустить указанную <программу>. При этом перед запуском <программы > текущей папкой будет сделана та, в которую были извлечены файлы. Если в имени программы есть пробелы, то оно должно быть взято в кавычки.
Есть еще SFX-модули, ключи которые могут прописываться в строке Setup= ... в интернете полно информации, есть примеры - все доступно описано.
А вот если просто какой-то файл через пробел, просто после Setup=<программа> приписывался ... ну никто еще не описал.
Подскажите, пожалуйста, куда посмотреть, где почитать.

[Цитировать]

    Joker-2013
  • 1039
  • Стаж: 8 лет 9 месяцев
  • Сообщений: 2053
  • Репутация:120

    [+] [-]
  • Откуда: из прошлого
А мы откуда знаем? Читайте в справке программы,которую хотите перепаковать...
Что в моих словах было непонятно?
Setup=uploadit.exe output.taw
Так обычно запускаются файлы с параметром.
Ваш вопрос изначально некорректен. Нужно было хотя бы описать что перепаковываете и зачем.
Приложить ссылки на программу и сам sfx архив.

[Цитировать]

    SV-2k10
  • 437
  • Стаж: 9 лет
  • Сообщений: 266
  • Репутация:21

    [+] [-]
Приветствую все ! aa
Вот решил написать самый простенький сценарий для “пустого” конфига (как шаблон), для удобства…
Вот думаю, какую комбинацию лучше выбрать…
Такую:
;!@Install@!UTF-8!
GUIMode="2"
RunProgram="Start.cmd"
;!@InstallEnd@!
Или такую:
;!@Install@!UTF-8!
GUIMode="2"
RunProgram="%%P:\"Start.cmd\""
;!@InstallEnd@!
Я понимаю, что это для определения разрядности, но меня интересует, как оно на практике себя ведет, и что лучше выбрать как за стандарт …

[Цитировать]

    Joker-2013
  • 1039
  • Стаж: 8 лет 9 месяцев
  • Сообщений: 2053
  • Репутация:120

    [+] [-]
  • Откуда: из прошлого
SV-2k10, Без
%%P:
и использовать при необходимости, если это реально чем то поможет...
Если бы это была понацея, то было бы включено по умолчанию.
А при бездумном включение, будет только хуже.

[Цитировать]

    SV-2k10
  • 437
  • Стаж: 9 лет
  • Сообщений: 266
  • Репутация:21

    [+] [-]
Joker-2013, Ну вот как-то так я и подумал… точно будет лишним… Спасибо и с наступающими…

[Цитировать]

    SV-2k10
  • 437
  • Стаж: 9 лет
  • Сообщений: 266
  • Репутация:21

    [+] [-]
Всех с наступающим !!! az
В общем вот такой вопрос, прошу помочь его решить…
Сделал я SFX для установки WinRAR-а, в архив положил, сам инсталлятор, папку с темами, ну и все что еще нужно…
Прописал вот такой сценарий, чтобы сначала открывался Info.jpg, а потом, WinRAR.exe, все нормально работает.
;!@Install@!UTF-8!
GUIMode="2"
RunProgram="Start.cmd"
;!@InstallEnd@!
Содержимое -Start.cmd
@Echo off
start "" Info.jpg
start "" WinRAR.exe
pause
Но CDM окно про этом остается открытым, и надписью про любую клавишу…
Открыто оно, потому что прописано (pause)… но стоит прописать закрытие ока на.пр
pause
exit
или
echo.
goto :exit (пробовал много чего еще...)
окно закрывается НО при этом тут же удаляются все файлы из временной папки куда распаковался SFX, кроме запущенного инсталлятора, в результате чего рар устанавливается “голеньким”…
Как можно прописать закрытие CMD окна, так, чтобы файлы не удалялись ?... Спасибо !

[Цитировать]

    timon45
  • 2835
  • Стаж: 8 лет
  • Сообщений: 86
  • Репутация:5

    [+] [-]
  • Откуда: Беларусь
SV-2k10, если ты не указываешь 7z SFX параметр InstallPath= то происходит распаковка во временную папку и после выполнения всех RunProgram либо AutoInstall автоматическое удаление/очистка распакованного. если хочешь скрыть окно CMD добавь hidcon т.е. RunProgram="hidcon:Start.cmd" но только паузы там быть не должно т.е. cmd должен выполниться без твоего участия.

[Цитировать]

    Joker-2013
  • 1039
  • Стаж: 8 лет 9 месяцев
  • Сообщений: 2053
  • Репутация:120

    [+] [-]
  • Откуда: из прошлого
SV-2k10, Батник выкиньте нафиг... Он ну нужен...
Вообще, в моем конструкторе проще научится, так как он делает всё сам за вас и предоставляет результат...
Нужно запустить два раза
RunProgram=""
с разными действиями...
Так же у команды start есть параметры, в том числе и ожидание выполнения.
Получается что вы не батники не умеете писать, не конфиги. Берите справку и изучайте, всё предельно просто...

[Цитировать]

    timon45
  • 2835
  • Стаж: 8 лет
  • Сообщений: 86
  • Репутация:5

    [+] [-]
  • Откуда: Беларусь
Итог если тебе нужно чтобы твой 7z SFX был распакован во временный каталог то добавь InstallPath="%temp%\\winrar_sv" и удален он будет только после запуска очистки диска или другого ПО.
Да и вообще зачем тебе этот cmd? можно обойтись без него. Вот к примеру "мой" установщик данной программы можешь вскрыть посмотреть.
https://yadi.sk/d/qZonMWM4SGmn3g
Joker-2013, опередил меня :)

[Цитировать]

    SV-2k10
  • 437
  • Стаж: 9 лет
  • Сообщений: 266
  • Репутация:21

    [+] [-]
timon45, Спасибо ! aa
Просто я не хочу прописывать запуск напрямую в конфиг SFX-а, а именно через батник, это важно
Как я написал, перед тем, как спросить, я перепробовал “все”, в том числе и "hidcon:Start.cmd"…
И про паузу, тоже писал, что поставил я ее принудительно, иначе не выходит …
Хорошо, посмотрю твой пример …
60497Получается что вы не батники не умеете писать, не конфиги.
Получается, что так…

[Цитировать]

    vovan1982
  • 214
  • Стаж: 9 лет 2 месяца
  • Сообщений: 1098
  • Репутация:76

    [+] [-]
  • Откуда: Ростов-на-Дону
SV-2k10, ну не получается с паузой, сделай таймаут например 3-5 сек. А вообще и вправду, зачем батник, когда все решается средствами 7z'па?!

[Цитировать]

    sergeysvirid
  • 104
  • Стаж: 9 лет 3 месяца
  • Сообщений: 2495
  • Репутация:127

    [+] [-]
  • Откуда: 65 регион (GMT+11)
SV-2k10,
Привет дружище! aa
Попробуй в SFX-конфиге прописать по такому типу:
;!@Install@!UTF-8!
InstallPath="%Temp%\\WinRAR"
OverwriteMode="2+8"
GUIMode="2"
RunProgram="hidcon:waitall:\"Start.cmd\""
Delete="%%T"
;!@InstallEnd@!
...а в cmd-скрипте в конце не прописывай exit
После выполнения скрипта окно ком.строки и так закроется.
(ну как то в таком духе):
@echo off
cd /d %~dp0
start /wait %~dp0WinRAR.exe

[Цитировать]

    SV-2k10
  • 437
  • Стаж: 9 лет
  • Сообщений: 266
  • Репутация:21

    [+] [-]
vovan1982, aa
Привет Володя … Rar был приведен для примера, но в других случаях мне нужен батник…
Да дело же не только в этом… тут же замкнутый круг получается… с одной стороны тебе предлагают все это сделать быстро в программе, а с другой, говорят, что ты ничего не умеешь…
sergeysvirid, Приветствую Дружище ! aa
Твой “дуплет” отработал идеально – Спасибо ! с меня + в репу… ay
Всех с наступающими !!! az

[Цитировать]

    Joker-2013
  • 1039
  • Стаж: 8 лет 9 месяцев
  • Сообщений: 2053
  • Репутация:120

    [+] [-]
  • Откуда: из прошлого
60508тут же замкнутый круг получается… с одной стороны тебе предлагают все это сделать быстро в программе, а с другой, говорят, что ты ничего не умеешь…
так программа учит... выбираете желаемые настройки, смотрите получившийся конфиг, можно сразу и протестировать... не понравился результат, подправили настройки и вновь запустили...
Это я не в качестве рекламы, а для того что бы сподвигнуть вас к прочтению справки и изучение азов.
Надеюсь про команду start почитали?
Дело в том, что если все запущенные из SFX файлы завершили работу, то срабатывает самоудаление...
Нужно следить что бы они не закрылись раньше времени...

Страница 8 из 10


Показать сообщения:    

Текущее время: 28-Мар 21:13

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы