[Quote]

    KaSpieC 666
  • 260
  • Longevity: 10 years
  • Posts: 787
  • REPUTATION:127

    [+] [-]
  • Location: Одесса
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

Warning from KaSpieC 666


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


Last edited by KaSpieC 666 on 2016-03-18 06:54; edited 27 times in total

[Quote]

    rockdgon
  • 1013
  • Longevity: 10 years
  • Posts: 93
  • REPUTATION:0

    [+] [-]
korsak7, походу придется велосипед изобретать. Аддон PotPlayer ставиться через inf и привязан к папке Program Files, а я хочу чтобы у меня в произвольную установка происходила да еще и с ассоциациями, пусть и без плюшек в виде де-инсталла и отображения в "Программы и компоненты".
А вообще можно совместить cmd + inf = универсальность(можно менять пути в установочном inf), только мне нужно найти решение замены слов в файле с помощью cmd.
Что то похожее нашел тут http://winreview.ru/rabota-so-strokami-v-komandnyx-fajlax-windows-7/ - изучаю..

Кажись нашел: (только как задать множественные замены, неужели дублировать код?)

@echo off
setlocal enabledelayedexpansion
Set infile=DPMP.inf
Set find=%%16422%%\PotPlayer\
Set replace=%~d0%~p0
@echo off
setlocal enabledelayedexpansion
set COUNT=0
for /F "tokens=* delims=," %%n in (!infile!) do (
set LINE=%%n
set TMPR=!LINE:%find%=%replace%!
Echo !TMPR!>>TMP.TXT
)
move TMP.TXT 111%infile%

[Quote]

    korsak7
  • 107
  • Longevity: 11 years
  • Posts: 1063
  • REPUTATION:62

    [+] [-]
а я хочу чтобы у меня в произвольную установка происходила
имхо блажь ab
только мне нужно найти решение замены слов в файле с помощью cmd.
Это плохое и велосипедное решение.
В скрипте же есть путь установки
SetEnvironment="PathInst=%ProgramFiles%\\%Name%"
тебе нужно просто вывести эту строку для редактирования при установке

[Quote]

    rockdgon
  • 1013
  • Longevity: 10 years
  • Posts: 93
  • REPUTATION:0

    [+] [-]
тебе нужно просто вывести эту строку для редактирования при установке
но в данном случае дальнейшая установка проходит через DPMP.inf - ассоциации + ярлыки, а там пути к программе дефолтные %ProgramFiles%\\%Name%.
Чтобы можно было вывести для редактирования и устанавливать куда захочется нужно чтобы DPMP.inf автоматом правился.
Поэтому хочу сделать через промежуточный install.bat все это дело. Ну взбрело мне в голову многофункциональный portable сделать ab
А теперь просьба: можете подсказать как этот код в одну строку записать:
@echo off
setlocal enabledelayedexpansion
set COUNT=0
for /F "tokens=* delims=," %%n in (DPMP.inf) do (
set LINE=%%n
set TMPR=!LINE:%%16422%%\PotPlayer\=%~d0%~p0!
Echo !TMPR!>>"%temp%\TMP.TXT"
)
move "%temp%\TMP.TXT" "111DPMP.inf"
у меня не получается, пробовал через && и белиберда выходит
а почему велосипедный? работает же

[Quote]

    korsak7
  • 107
  • Longevity: 11 years
  • Posts: 1063
  • REPUTATION:62

    [+] [-]
Этот установщик запрашивает путь установки. Я потерял нить мысли - ради чего ты мучаешься?

[Quote]

    rockdgon
  • 1013
  • Longevity: 10 years
  • Posts: 93
  • REPUTATION:0

    [+] [-]
korsak7, ну смотри путь он запрашивает, но установка с созданием ярлыков + регистрацией ассоциаций + регистраци в "Программы и компоненты" возможно только по дефолтному пути. Там даже предупреждение есть - "Для установки не меняйте путь!!!". Вот. А так сделано потому что установка осуществляется с помощью .inf файла, в нем прописаны все параметры установки программы и причем с своими переменными.
Мне понравилось такое решение! С помощью такого типа установки можно прикрутить и деинсталяцию вполне нормальную с удалением всех следов из системы.
Но функционал инсталятора хочу расширить, ради этого и мучаюсь ab
Хочу чтобы уставливалось со всеми плюшками не только в Program Files а куда пользователь захочет. Так же несколько вариантов установки/запуска с ключами будет.

[Quote]

    korsak7
  • 107
  • Longevity: 11 years
  • Posts: 1063
  • REPUTATION:62

    [+] [-]
