Войти

Показать полную графическую версию : Модифицированный SFX модуль 7-Zip'а для установок


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 [88] 89 90 91 92 93 94 95 96 97 98 99 100 101

Ж.Д.А.Л.К.Е.Р.
22-06-2016, 16:41
Глюк или так задумано ?

Shortcut="P,{%WinDir%\\Prog.exe},,,,{ProgName},{%WinDir%}"
Создает ярлык в свойствах которого переменная %WinDir% так и записана переменной.

А в случае ниже, вместо %WinDir% ее значение в свойствах ярлыка.
SetEnvironment="PathInst=%WinDir%"
Shortcut1="P,{%PathInst%\\Prog.exe},,,,{ProgName},{%PathInst%}"

Пробовал на Windows 7 x64, Xp x86, модули 1.6.2.3888 и 1.7.0.3873.

specialist
22-06-2016, 17:45
Ж.Д.А.Л.К.Е.Р., как насчет 7zSfxFolder36
http://forum.oszone.net/post-1253563.html#post1253563

sov44
22-06-2016, 18:00
specialist, точно! Несколько раз просмотрел справку но глаз так и не зацепился...
Shortcut="P,{%SfxFolder36%\\Prog.exe},,,,{ProgName},{%SfxFolder36%}"

vladshishkin
22-06-2016, 19:47
А корректно ли работает модуль с диалогом x64???
У меня дает критическую ошибку. Если есть рабочий пример (x64), с интерфейсом киньте сюда или в личку, пожалуйста...

Ж.Д.А.Л.К.Е.Р.
27-06-2016, 19:22
При использовании не стандартного ключа (которого нет в справке по модулю) для запуска sfx архива получаем глюки, пример:

Файл конфигурации:

;!@Install@!UTF-8!
GUIMode="2"
MiscFlags="4"
RunProgram="hidcon:cmd /c Md %SystemDrive%\\111"
RunProgram="hidcon:cmd /c Md %SystemDrive%\\222"
RunProgram="%%P:cmd /c Install.cmd"
;!@InstallEnd@!


Командный файл (в данном примере просто отображает значение SfxVarCmdLine2, а в рабочем варианте выполняет действия в зависимости от значения SfxVarCmdLine2):
@Echo off
Color 02
Echo Script working.
Echo SfxVarCmdLine2 .%SfxVarCmdLine2%.
Pause
Exit

