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

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

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

    doncat2007
  • 17091
  • Стаж: 6 лет 5 месяцев
  • Сообщений: 7
  • Репутация:0

    [+] [-]
Благодарю Вас. Я надеюсь, что Вы поняли меня. Еще раз конкретизирую, я знаю, как добавлять ключи в реестр. Мне нужно, что-бы по завершению работы sfx-архива, последний удалил (подчистил за собой) созданные при работе упакованного им приложения ключи реестра. Какие конкретно ключи реестра создаются при работе упакованного в sfx-архив конкретного приложения, я естественно знаю. Как удалять их с помощью рег-файла тоже в в курсе (ставится перед ключом реестра префикс -). Как добавлять ключи в реестр в сценарии sfx, в том числе и 64-разрядную систему, я также разобрался.
К описанию по созданию сценария sfx, подробно приведены команды по удалению файлов и папок по завершению работы sfx-архива, но ни слова не сказано про удаление значений реестра по завершению работы sfx-архива.
Я не программист и пытаюсь объяснить всё общедоступным мне языком. Так что извините за назойливость.

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

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

    [+] [-]
  • Откуда: из прошлого
doncat2007, Вам недостаточно, той информации что я дал выше?
Я вроде всё описал...
Каждая команда строка в sfx, выполняется после выполнения предыдущей.
Так же имеются префиксы ожидания....
Запускаете файл выполнения, ждёте его завершения, удаляете ключи...
Можно использовать, для создания портативных приложений, лоадер
Есть еще один лоадер, не помню название...

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

    doncat2007
  • 17091
  • Стаж: 6 лет 5 месяцев
  • Сообщений: 7
  • Репутация:0

    [+] [-]
Благодарю за информацию, но к сожалению мне она не помогла. Указанный Вами код для удаления ключей реестра "RunProgram="hidcon:Reg.exe delete", как аналог описанного здесь в справочнике команд для сценариев SFX с описаниями кода "Delete= - удалить выбранные файлы/папки, после закрытия запущенного файла", у меня не работает. Буду дальше искать выход, как найду, обязательно подробно изложу здесь.

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

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

    [+] [-]
  • Откуда: Ростов-на-Дону
doncat2007, а что мешает в батник прописать удаление ключей реестра и вставить его последней строкой сценария?

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

    doncat2007
  • 17091
  • Стаж: 6 лет 5 месяцев
  • Сообщений: 7
  • Репутация:0

    [+] [-]
46371doncat2007, а что мешает в батник прописать удаление ключей реестра и вставить его последней строкой сценария?
Благодарю за подсказку в направлении, всё получилось. Только пришлось батник конвертировать в экзешник в программе Bat_To_Exe_Converter, т.к. батник у меня не захотел нормально отрабатывать в 64-разрядной системе. Пробовал и с префиксом х64, всё бестолку. Возможно я что-то не так прописываю. Хотя, я бы все равно конвертировал его в экзешник, т.к. последний и надежней, и срабатывает чище: не выдает при запуске моргание cmd.
Всем спасибо за помощь.

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

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

    [+] [-]
Разбираюсь с модулями от ОЩ. Возник вопрос.
Файл конфига:
;!@Install@!UTF-8!
GUIMode="2"
MiscFlags="4"
RunProgram="dxwsetup.exe"
;!@InstallEnd@!
Извлекает файлы во временную папку, запускает файл dxwsetup.exe (веб-установщик DirectX от MS). На этапе работы установщика возникает ошибка. Не может создать временные файлы во временной папке.
Если из файла конфига удалить запрос прав администратора:
MiscFlags="4"
то все нормально.
В чем может быть проблема?

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

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

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

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

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

    [+] [-]
Joker-2013,
Выход, конечно. Просто хочу разобраться.
Работает, если удалить MiscFlags="4". Сам файл (не SFX-архив) запрашивает права Админа.
Пробовал менять значение в манифесте вместо флага 4 - ошибка.
С модулем из состава LZMA SDK от Игоря Павлова все нормально.

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

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

    [+] [-]
  • Откуда: из прошлого
48797С модулем из состава LZMA SDK от Игоря Павлова все нормально.
так он не поддерживает флаг MiscFlags="4".

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

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

    [+] [-]
Joker-2013,
У него, видимо, по умолчанию это настроено. Так как SFX-архивы создаются с требованием прав Администратора.

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

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

    [+] [-]
Нашел на OSZone такую же ситуацию. Пользователь CryptoNick отмечал тут:
Обнаружил во время тестирования, одну особенность:
Если программа "родитель", запущена не от имени Администратора, и имеется в сценарии, флаг: MiscFlags="4", то диалоги не выводятся, а модуль возвращает код ошибки: 11
Если все прошло успешно, например нет: MiscFlags="4" или запущено от Админа, то возвращает: 0
Кто бы знал, сколько мне понадобилось времени, что бы это понять.... Получается что MiscFlags="4" считается, а завысить права не может, из за этого и дает ошибку...
Не знаю, баг это или фича, но вводит в ступор...

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

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

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

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

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

    [+] [-]
Joker-2013,
Ищу. Это уже неплохо, по-моему.
Архив с файлами http://rgho.st/7PqVJVRZn
Можете проверить: создать SFX-архив с помощью модуля от ОЩ (и указанным мною конфигом), оригинального модуля из состава LZMA SDK и модуля от WinRAR.
Все остальные SFX с правами Админа работают.

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

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

    [+] [-]
  • Откуда: из прошлого
soldatovaua, Собрал, работает, запускается...

http://rgho.st/7nxKwVKnB

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

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

    [+] [-]
Joker-2013,
Спасибо, что пытаетесь помочь.
Да, запускается. А Вы попробуйте дальше.

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


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

Текущее время: 29-Мар 17:41

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


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