путь он запрашивает,
...
возможно только по дефолтному пути.
ага сейчас прочитал ag Элегантнейшее решение bb

[Quote]

    KaSpieC 666
  • 260
  • Longevity: 10 years
  • Posts: 787
  • REPUTATION:127

    [+] [-]
  • Location: Одесса
Может кто подскажет, как прописать в сценарии, чтобы удалялась папка распаковки.
Пробовал Delete="%%T" - папка остаёться... Также, пробовал полный путь указывать...
С этим, я так и не разобрался (что, куда):
24122что то типо того: RunProgram="hidcon: cmd.exe \c del File" или rmdir для папки
24126
Ждать закрытия программы Start /wait и удалять папку ac cd /d \Temp
rmdir /s /q \Temp
24128
Start /wait программа.exe
rmdir /S /Q c:\Users\DEMON\AppData\Local\Temp\папка
можно попробовать процесс убить сначала taskkill /f /im программа.exe
P.S. я часто встречал данную ситуацию, но не интересовался. А сейчас стало интересно.
Вот сама программа (с которой сейчас играюсь) - https://yadi.sk/d/k8N1p0N6rTie7
Она портативная, при запуске создаёт рядом пару файлов.

[Quote]

    Joker-2013
  • 1039
  • Longevity: 10 years
  • Posts: 2052
  • REPUTATION:120

    [+] [-]
  • Location: из прошлого
KaSpieC 666, а ручками удаляется?

[Quote]

    KaSpieC 666
  • 260
  • Longevity: 10 years
  • Posts: 787
  • REPUTATION:127

    [+] [-]
  • Location: Одесса
Joker-2013,
А то. После закрытия программы - удаляется.
Думаю, что дело в том, что создаються дополнительные папки (но не уверен).
P.S. я извиняюсь, всё в спешке делаю. Интернет вот-вот отключат, и я пытаюсь решить интересующие вопросы + качаю всё подрят ap

[Quote]

    sergeysvirid
  • 104
  • Longevity: 11 years
  • Posts: 2705
  • REPUTATION:127

    [+] [-]
  • Location: 65 регион (GMT+11)
KaSpieC 666,
Привет! Если временная папка после закрытия программы не удаляется, то это сто пудов остаётся запущеным какой-то фоновый процесс, который нужно или как-то "убивать" (после закрытия программы) ...или "забить" на это дело. ag

[Quote]

    KaSpieC 666
  • 260
  • Longevity: 10 years
  • Posts: 787
  • REPUTATION:127

    [+] [-]
  • Location: Одесса
sergeysvirid, Привет.
Да вроде ничего не держит. Уже думал воспользоватся твоим вторым вариантом "забить", но всётаки домучал, и получилось ae :
RunProgram="waitall:FolderSizes.exe"
Delete="%%T"
Работает! bp az

[Quote]

    sergeysvirid
  • 104
  • Longevity: 11 years
  • Posts: 2705
  • REPUTATION:127

    [+] [-]
  • Location: 65 регион (GMT+11)
24136RunProgram="waitall:FolderSizes.exe"
А до этого как прописывал?

[Quote]

    KaSpieC 666
  • 260
  • Longevity: 10 years
  • Posts: 787
  • REPUTATION:127

    [+] [-]
  • Location: Одесса
sergeysvirid,
Как прога прописывала + кучи других вариантов (даже бредовые).
Да и акцент я ставил на строчку Delete, и ещё пару бредовых вариантов.
Инфы то нету, вот и эксперементирую методом "Тыка" ag
Может и другие способы есть, но у меня не вышло иначе (папка не удалялась).
Ссылку на файл я выкладывал выше, делал в 7ZipSFX_Constructor.

[Quote]

    vovhas
  • 14113
  • Longevity: 9 years 7 months
  • Posts: 32
  • REPUTATION:1

    [+] [-]
  • Location: Vladivostok
Может кто в курсе, почему не выполняется команда в сценарии.
RunProgram="x86:hidcon:cmd.exe /c move /y TEST %sfxFolder26%"
В батнике она выполняется без проблем.
move TEST "%APPDATA%"
Эта же команда для переменной %sfxFolder36% выполняется правильно.

[Quote]

    Joker-2013
  • 1039
  • Longevity: 10 years
  • Posts: 2052
  • REPUTATION:120

    [+] [-]
  • Location: из прошлого
31721TEST
может так? %%T\\TEST
Не скрывайте консольное окно и посмотрите что пишет...

Page 4 of 10


Display posts:    

Current time is: 24-Jan 09:15

All times are UTC + 3


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum