Страница 4 из 68

Добавлено: Вт ноя 30, 2010 13:45
Total7zip
Mr.Merak писал(а):Total7zip
может лучше плагин назвать как твой ник? Это круто. А 7zipUnicode - так се

и да, %COMMANDER_PATH% будет в след. версии?
переименуем, согласен.
COMMANDER_PATH - посмотрю, если возможно ее прочитать, то будет.
gora писал(а): Про использование х64 7z.dll, как я понял, возможности не будет. Значит при упаковке словарь будет ограничен 128МБ даже при наличии х64 системы с RAM=8ГБ. Это печально. Придется пользоваться архиватором, а не плагином...
ну если я буду упаковывать через сам 7zip просто передавая ему список файлов, то возможно и 64битная версия будет работать.

Добавлено: Вт ноя 30, 2010 14:07
MVV
Total7zip писал(а):COMMANDER_PATH - посмотрю, если возможно ее прочитать, то будет.
Можно просто вызывать API-функцию ExpandEnvironmentStrings для расширения переменных окружения, тогда будут автоматом поддерживаться все переменные.
Reflector писал(а):А 7zG.exe я как раз и передавал список файлов в UTF-8, правда предварительно усекая его, т.к., например, если дать паковать один каталог с 10000 файлов, то тотал передаст по одному все 10000 и 7z на таком списке основательно задумается, но можно этот список преобразовать в одну строку с базовым каталогом.
Хм, плохо, если он не поддерживает большие списки, т.к. полный список лучше, чем список базовых каталогов - различные настройки тотала и игнор-лист могут влиять на будущее содержимое архива.

Добавлено: Вт ноя 30, 2010 14:18
Reflector
MVV писал(а): Хм, плохо, если он не поддерживает большие списки, т.к. полный список лучше, чем список базовых каталогов - различные настройки тотала и игнор-лист могут влиять на будущее содержимое архива.
Он их поддерживает, просто когда я распаковал wim образ от Win7, а там тысячи фалов, и потом пытался его запаковать в 7z, то до того, как началась сама упаковка 7zG.exe думал несколько минут.

Добавлено: Вт ноя 30, 2010 14:45
Total7zip
обновление, версия 0.5.0.5 в шапке.
переименовал в Total7zip
добавил вызов ExpandEnvironmentStringsW для поддержки переменных окружения

внимание - обратите внимание, что плагин переименован. со всеми вытекающими...

Добавлено: Вт ноя 30, 2010 15:03
gora
MVV писал(а):Хм, плохо, если он не поддерживает большие списки
А кто он? 7-Zip-у можно передать файл-список одним именем этого файла и он упакует все что в нем. Не слышал про ограничения на размеры файл-списка у архиватора да и у ТС их вроде нет.

Добавлено: Вт ноя 30, 2010 16:53
Rodny
Total7zip
Не нужно в дистрибутив класть файл Total7zip.ini, пускай он будет какой-нибудь Total7zip_template.ini. А при первом вызове в случае отсутствия Total7zip.ini копировать его из шаблона. А то сейчас при установке можно потерять свои долго вбиваемые пароли.

Добавлено: Вт ноя 30, 2010 17:02
Total7zip
согласен, в следующий раз сделаю.
сам об этом подумал, но не придумал как это реализовать.
спасибо.

Добавлено: Вт ноя 30, 2010 17:36
mrmerak
Total7zip
ты - крут!

...продолжаем тест. Файл readme.txt в дистре:
1) в папку с тоталом скопировать 7z.dll, последнюю версию можно найти тут http://sourceforge.net/projects/sevenzip/
а зачем тогда положил 7z.dll в папку дистра?
2) в папку с WXC плагами скопировать Total7zip.wcx
должно получиться как-то так Plugins\Total7zip\Total7zip.wcx
ну во-первых ошибка - _WCX_ надо бы. а во-вторых формулировка никуда не годная - "как-то так"
3) отредактировать wincmd.ini, секцию [PackerPlugins] - например так
заставлять юзера что-то править руцями - грех. это можно сделать через ГУИ-настройку, про что и надо писать

ну и так далее, например, "по идее плагин понимает гораздо больше форматов" - т.е. автор не уверен сам? :D

Добавлено: Вт ноя 30, 2010 17:40
Flasher
Mr.Merak
Интересное дело. Автору ошибаться нельзя, а самому допустить сразу 10 ошибок в одном посте можно? :?

Добавлено: Вт ноя 30, 2010 17:47
Total7zip
Mr.Merak писал(а):Total7zip
а зачем тогда положил 7z.dll в папку дистра?
потому что если я его туда не положу, то у 99% пользователей до readme.txt дело не дойдет =)
7z.dll в дистрибутиве позволяет воспользоваться автоустановкой и не вникать в тонкости.
Mr.Merak писал(а):Total7zip
"по идее плагин понимает гораздо больше форматов" - т.е. автор не уверен сам? :D
конечно не уверен - в 7z.dll есть куча обработчиков для разных архивов. в описании это выглядит так:

