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

    KaSpieC 666
  • 260
  • Стаж: 9 лет 2 месяца
  • Сообщений: 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

    [+] [-]
  • Откуда: из прошлого
SV-2k10, Скажу больше. Есть конвертер, который преобразует reg файлы в cfg (в сценарий модуля SFX)
Но я что то не помню где его скачать...
Кажется RegToScript, но у меня не вышло...

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

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

    [+] [-]
Посмотрим, может еще кто что ни будь посоветует, ежели нет, то если объединить два совета pokkk92 + gera_serg, то тоже можно собрать некий выход…

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

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

    [+] [-]
  • Откуда: Ростов-на-Дону
Joker-2013, какой-то конвертер reg выкладывал Nikzzzz.
SV-2k10, я бы сделал так
cd /d %~dp0
move /y test.exe %windir%\system32
regedit /S test.reg
start test.exe
exit
Еще можно добавить удаление test.reg и батника после отработки. Запакуй 7zip constructor со стартом батника после распаковки.

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

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

    [+] [-]
  • Откуда: 65 регион (GMT+11)
21722Посмотрим, может еще кто что ни будь посоветует
Привет! aa
Я бы наверное упаковал бы SFX с распаковкой в %TEMP% и запуском оттуда скрипта, в котором бы уже прописал копирование только test.exe в %WINDIR%\System32 и импортом данных из файла в реестр в "тихом" режиме.
По выполнении всех команд - выход и очистка темповой папки.
Как это правильнее сделать пока не знаю, но вот несколько полезных ссылок по этому моменту:
Команда XCOPY - копирование файлов и каталогов.
Команда MOVE - переименование или перемещение файлов и каталогов
Использование редактора реестра REGEDIT в командных файлах Windows
Команда START - запуск приложения в новом окне (P.S. ...так и не понял, нужно тебе после всего запускать приложение или нет)-P.S.
Изучай (если есть время) af , в любом случае это полезно будет знать. ab-В принципе, как посоветовал vovan19822 прописать в скрипте - это наверное и есть правильный вариант.
Команда MOVE здесь наверное даже более уместна, чем XCOPY bs

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

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

    [+] [-]
Мужики, всем спасибо за советы ! sergeysvirid, ты правильно понял, запускать после распаковки ничего не надо
Вот уже битый час бьюсь, но ничего не получается …
пока не выяснил, что архив не хочет работать на папку System32, а посылает все в SysWOW64

как я только не пишу … даже так …
move /y test.exe C:\Windows\System32\
и так
move /y test.exe C:\Windows\System32
и так
move /y test.exe %windir%\system32
все равно шлёт в SysWOW64

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

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

    [+] [-]
  • Откуда: из прошлого
SV-2k10, В начале темы написано как работать с x64
Есть ключи, для пере направления.


Последний раз редактировалось: Joker-2013 (2016-03-18 21:02), всего редактировалось 1 раз

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

    Гость
  • Репутация:0

    [+] [-]
SV-2k10, в cmd, для того, чтобы под х64 не посылало на... SysWOW64, можно применять имя SysNative. Если же скрипт "унисекас" (и для х86, и для х64), тогда нужно прописывать разные пути (под х86 - %windir%\System32, а под х64 - %windir%\Sysnative).
If exist %windir%\SysWOW64 (move /y test.exe %windir%\Sysnative) Else (move /y test.exe %windir%\system32)
А для SFX есть префиксы - x86: или x64:.

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

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

    [+] [-]
  • Откуда: 65 регион (GMT+11)
SV-2k10,
21767пока не выяснил, что архив не хочет работать на папку System32, а посылает все в SysWOW64
Попробуй в конфиге SFX'а прописать так:
;!@Install@!UTF-8!
InstallPath="%TEMP%\\папка_распаковки"
MiscFlags="4"
GUIMode="2"
OverwriteMode="10"
RunProgram="x86:hidcon:cmd /c start /b /w /d %%T скрипт.cmd"
RunProgram="x64:hidcon:cmd /c start /b /w /d %%T скрипт.cmd"
Delete="%%T"
;!@InstallEnd@!

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

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

    [+] [-]
  • Откуда: Одесса
sergeysvirid, Приветствую.
Не будет ли, в таком варианте, удаляться папка распаковки, раньше времени?

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

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

    [+] [-]
  • Откуда: 65 регион (GMT+11)
21777Не будет ли, в таком варианте, удаляться папка распаковки, раньше времени?
Скрипт же запускается с ключом ожидания выполнения /w

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

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

    [+] [-]
Joker-2013, Ну от чего же ... читаю я … вот что нашёл … ag
20998Тут на сайте, есть несколько способов, только я в них не разбираюсь:
Я не зря написал именно в этой теме, потому как KaSpieC 666 изначально создал ее для не знатоков … ну типа тема где можно много раз задавать “тупые” вопросы … ap
Ребят – всем поучаствовавшим Спасибо ! вот теперь все заработало как надо !
Из всех советов можно сделать как минимум три варианта скрипта … в свободное время поиздеваюсь над всеми ay вариантами …

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

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

    [+] [-]
Вот сижу раскладываю по полочкам все уразуметое … ab
С примерами от vovan19822 и conty9, разобрался – все работает.
Во пара мелочей по примеру от sergeysvirid.
sergeysvirid привет, ты привел две сточки в месте в одном файле.
RunProgram="x86:hidcon:cmd /c start /b /w /d %%T скрипт.cmd"
RunProgram="x64:hidcon:cmd /c start /b /w /d %%T скрипт.cmd"
Ты имеешь в виду, что выбрать нужно одну в зависимости от разрядности ? или можно писать обе “унисекс” а система сама отработает тот который нужно ?

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

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

    [+] [-]
  • Откуда: из прошлого
SV-2k10, почитай в справке модуля, что такое префиксы x86: и x64:

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

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

    [+] [-]
  • Откуда: 65 регион (GMT+11)
21872...или можно писать обе “унисекс” а система сама отработает тот который нужно ?
Привет! aa
нужно писать обе, а система сама отработает тот который нужно. bs

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

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

    [+] [-]
sergeysvirid, Ну и последнее, вот по вот этому - cd /d %~dp0
Если я хочю, чтобы скрипт отработал из папки, то я просто добавляю эту строчку с начало и все ?...

Так :)

cd /d %~dp0
RunProgram="x86:hidcon:cmd /c start /b /w /d %%T скрипт.cmd"
RunProgram="x64:hidcon:cmd /c start /b /w /d %%T скрипт.cmd"

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


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

Текущее время: 20-Апр 07:29

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


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