Войти

Показать полную графическую версию : Модифицированный 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

pahan22
30-03-2009, 15:31
tipclose, спасибо за сочувствие! Но у меня есть все эти утилиты! Вопрос в том, как заставить это произвести распаковку SFX-архива из командного файла и без участия пользователя! Либо как пользоваться утилитой 7ZSplit.exe в тихом режиме!

Oleg_Sch
30-03-2009, 15:40
По поводу 7zSplit отвечу. Можно использовать недокументированные ключи

7zSplit [-m имя_файла_модуля] [-c имя_файла_конфигурации] [-a имя_файла_архива] имя_sfx_архива

по ресурсам не подскажу. смотрите в сторону различных редакторов ресурсов.

pahan22
30-03-2009, 16:39
Oleg_Sch, имя_sfx_архива перед парметрами работает! А вот как заставить его не выводить окно программы, а просто распаковать архив и закрыться? Есть такие недокументированные возможности?

Oleg_Sch
30-03-2009, 16:49
Думаете я помню все ключи/параметры своих программ :) ?
Попробуйте -rh и/или -f добавить (если мне память не изменяет).

Lite
02-04-2009, 18:06
А можно добавить поддержку путей, используемых в Advanced INF Setup: %10%, %11%, и так далее? Это гораздо удобней, чем прописывать так: %systemroot%\System32, %systemroot%\System. Таким образом системную папку, которая в Windows XP равна System32, в Windows 98 равна System, а в Windows Vista и Windows 7 равна ещё какому-то другому значению, можно будет задать переменной %11%, и это сработает на всех системах.

EN130
02-04-2009, 19:21
Lite, Наверняка можно, но тогда размер модуля значительно вырастит.

Я уже думал предложить, сделать два варианта модуля. Что нибуть на подобии модуля версии 1.2.6 (сколько он там сейчас весит? Около 50 кил, если мне память не изменяет.) И Что нибуть на подобии инсталоятора в мару метров с кучей всеяких прибамбасов.

gora
02-04-2009, 19:42
1в Windows 98 равна System »
Начиная с версии 1.1 beta, модуль требует Windows 2000 или позже. Он больше не поддерживает операционные системы Windows 95, Windows 98 и Windows Me.
2%10%, %11%, и так далее? »"Огласите весь список, пожалуйста..." :) дабы сами представляли то, что просите.
Модуль имеет еще около 50 недокументированных переменных, их перечень можно найти в ветке. В том числе и 7zSfxFolder37=%systemroot%\System32

Lite
02-04-2009, 22:28
Ну вот. А откуда мне знать о недокументированном?! Оно ведь не документировано))

А перелистать все страницы темы не просто.

Спасибо хоть на этом. Указали бы всё возможности, ничего не скрывая сразу. Если бы многое не умалчивали, было бы намного проще жить.

gora
02-04-2009, 22:53
Указали бы всё возможности, ничего не скрывая сразу. »
Все документировать сложно. :( Но чтобы облегчить Вам жизнь, вот цитата из недописанного 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

Lite
03-04-2009, 12:23
А кто нибудь может сказать где все эти пути прописаны? Должны быть в реестре, но я что-то далеко не всё вижу. Что-то есть, но не всё.

А пути из Advanced INF Setup я когда-то видел в реестре ещё в 98-й винде, но потом безнадёжно потерял месторасположение.

Кто нибудь знает?

evlmn
05-04-2009, 11:51
Здравствуйте!

Имеется следующая конфигурация:


;!@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@!


Вся проблема в том, что переменные в тексте не заменяются на присвоенные им значения:-( Запускается распаковщик, и в тексте сообщения отображаются имена переменных. Где я ошибся? Иль может переменные в тексте не обрабатываются?:-(

gora
05-04-2009, 12:15
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"

evlmn
05-04-2009, 18:51
gora

1 Извиняюсь, я учту на будущее ;-)
2 С последней бетой проблема решилась!

Спасибо;-)

markhor
12-04-2009, 02:47
Олег, спасибо за мощные sfx модули!

Собираюсь встроить их в свой open-source проект SevenZipSharp (http://codeplex.com/sevenzipsharp) (он женит плюсы с шарпом).

Обновите пожалуйста английские версии модулей (а то последнее изменение датируется 2007 годом). Это необходимо, т.к. большинство пользователей моей библиотеки (а их уже за сотню) понимают только инглиш.

Oleg_Sch
12-04-2009, 12:48
Обновите пожалуйста английские версии модулей (а то последнее изменение датируется 2007 годом). Это необходимо, т.к. большинство пользователей моей библиотеки (а их уже за сотню) понимают только инглиш. »
Сами модули всегда были на двух языках. Только справка и сам инсталлятор 7zsfxtools требуют отдельной локализации. Но, к сожалению, без посторонней помощи я этого не смогу сделать. Помощь приветствуется ;)

markhor
12-04-2009, 23:33
Готов помочь в переводе документации. Ты компилишь MS Help Workshop-ом? Впрочем, это совсем не важно :)
Выложишь ссылку на исходники справки?

GanjaSnay
13-04-2009, 00:29
Ребята ,помогите пожалуйста,ну ни как я не могу создать этот установочный SFX архив. мне нужно сделать exe для установки твиков реестра. Если ни кого не затруднит,сделайте его пожалуйста!!! Прикрепляю архив из чего делать.

At0m
13-04-2009, 02:17
Примерно так: при запуске спросит ставить ли, после установки сообщит. Для полностью тихой установки запуститьс ключом:
Tweaks.exe -ai

GanjaSnay
13-04-2009, 12:11
At0m, Спасибо тебе огормное!!!




© OSzone.net 2001-2012