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

    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

    [+] [-]
  • Откуда: из прошлого
48900А Вы попробуйте дальше.
Куда дальше???
Не устанавливается... И что из этого??? SFX тут точно не при чем...
Модуль распаковывает файлы во временную папку TEMP, а для установщика, может это недопустимо.
Сделайте так, что бы установщику все понравилось...


Последний раз редактировалось: Joker-2013 (2018-01-08 00:17), всего редактировалось 1 раз

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

    soldatovaua
  • 15814
  • Стаж: 7 лет
  • Сообщений: 26
  • Репутация:0

    [+] [-]
Joker-2013,
Загрузить файлы из интернета.
http://rgho.st/65jzbSxB9

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

    soldatovaua
  • 15814
  • Стаж: 7 лет
  • Сообщений: 26
  • Репутация:0

    [+] [-]
Joker-2013,
Вы, конечно, извините, что надоедаю.
Но с другими модулями все в порядке, без флага "4" и с модулем от ОЩ все в порядке.
Если править манифест - все равно не работает.
Если проблема была бы со всеми модулями, либо в целом с этим, я бы поставил точку и забыл.
Но тут какая-то особенность запуска от имени Администратора, причем только модуле от ОЩ.
Вот и хочу понять.

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

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

    [+] [-]
  • Откуда: из прошлого
48903Но тут какая-то особенность запуска от имени Администратора, причем только модуле от ОЩ.
это только ваши, догадки... Вы ходите сделать то, что не предусмотрено установщиком, вот он и ерепенится.
Проводите анализ, что же конкретно не нравится установщику. Но пожалуйста, своими силами...

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

    soldatovaua
  • 15814
  • Стаж: 7 лет
  • Сообщений: 26
  • Репутация:0

    [+] [-]
Joker-2013,
1. С LZMA SDK - все в порядке.
2. С WinRAR - все в порядке.
3. С ОЩ без флага "4" - все в порядке.
4. С ОЩ с флагом "4" или "highestAvailable" в манифесте, или без флага "4", но ПКМ - Запуск от имени Администратора, - не работает.
Joker-2013,
Но пожалуйста, своими силами...
Принято. Спасибо, буду пытаться.

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

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

    [+] [-]
  • Откуда: из прошлого
489051. С LZMA SDK - все в порядке.
В манифесте какие права???
Наверное такие же как:
3. С ОЩ без флага "4" - все в порядке.
В WinRar модуле в манифесте что за права????
2. С WinRAR - все в порядке.
Из всего вышеописанного я понял, что права Администратора не требуются.
Тогда и не указывайте флаг.

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

    soldatovaua
  • 15814
  • Стаж: 7 лет
  • Сообщений: 26
  • Репутация:0

    [+] [-]
Joker-2013,
1. LZMA SDK. Resource Hacker не показывает наличие манифеста. Но по умолчанию все SFX, созданные с помощью данного модуля, запускаются от имени Админа.
2. WinRAR. В параметрах SFX на вкладке Дополнительно - "ставим галку Запрос административного доступа".
Из всего вышеописанного я понял, что права Администратора не требуются.
Тогда и не указывайте флаг.
Права Админа требуются самому файлу dxwsetup.exe из состава SFX, а если сам SFX запускается от имени Админа, соответственно ОС больше их не запрашивает.
Если в модуле ОЩ не указывать флаг "4", то при распаковке права Админа запросит файл dxwsetup.exe.
Вот тут я и пытаюсь разобраться, как модули ОЩ работают с правами Админа.

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

    Adler
  • 1708
  • Стаж: 8 лет 5 месяцев
  • Сообщений: 1196
  • Репутация:65

    [+] [-]
  • Откуда: Луганск