Prog.exe (http://rgho.st/67rzGNM5D) - готовый sfx на основе 7zsd_LZMA2.sfx v1.7.3873.

Просто запустив Prog.exe двойным щелчком мыши, получим две папки в корне системного раздела + консольное окно Install.cmd. Все как и должно быть.
Запуск Prog.exe /Install создаст только папку 222. Папки 111 нет, так как судя по моим тестам первый RunProgram не выполняется.
Если запустим Prog.exe -Install, получим папки "111-install" (неожиданно...) и "222".

Пробовал модули 1.7.3873, 1.7.3900, 1.6.1.3888, результат везде одинаков.

sov44
27-06-2016, 20:30
Ж.Д.А.Л.К.Е.Р.,
Все ключи, передаваемые исполняемой программе внутри архива, будут переданы ТОЛЬКО первой программе, исполняемого в данный момент типа команд запуска.
справка, ключи командной строки.

п.с. использую этот финт для отключения паузы в сборках пакетов обновления офиса http://forum.oszone.net/post-2585016-746.html

vladshishkin
02-07-2016, 14:14
Не удаляется временная папка проекта, если запущен какой нибудь дочерний файл... (Вне папки проекта!)
Есть ли какие то пути решения?

Iska
03-07-2016, 01:50
vladshishkin, покажите готовый пример. Есть ли возможность сначала сменить текущий каталог перед запуском дочернего файла на исполнение?

vladshishkin
03-07-2016, 08:15
Мне тут чуть подсказали... использовать префикс waitall: при закрытии дочернего файла, временная папка удаляется.

Но это немножко не то что я хотел. Временная папка мне уже не нужна, раз я закрыл программу.
А запущенный, дочерний файл справки, в другом каталоге, мне удалять не требуется. (средствами SFX)

KaSpieC 666
21-07-2016, 14:27
Доброго всем времени.
Столкнулся с одной проблемой.
Запакованные SFX-ы, в которых есть функция (в самих программах) открыть папку (в проводнике), на Windows XP - зависают на 20-30 секунд...
То есть, есть портативная программа, в которой есть функция "открыть папку в проводнике", на ХР, при открытии папки в проводнике - зависает запущенный SFX.
Пробовал разные программы по созданию SFX, но безрезультатно.
Есть ли какие-то решения?

specialist
21-07-2016, 16:04
KaSpieC 666, возможно не совсем понял задачу, а чем не вариант
explorer.exe %temp%
а если не нужно ждать пока окно закроют
cmd /с start "" explorer.exe %temp%

KaSpieC 666
21-07-2016, 23:22
specialist, Приветствую.
Вы не совсем правильно меня поняли.
Есть программы портативные, в которых есть функция "Открыть папку" (в проводнике).
Например Everything.
Так вот в ней, можно нажать два раза ЛКМ, по пути, и откроется эта папку в проводнике.
НО, когда я делаю SFX (распаковка, запуск, удаление временной папки) из этой программы, то при попытки "Открыть папку" - программа виснет на 20-30 секунд, пока не откроется проводник...
И это только на ХР, проверял на нескольких компах. На других ОС, такой проблемы нету.

Victor_Man
19-08-2016, 13:01
Не удаляется временная папка проекта, если запущен какой нибудь дочерний файл... (Вне папки проекта!)
Есть ли какие то пути решения? »
1. Все-таки есть процесс в папке SFX, из которого запущен дочерний.
Нужно найти его (попробуйте для этого удалять файлы) и убить.
2. Iskavladshishkin, покажите готовый пример. Есть ли возможность сначала сменить текущий каталог перед запуском дочернего файла на исполнение? »
Такой вариант я применял, работает (в командных файлах).
3. А нельзя запускать через Start?

Сlassic
19-08-2016, 15:07
http://forum.oszone.net/post-389653.html#post389653

vladshishkin
20-08-2016, 20:45
Уважаемый, Олег Щербаков!
Вы, создали замечательный модуль! Благодарю Вас за это!
Меня, да и многих интересует, будет ли обновляться модуль и дальше.
Мы на это надеимся... Если надо профинансировать, напишите...

7z SFX Constructor - программа для создания SFX архивов. (базируется на модуле 1.7) (http://forum.oszone.net/thread-318016.html)

SergeyZV
02-09-2016, 08:59
Что-то Oleg_Sch с 25 июля не появлялся на форуме?

Victor_Man
26-09-2016, 13:20
SergeyZV, я так понимаю, что просто нет времени.
Так уже давно, надеюсь, что все-таки время будет находиться...хотя бы раз в год.
А не присоединится ли кто в соавторы для продолжения проекта, c согласия Олега?
Если бы я был программистом - давно бы это сделал, но увы :(
Когда-то давным-давно я пробовал что-то писать на ASM (даже помню еще, что такое "флаг реентерабельности DOS").
Но сейчас безнадежно отстал...
Пока мне не хватает передачи через SFX папки по умолчанию вызывающей программы (не папки, где находится SFX-модуль!).
Т.е. теряется возможность обращаться к файлам в папке по умолчанию вызывающей программы.
Я поднимал вопрос ранее:
http://forum.oszone.net/post-2506896.html#post2506896
Как минимум, вижу применение для создания SFX-модуля, который может вызываться по ассоциации расширений файлов (ПКМ) и открывать файлы в папке по умолчанию вызывающей программы.
Вот собрал в кучу еще раз пример, добавил демонстрацию решения на FASM (мод лаунчера от addhaloka).
http://www84.zippyshare.com/v/teXmyhv9/file.html

sov44
26-09-2016, 14:58
Victor_Man, изложите суть на доступном языке, в чём у вас проблемы. Модуль как так таковой, программно возможно откуда-то и вызывается, но для практического испольхования 7zipSFX об этом заморачиваться не стоит. Напоминаю, что классический 7zipSFX (name.exe) состоит трёх файлов *.sfx+ *.txt+ *.7z. После запуска содержимое *.7z (опционно) распаковывается в папку %temp%\7ZipSfx.*, в эту-же папку выполняется переход командной строки (%%T).
Вспоминайте синтаксис командной строки и с учётом особенностей модуля прописывайте в *.txt требуемые вам операции.

Victor_Man
27-09-2016, 00:51
Цитата sov44:
Вспоминайте синтаксис командной строки и с учётом особенностей модуля прописывайте в *.txt требуемые вам операции. »
Большое спасибо за ответ...очень даже благодарен, все-таки Вы заслуженный ветеран здесь.
Но...так я это...уже собирал...однако.
Может мало, конечно, ну собрал наверное несколько сотен сборок всего...за пять лет.
Ну, проектов может всего сотну-другую, а остальное модификации - x86, x64 и пр.
А такие азы, которые Вы написали, знал еще в 2011 году, когда версия 1.4 была.
Раньше, каюсь, не знал о существовании модуля.
========================================================
Насчет доступности языка - а пробовали попытаться понять?
Или скачать по последней ссылке и попробовать...не?
Там примеры: клик-клик на .CMD и язык вполне доступный - скрипты Windows, команды модифицированного модуля, Ассемблер...повторяю ссылку:
http://www84.zippyshare.com/v/teXmyhv9/file.html
========================================================
Ладно, эмоции и шутки в строну :) - посмотрите, пожалуйста, может, и есть какое решение в модуле - я не нашел.
Хотя я, конечно, согласен с Вами, что модуль вроде как не затачивался на разборе, откуда он вызывается. Но ведь это всего одна переменная, добавить которую - одна-две строки кода. А переменных в модуле - (0...61) + сверху кучка. Ну появилась бы еще одна.

Victor_Man
27-09-2016, 11:32
Коллеги, а насчет gora что-то вроде неприятные известия...это правда?




© OSzone.net 2001-2012