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

    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 раз(а)

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

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

    [+] [-]
  • Откуда: Одесса
Так как команд очень много, решил добавлять в шапку только самые ходовые!
Буду признателен, за любую помощь или подсказки в теме!
P.S. решенные "вопросы" и предложенные команды/подсказки и т.д., после проверки - буду переноситься в шапку!
Чтобы ненужно было читать и выискивать ответ в теме.

Информация от KaSpieC 666


Зарезервировано :)


Последний раз редактировалось: KaSpieC 666 (2016-03-11 22:14), всего редактировалось 2 раз(а)

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

    SergeyZV
  • 528
  • Стаж: 9 лет
  • Сообщений: 1313
  • Репутация:34

    [+] [-]
20933Не пробовал, но логика подсказывает
RunProgram="%%P:ProgramName_%%P.exe"
при наличии в архиве ProgramName_x86.exe и ProgramName_x64.exe запустится тот, что соответствует разрядности.
Не лучшый метод, т.к. в диспетчере задач висят сразу 2 процесса ProgramName_%%P.exe и ProgramName.exe.
RunProgram="hidcon:x64:cmd.exe /c (del /q ProgramName.exe & rename ProgramName64.exe ProgramName.exe)"
RunProgram="hidcon:x86:cmd.exe /c (del /q ProgramName64.exe)"
RunProgram="hidcon:cmd.exe /c start ProgramName.exe"
Так предпочтительнее.

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

    SunOK
  • 9
  • Стаж: 9 лет 4 месяца
  • Сообщений: 352
  • Репутация:32

    [+] [-]
  • Откуда: Україна, Перлина Поділля
aa SergeyZV, продолжаем теоретику: висят 2 процесса помимо самого %SFX%.exe? или на системе х32 запускается также процесс ProgramName.exe, хотя такого файла физически нет в архиве?
А после
RunProgram="hidcon:cmd.exe /c start ProgramName.exe"
%SFX%.exe как бы отработал и может не подчистить после себя ТЕМП. Зато можно вынимать носитель с SFX-архивом.

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

    SergeyZV
  • 528
  • Стаж: 9 лет
  • Сообщений: 1313
  • Репутация:34

    [+] [-]
%SFX%.exe как бы отработал и может не подчистить после себя ТЕМП. Зато можно вынимать носитель с SFX-архивом.
Не спорю. Есть ньюансы.

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

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

    [+] [-]
  • Откуда: Одесса
Ещё одно интерестно - как совместить в одну, эти две строчки (или в одном коде/скрипте их поместить):
RunProgram="hidcon:cmd.exe /c start \"\" \"%%T\файл.exe\"" - отвязка от sfx архива, после запуска
RunProgram="%%P:ProgramName_%%P.exe" - запуск sfx-а соответственной разрядности ОС.

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

    SunOK
  • 9
  • Стаж: 9 лет 4 месяца
  • Сообщений: 352
  • Репутация:32

    [+] [-]
  • Откуда: Україна, Перлина Поділля
Так Joker-2013 писал же ранее, если я правильно успел заметить
RunProgram="hidcon:%%P:ProgramName_%%P.exe"
Тоесть теоретически
RunProgram="hidcon:%%P:cmd.exe /c start \"\" \"%%T\файл%%P.exe\""
правда не знаю нужно ли после хидкона переменная, если на обычной ОС запускать.

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

    SunOK
  • 9
  • Стаж: 9 лет 4 месяца
  • Сообщений: 352
  • Репутация:32

    [+] [-]
  • Откуда: Україна, Перлина Поділля
О, я вычитал такое: платформенная секция(см. справку) определяет какой сценарий выполнять. Тоесть пишем файл для выбора что запускать:
;!@Install@!UTF-8:x86!
RunProgram="hidcon:cmd.exe /c start \"\" \"%%T\файл_x86.exe\""
;!@InstallEnd@:x86!
;!@Install@!UTF-8:x64!
RunProgram="hidcon:cmd.exe /c start \"\" \"%%T\файл_x64.exe\""
;!@InstallEnd@:x64!
hidcon в данном случае параметр. В контексте WinPE, в которой отсутствует подсистема х86, возникает вопрос: придется сразу делать с SFX-модулем х64 и тогда эта самораспаковка не запустится на 32-разрядной ОС? Тогда нет смысла в дополнительных секциях, пишем сразу конфиг х64.
Для обычной ОС и WinPE с поддержкой х86, нужно использовать модуль х86. umnik

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

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

    [+] [-]
  • Откуда: Одесса
SunOK, Приветствую.
Тут на сайте, есть несколько способов, только я в них не разбираюсь:
RunProgram="x86:имя_программы_32.exe"
RunProgram="x64:имя_программы_64.exe"
;!@Install@!UTF-8:x86!
RunProgram="shmnview.exe"
;!@InstallEnd@:x86!
;!@Install@!UTF-8:x64!
RunProgram="shmnview-x64.exe"
;!@InstallEnd@:x64!
И тот, что в шапке.

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

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

    [+] [-]
  • Откуда: Одесса
Доброго всем времени.
Немного обновил шапку.
Проверьте кто-то, создание ярлыка в ПУСК.
Shortcut="Su,{%%T\\файл.exe}"
У меня, чего-то тут создало (или так и должно быть?):

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

    Sinnersoul
  • 317
  • Стаж: 9 лет 1 месяц
  • Сообщений: 10
  • Репутация:0

    [+] [-]