Код: Выделить всё

Handler GUIDs:

{23170F69-40C1-278A-1000-000110xx0000}

  01 Zip
  02 BZip2
  03 Rar
  04 Arj
  05 Z
  06 Lzh
  07 7z
  08 Cab
  09 Nsis
  0A lzma
  0B lzma86
  0C xz
  0D ppmd

  D2 SquashFS
  D3 CramFS
  D4 APM
  D5 Mslz
  D6 Flv
  D7 Swf
  D8 Swfc
  D9 Ntfs
  DA Fat
  DB Mbr
  DC Vhd
  DD Pe
  DE Elf
  DF Mach-O
  E0 Udf
  E1 Xar
  E2 Mub
  E3 Hfs
  E4 Dmg
  E5 Compound
  E6 Wim
  E7 Iso
  E8 Bkf
  E9 Chm
  EA Split
  EB Rpm
  EC Deb
  ED Cpio
  EE Tar
  EF GZip
соответственно по такому id можно создать объект и попросить его открыть архив. если получилось - то формат поддерживается, если нет я пробую следующий формат. так что тут немного непредсказуемо.

зато не важно как файл с архивом называется. хоть в BMP переименуйте - будет открываться.
главное чтоб в 7zip нашелся подходящий обработчик.

по-моему хорошо =)

Добавлено: Вт ноя 30, 2010 19:12
MVV
А зачем в Readme давать ссылку на sourceforge, если у 7-Zip уже несколько лет существует официальный сайт, указанный в первом посте темы?

Я бы тоже с большим удовольствием лицезрел плагин отдельно от 7z.dll - люблю качать маленькие плагины.

Насколько я понимаю, единственное, что должен сделать юзер с архивом плагина - войти в него и подтвердить выбор. В крайнем случае, открыть настройки архиваторных плагинов в тотале и выбрать там для 7z этот плагин. Но не лезть править INI вручную - это позапрошлый век.

Кстати, в pluginst.inf обычно просто указывают имя папки плагина без относительного пути, типо:

Код: Выделить всё

defaultdir=Total7zip

Добавлено: Вт ноя 30, 2010 20:03
Total7zip
про pluginst.inf я честно говоря не понял - на http://www.ghisler.ch написано

Код: Выделить всё

defaultdir is the subdirectory suggested for installation. Backslashes in this will be ignored. A 2 level dir structure is proposed to the user (plugins\wcx\pluginname\).
вот что надо написать, чтоб тотал предложил путь
plugins\wcx\pluginname?
пока он предлагает plugins\pluginname

Добавлено: Вт ноя 30, 2010 20:36
MVV
А тотал сам запоминает используемые ранее пути для плагинов. Например, у меня щас для твоего плагина предложил путь %COMMANDER_PATH%\Plugins\Lister\Total7zip. :D Видимо, предыдущим я ставил плагин для листера. Вот почему нет смысла указывать полный путь, все равно его можно будет изменить в процессе установки.

Кстати, в описании плагина я бы указал об использовании 7z.dll. Например,

Код: Выделить всё

descriptionrus=Total7zip: Плагин, предоставляющий возможности архиватора 7-Zip (использует 7z.dll)
И все-таки не включал бы в комплект поставки библиотеку 7z.dll (заодно и файл лицензии бы не нужен был). Но при загрузке плагина выдавал сообщение, если библиотека не найдена, открывал бы диалог выбора файла для ручного указания пути к файлу (это если юзеру не хочется вручную править XML). А уже при отмене открытия показывал бы сообщение, что требуется библиотека 7z.dll и показывал ссылки, где её можно найти. Это делается совсем несложно и смотрится вполне удачно. Кстати, как вариант, можно еще и пытаться посмотреть в разделе установленных программ в реестре, где установлен 7-Zip - тогда можно еще и показать юзеру сообщение с предложением использовать этот файл, а в противном случае - открыть описанный выше диалог выбора.

Добавлено: Вт ноя 30, 2010 20:44
flm
Total7zip писал(а):упаковка отличается тем, что у нее есть множество параметров.
дублировать интерфейс 7zip мне не хочется,
Т.е. такое, как накартинке соорудить - совсем сложно и не хочется?

Изображение

Добавлено: Вт ноя 30, 2010 20:48
MVV
Да куда удобнее было бы использовать 7zG.exe для упаковки - он имеет свой диалог, знакомый многим пользователям, и при этом пакует в фоне безо всяких ухищрений.

Да, еще добавлю - при ручной установке не следует прописывать флаги самостоятельно, можно просто указать путь к плагину. А уже тотал сам спросит у плагина флаги при первой загрузке плагина - и пропишет их в INI.

Ух ты, сообщение номер 1111. :D