48908Вот тут я и пытаюсь разобраться, как модули ОЩ работают с правами Админа.
Ну это реализовано на уровне исходников модуля. Как это сделано в данном случае не знаю, и как это на С++ делается правильно тоже не знаю, но к примеру на C# это делается проверкой на наличие прав админа на самых ранних стадиях выполнения программы, и если таковых нет, то программа запускает новый экземпляр самой себя, а этот закрывает.
Модуль судя по всему делает это подобным образом, т.к. исходный процесс не закрывается, а второй экземпляр запускается с параметром "-sfxelevation" (параметр повышения прав):

P.S. Процесс с архива запущен под другим именем, на скрине именно две копии sfx модуля
Хотя самым правильным вариантом считается решение через манифест.
P.S.S. Модуль имеет открытый исходник, возьмите да посмотрите, что там для чего и как реализовано.

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

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

    [+] [-]
  • Откуда: из прошлого
Adler, вот ты загнул в последней фразе...
Человек в трех соснах заблудился, в исходникак он потеряется совсем.

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

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

    [+] [-]
  • Откуда: из прошлого
soldatovaua, разговор не имеет перспектив, даже если есть в модуле, какая то ошибка реализации, то исправлать его не кому. Так как автор забил на проект.
Так как вы используете готовые решения, выбирайте доступные и работающие в конкретных обстоятельствах.
В модулях Олега Щербакова полно ошибок, но это не мешает нам его использовать.....

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

    soldatovaua
  • 15814
  • Стаж: 7 лет
  • Сообщений: 26
  • Репутация:0

    [+] [-]
Оставил пока вопрос с запуском от имени Админа.
Подскажите, пожалуйста, по конфигу. Что-то я запутался в двойных кавычках в параметре RunProgram.
В Windows команда запуска была следующая:
seamonkey.exe -CreateProfile "PrimeUser %UserProfile%\SeaMonkey\profiles\PrimeUser"
Как правильно она будет в RunProgram?

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

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

    [+] [-]
  • Откуда: из прошлого
soldatovaua, я понимаю, что вы хотите научится делать все вручную...
Но все таки проще программой, например: 7z SFX Constructor он простые сценарии делает, путем настроек в главном меню. Можно хотя бы подсмотреть, какой создаст...

Кстати нашел, что в ней можно доработать...
Одинарные кавычки в параметрах запуска, нужно менять на \"
а слеши на двойные \\
seamonkey.exe -CreateProfile "PrimeUser %UserProfile%\SeaMonkey\profiles\PrimeUser"
Что то я присмотрелся к вашему параметру...
А вы уверены, что он изначально правильный?
%UserProfile%\SeaMonkey\profiles\PrimeUser
это путь к папке, он должен быть в кавычках, во избежания ошибки, из за пробелов в пути.
А вот что делает слово PrimeUser в тех же кавычках, не пойму...
По мне, параметр должен выглядеть так:
seamonkey.exe -CreateProfile PrimeUser "%UserProfile%\SeaMonkey\profiles\PrimeUser"

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

    soldatovaua
  • 15814
  • Стаж: 7 лет
  • Сообщений: 26
  • Репутация:0

    [+] [-]
Joker-2013,
А вы уверены, что он изначально правильный?
https://developer.mozilla.org/en-US/docs/Mozilla/Command_Line_Options
-CreateProfile "profile_name profile_dir"

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

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

    [+] [-]
  • Откуда: из прошлого
49029seamonkey.exe -CreateProfile "PrimeUser %UserProfile%\SeaMonkey\profiles\PrimeUser"
Правильную строчку сценария я вам показал на скриншоте.
Да и моя программа, научилась "исправлять" параметры запуска.

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

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

    [+] [-]
Здравствуйте!
Пожалуйста, помогите разобраться новичку.
Какую функцию выполняет файл output.taw, который прописан через пробел после Setup=uploadit.exe?
Что это за файл такой, что он даже и не отображается в левом столбце программы WinRAR?
https://photos.google.com/share/AF1QipPiX-whEs7MH1U...T0xnamh6NzFCVFNB
;Расположенный ниже комментарий содержит команды SFX-сценария
Setup=uploadit.exe output.taw
Silent=1
Overwrite=1

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


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

Текущее время: 29-Мар 00:07

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


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