20942
- отвязка от sfx архива, после запуска
- запуск sfx-а соответственной разрядности ОС.
Я в таких случаях в своих sfx архивах использую батники, которые потом самоликвидируются.
Так проще al
https://dropmefiles.com/ipW0P

CentBrowser

CentBrowser sfx config

;!@Install@!UTF-8!
SetEnvironment="Name=CentBrowser"
SetEnvironment="Ver="
SetEnvironment="putb=%%S"
InstallPath="%TEMP%\\123Temp\\%Name%"
Title="%Name%"
BeginPrompt="     %Name% %Ver%\n\n******************************
Нажав [OK] -                  Распаковка %Name% в текущий каталог.
Нажав [SHIFT]+[OK] -     Запуск %Name%.
******************************
Ключи тихой установки:
-ai1   Установка %Name% %Ver% в APPDATA и вынесение ярлыка на раб. стол.
-ai2   Запуск %Name% без вопроса. (После выхода удаляется из временного каталога)
-ai3   Распаковка %Name% в текущий каталог без вопроса.
-ai4   Распаковка установочных 86.exe и 64.exe в текущий каталог
     Файл lnk.bat создаёт ярлык на рабочем столе.
"
ExtractDialogText="Подготовка..."
GUIMode="1"
GUIFlags="2+4+8+16+32+2048+4096"
MiscFlags="4"
ExtractTitle="%Name%"
;
RunProgram="hidcon:x64:cmd.exe /c move 64.exe %%S\64.exe"
RunProgram="hidcon:waitall:x64:cmd.exe /c start %%S\64.exe -nr"
RunProgram="hidcon:waitall:x64:cmd.exe /c del %%S\64.exe"
RunProgram="hidcon:x86:cmd.exe /c move 64.exe %%S\86.exe"
RunProgram="hidcon:waitall:x86::cmd.exe /c start %%S\86.exe -nr"
RunProgram="hidcon:waitall:x86:cmd.exe /c del %%S\86.exe"
;
AutoInstall="hidcon:Cent_temp.cmd"
AutoInstall1="hidcon:\"installbat.bat\""
AutoInstall2="hidcon:Cent_temp.cmd"
;
AutoInstall3="hidcon:x64:cmd.exe /c move 64.exe %%S\64.exe"
AutoInstall3="hidcon:waitall:x64:cmd.exe /c start %%S\64.exe -nr"
AutoInstall3="hidcon:waitall:x64:cmd.exe /c del %%S\64.exe"
AutoInstall3="hidcon:x86:cmd.exe /c move 64.exe %%S\86.exe"
AutoInstall3="hidcon:waitall:x86::cmd.exe /c start %%S\86.exe -nr"
AutoInstall3="hidcon:waitall:x86:cmd.exe /c del %%S\86.exe"
;
AutoInstall4="hidcon:waitall:cmd.exe /c move 64.exe %%S\CentBrowser64.exe"
AutoInstall4="hidcon:waitall:cmd.exe /c move 86.exe %%S\CentBrowser86.exe"
;
Delete="%TEMP%\\123Temp\\%Name%"
;!@InstallEnd@!

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

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

    [+] [-]
  • Откуда: Одесса
Sinnersoul,
Ну, я пока на стадии изучения SFX. Вот, испробовал все варианты ярлыков - всё отработало. Только в одном вопрос появился.
Пытаюсь, из всей информации, отфильтровать самое нужное/используемое. И вношу в шапку.
А там уже посмотрим, может и батники поизучаю.

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

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

    [+] [-]
Всем привет, помогите пожалуйста кто в теме, нужен пример (не сложный) кода для конфиг-а.
Проблема в том что в нем две функции … в корне архива буду лежать два файла test.ехе и test.reg.
•Нужно распаковать файл test.ехе в C:\Windows\System32\test.ехе
•И чтобы запустился рег файл (test.reg), но сам рег файл при этом не копировался в System32 и когда рег файл запустился, не задавался вопрос (вы хотите внести данные ?…) в общем так, чтобы все отработало в тихом режиме – спасибо.

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

    pokkk92
  • 447
  • Стаж: 9 лет
  • Сообщений: 36
  • Репутация:0

    [+] [-]
  • Откуда: Украина, Днепропетровск
SV-2k10,
RunProgram="REGEDIT /S 2.reg"
2.reg ЭТО имя файла.
/S как я понимаю параметр скрытого запуска.
Во всяком случае этот код работает и мною проверен.
Но как сделать что бы он не копировался в систем не знаю... попробуйте код на удаление файлов...
Delete="\"%%T\файл.exe"
еще подумал:
1. По моему есть самоудаляющиеся батники?? а что если reg конвертировать в батник и сделать его удаляемым)
2. Распаковка SFX в темп, и последующий запуск reg в скрытом режиме и запуск распаковки файла в system32.

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

    gera_serg
  • 1171
  • Стаж: 8 лет 8 месяцев
  • Сообщений: 1421
  • Репутация:9

    [+] [-]
21718Но как сделать что бы он не копировался в систем не знаю...
Видимо выбрать другую директорию для распаковки и там произвести вместе с Зарегистрировать *reg копирование только трубуемого в Систем32
RunProgram="COPY...
или просто "COPY...

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


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

Текущее время: 28-Мар 18:27

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


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