Показать полную графическую версию : Модифицированный SFX модуль 7-Zip'а для установок
tipclose, спасибо за сочувствие! Но у меня есть все эти утилиты! Вопрос в том, как заставить это произвести распаковку SFX-архива из командного файла и без участия пользователя! Либо как пользоваться утилитой 7ZSplit.exe в тихом режиме!
Oleg_Sch
30-03-2009, 15:40
По поводу 7zSplit отвечу. Можно использовать недокументированные ключи
7zSplit [-m имя_файла_модуля] [-c имя_файла_конфигурации] [-a имя_файла_архива] имя_sfx_архива
по ресурсам не подскажу. смотрите в сторону различных редакторов ресурсов.
Oleg_Sch, имя_sfx_архива перед парметрами работает! А вот как заставить его не выводить окно программы, а просто распаковать архив и закрыться? Есть такие недокументированные возможности?
Oleg_Sch
30-03-2009, 16:49
Думаете я помню все ключи/параметры своих программ :) ?
Попробуйте -rh и/или -f добавить (если мне память не изменяет).
А можно добавить поддержку путей, используемых в Advanced INF Setup: %10%, %11%, и так далее? Это гораздо удобней, чем прописывать так: %systemroot%\System32, %systemroot%\System. Таким образом системную папку, которая в Windows XP равна System32, в Windows 98 равна System, а в Windows Vista и Windows 7 равна ещё какому-то другому значению, можно будет задать переменной %11%, и это сработает на всех системах.
Lite, Наверняка можно, но тогда размер модуля значительно вырастит.
Я уже думал предложить, сделать два варианта модуля. Что нибуть на подобии модуля версии 1.2.6 (сколько он там сейчас весит? Около 50 кил, если мне память не изменяет.) И Что нибуть на подобии инсталоятора в мару метров с кучей всеяких прибамбасов.
1в Windows 98 равна System »
Начиная с версии 1.1 beta, модуль требует Windows 2000 или позже. Он больше не поддерживает операционные системы Windows 95, Windows 98 и Windows Me.
2%10%, %11%, и так далее? »"Огласите весь список, пожалуйста..." :) дабы сами представляли то, что просите.
Модуль имеет еще около 50 недокументированных переменных, их перечень можно найти в ветке. В том числе и 7zSfxFolder37=%systemroot%\System32
Ну вот. А откуда мне знать о недокументированном?! Оно ведь не документировано))
А перелистать все страницы темы не просто.
Спасибо хоть на этом. Указали бы всё возможности, ничего не скрывая сразу. Если бы многое не умалчивали, было бы намного проще жить.
Указали бы всё возможности, ничего не скрывая сразу. »
Все документировать сложно. :( Но чтобы облегчить Вам жизнь, вот цитата из недописанного FAQВопрос: Какие еще переменные использует модуль во время своей работы и можно ли их использовать в файле конфигурации?
Ответ: Создайте 7z SFX архив со следующим файлом конфигурации (7z архив может быть любой):
;!@Install@!UTF-8!
RunProgram="cmd /c @Echo Off& Set& Pause>nul"
;!@InstallEnd@!
Запустите полученный 7z SFX архив и в консольном окне увидите все переменные.
Использовать их можно как и другие переменные модуля, например, так:
RunProgram="hidcon:cmd /c del \"%7zsfxfolder07%\\Total Commander.lnk\""
Delete="%7zsfxfolder24%\\Total Commander.lnk"
Oleg_Sch
03-04-2009, 01:01
От себя добавлю. Все номера в 7zSfxFolderXX полноценно даже в MSDN не расписаны. Как их документировать ?
Для общего развития (calc.exe Вам в помощь для перевода из шестнадцатиричного в десятичный, описания CSIDL_* можно посмотреть
http://msdn.microsoft.com/en-us/library/bb762494(VS.85).aspx
):
#define CSIDL_DESKTOP 0x0000
#define CSIDL_INTERNET 0x0001
#define CSIDL_PROGRAMS 0x0002
#define CSIDL_CONTROLS 0x0003
#define CSIDL_PRINTERS 0x0004
#define CSIDL_PERSONAL 0x0005
#define CSIDL_FAVORITES 0x0006
#define CSIDL_STARTUP 0x0007
#define CSIDL_RECENT 0x0008
#define CSIDL_SENDTO 0x0009
#define CSIDL_BITBUCKET 0x000a
#define CSIDL_STARTMENU 0x000b
#define CSIDL_MYDOCUMENTS 0x000c
#define CSIDL_MYMUSIC 0x000d
#define CSIDL_MYVIDEO 0x000e
#define CSIDL_DESKTOPDIRECTORY 0x0010
#define CSIDL_DRIVES 0x0011
#define CSIDL_NETWORK 0x0012
#define CSIDL_NETHOOD 0x0013
#define CSIDL_FONTS 0x0014
#define CSIDL_TEMPLATES 0x0015
#define CSIDL_COMMON_STARTMENU 0x0016
#define CSIDL_COMMON_PROGRAMS 0X0017
#define CSIDL_COMMON_STARTUP 0x0018
#define CSIDL_COMMON_DESKTOPDIRECTORY 0x0019
#define CSIDL_APPDATA 0x001a
#define CSIDL_PRINTHOOD 0x001b
#define CSIDL_LOCAL_APPDATA 0x001c
#define CSIDL_ALTSTARTUP 0x001d
#define CSIDL_COMMON_ALTSTARTUP 0x001e
#define CSIDL_COMMON_FAVORITES 0x001f
#define CSIDL_INTERNET_CACHE 0x0020
#define CSIDL_COOKIES 0x0021
#define CSIDL_HISTORY 0x0022
#define CSIDL_COMMON_APPDATA 0x0023
#define CSIDL_WINDOWS 0x0024
#define CSIDL_SYSTEM 0x0025
#define CSIDL_PROGRAM_FILES 0x0026
#define CSIDL_MYPICTURES 0x0027
#define CSIDL_PROFILE 0x0028
#define CSIDL_SYSTEMX86 0x0029
#define CSIDL_PROGRAM_FILESX86 0x002a
#define CSIDL_PROGRAM_FILES_COMMON 0x002b
#define CSIDL_PROGRAM_FILES_COMMONX86 0x002c
#define CSIDL_COMMON_TEMPLATES 0x002d
#define CSIDL_COMMON_DOCUMENTS 0x002e
#define CSIDL_COMMON_ADMINTOOLS 0x002f
#define CSIDL_ADMINTOOLS 0x0030
#define CSIDL_CONNECTIONS 0x0031
#define CSIDL_COMMON_MUSIC 0x0035
#define CSIDL_COMMON_PICTURES 0x0036
#define CSIDL_COMMON_VIDEO 0x0037
#define CSIDL_RESOURCES 0x0038
#define CSIDL_RESOURCES_LOCALIZED 0x0039
#define CSIDL_COMMON_OEM_LINKS 0x003a
#define CSIDL_CDBURN_AREA 0x003b
#define CSIDL_COMPUTERSNEARME 0x003d
#define CSIDL_PROFILES 0x003e
При умелом использовании это, наверное, даже больше, чем %10%, %11% и т.д. в inf
А кто нибудь может сказать где все эти пути прописаны? Должны быть в реестре, но я что-то далеко не всё вижу. Что-то есть, но не всё.
А пути из Advanced INF Setup я когда-то видел в реестре ещё в 98-й винде, но потом безнадёжно потерял месторасположение.
Кто нибудь знает?
Здравствуйте!
Имеется следующая конфигурация:
;!@Install@!UTF-8!
SetEnvironment="PackName="Total Commander\""
SetEnvironment="PackVersion=7.0.4a"
SetEnvironment="PackRevision=17"
SetEnvironment="ExeName=TOTALCMD.EXE"
;Title="%PackName% %PackVersion% EvilMan's Pack Revision %PackRevision%"
Title="\"%PackName%\""
BeginPrompt="Спасибо, за то что Вы выбрали %PackName%!\n\nНажмите \"OK\", для того чтобы продолжить, или укажите свой путь для установки.\n\nЯрлык для запуска программы будет помещен на ваш Рабочий стол."
CancelPrompt="Вы хотите прервать установку?"
ExtractDialogText="Подождите, пожалуйста..."
ExtractPathText="Пожалуйста, введите путь установки:"
ExtractTitle="Установка..."
GUIFlags="8+32+64+256+512+1024+4096"
GUIMode="1"
InstallPath="%ProgramFiles%\\Total Commander12"
OverwriteMode="0"
Shortcut="D,{%%T\\%ExeName%},{},{},{Lunch %PackName%!},{%PackName%},{%%T},{},{}"
;!@InstallEnd@!
Вся проблема в том, что переменные в тексте не заменяются на присвоенные им значения:-( Запускается распаковщик, и в тексте сообщения отображаются имена переменных. Где я ошибся? Иль может переменные в тексте не обрабатываются?:-(
evlmn
1 Не оформляйте файл конфигурации в теги PHP, оформляйте его в теги CODE! Иначе часть видимого текста искажается.
2 Проверьте версию модуля, она должна быть не ниже 1.3 beta (сборка 1133) 04.09.08
3 Исправьте строку:SetEnvironment="PackName="Total Commander\"" так переменная будет содержать кавычки:SetEnvironment="PackName=\"Total Commander\"" или так, тогда она не будет содержать кавычки:SetEnvironment="PackName=Total Commander"
gora
1 Извиняюсь, я учту на будущее ;-)
2 С последней бетой проблема решилась!
Спасибо;-)
Олег, спасибо за мощные sfx модули!
Собираюсь встроить их в свой open-source проект SevenZipSharp (http://codeplex.com/sevenzipsharp) (он женит плюсы с шарпом).
Обновите пожалуйста английские версии модулей (а то последнее изменение датируется 2007 годом). Это необходимо, т.к. большинство пользователей моей библиотеки (а их уже за сотню) понимают только инглиш.
Oleg_Sch
12-04-2009, 12:48
Обновите пожалуйста английские версии модулей (а то последнее изменение датируется 2007 годом). Это необходимо, т.к. большинство пользователей моей библиотеки (а их уже за сотню) понимают только инглиш. »
Сами модули всегда были на двух языках. Только справка и сам инсталлятор 7zsfxtools требуют отдельной локализации. Но, к сожалению, без посторонней помощи я этого не смогу сделать. Помощь приветствуется ;)
Готов помочь в переводе документации. Ты компилишь MS Help Workshop-ом? Впрочем, это совсем не важно :)
Выложишь ссылку на исходники справки?
GanjaSnay
13-04-2009, 00:29
Ребята ,помогите пожалуйста,ну ни как я не могу создать этот установочный SFX архив. мне нужно сделать exe для установки твиков реестра. Если ни кого не затруднит,сделайте его пожалуйста!!! Прикрепляю архив из чего делать.
Примерно так: при запуске спросит ставить ли, после установки сообщит. Для полностью тихой установки запуститьс ключом:
Tweaks.exe -ai
GanjaSnay
13-04-2009, 12:11
At0m, Спасибо тебе огормное!!!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.