Total7zip 

версия 0.8.5.3

Архиваторный плагин на основе 7z.dll и 7zG.exe для Total Commander с полной поддержкой Unicode. 
Так же может использоваться как Content и Lister плагин, для отображения дополнительной информации об архивах. (см. Установка и настройка Total7zip).

Total7zip добавляет возможность работать с 7z архивами в Total Commander – создавать 7z, распаковывать их, удалять файлы из 7z архивов, создавать sfx, многотомные архивы и архивы с паролями, использовать любые методы сжатия, поддерживаемые 7-zip.
Так же поддерживается упаковка bzip2, gzip, tar, wim, xz и zip. (см. Установка и настройка Total7zip).

Total7zip может использовать специальные настройки компрессии 7z, отличные от настроек установленной версии 7-zip. Для работы не требуется устанавливать 7-zip.

Так же с помощью плагина можно распаковывать все форматы, которые распознает 7-zip.
Список  поддерживаемых форматов берется из 7z.dll, для версии 7-zip 9.20 это: 
7z, XZ, BZIP2, GZIP, TAR, ZIP, ARJ, CAB, CHM, CPIO, CramFS, DEB, DMG, FAT, HFS, ISO, LZH, LZMA, MBR, MSI, NSIS, NTFS, RAR, RPM, SquashFS, UDF, VHD, WIM, XAR, Z. 
Например, можно по Ctrl+PageDown открывать chm или iso, можно извлекать аудио из FLV файлов и т.д.

Total7zip поддерживает поиск текста в архивах. 

Для упаковки, обновления и удаления из архивов используется 7zG.exe из поставки 7-zip, следовательно,  плагин легко обновить, в случае выхода новой версии 7-zip.
На компьютерах с 64-битной Windows 32-битный плагин может использовать 64-битную версию 7zG.exe. 
В версии 0.8.5.3 добавлена полноценная 64-битная версия плагина.

Total7zip умеет запоминать пароли и открывать архивы с известными паролями без вопросов. 

7-zip 

7-Zip is licensed under the GNU LGPL license. 
последние версии 7z.dll и 7zG.exe, а так же их исходники можно скачать на официальной страничке 7-zip. 
http://www.7-zip.org/ 
Спасибо авторам 7-zip!

При разработке плагина использованы отличные C++ библиотеки boost и pugixml.
Установка и настройка Total7zip

ВНИМАНИЕ:  что бы плагин мог создать конфигурационный файл под Windows 7 нужно запустить Total Commander от имени Администратора.
Поддерживается автоматическая установка - откройте архив с плагином с помощью Total Commander. 

К сожалению, я пока не знаю, как сделать автоматической установку сразу в трех категориях поэтому, для подключения Content плагина добавьте в wincmd.ini (номер и путь могут отличаться)
[ContentPlugins]
2=%COMMANDER_PATH%\Plugins\WCX\Total7zip\Total7zip.wcx
2_detect=

для подключения Lister плагина добавьте в wincmd.ini (номер и путь могут отличаться)
[ListerPlugins]
0=%COMMANDER_PATH%\Plugins\wcx\Total7zip\Total7zip.wcx

Так же в wincmd.ini можно связать плагин с другими расширениями, и добавить возможность упаковки bzip2, gzip, tar, wim, xz и zip. 
есть несколько ограничений: 

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

второе ограничение - тотал коммандер считает, что gzip, tar и zip не должны обрабатываться плагином. 
все что вы напишите в [PackerPlugins] про эти форматы будет проигнорировано. 
если я не прав - расскажите как изменить настройки тотал коммандера. 
решение - я использую такой вариант 

[PackerPlugins]
7z=735,%COMMANDER_PATH%\Plugins\wcx\Total7zip\Total7zip.wcx
wim=735,%COMMANDER_PATH%\Plugins\wcx\Total7zip\Total7zip.wcx
xz=731,%COMMANDER_PATH%\Plugins\wcx\Total7zip\Total7zip.wcx
bzip2=731,%COMMANDER_PATH%\Plugins\wcx\Total7zip\Total7zip.wcx
7zip_gzip=731,%COMMANDER_PATH%\Plugins\wcx\Total7zip\Total7zip.wcx
7zip_tar=735,%COMMANDER_PATH%\Plugins\wcx\Total7zip\Total7zip.wcx
7zip_zip=735,%COMMANDER_PATH%\Plugins\wcx\Total7zip\Total7zip.wcx
gzip=731,%COMMANDER_PATH%\Plugins\wcx\Total7zip\Total7zip.wcx
tar=735,%COMMANDER_PATH%\Plugins\wcx\Total7zip\Total7zip.wcx
zip=735,%COMMANDER_PATH%\Plugins\wcx\Total7zip\Total7zip.wcx
rar=196,%COMMANDER_PATH%\Plugins\wcx\Total7zip\Total7zip.wcx
bz2=196,%COMMANDER_PATH%\Plugins\wcx\Total7zip\Total7zip.wcx
arj=196,%COMMANDER_PATH%\Plugins\wcx\Total7zip\Total7zip.wcx
cab=708,%COMMANDER_PATH%\Plugins\wcx\Total7zip\Total7zip.wcx
flv=708,%COMMANDER_PATH%\Plugins\wcx\Total7zip\Total7zip.wcx
gz=716,%COMMANDER_PATH%\Plugins\wcx\Total7zip\Total7zip.wcx
lzh=735,%COMMANDER_PATH%\Plugins\wcx\Total7zip\Total7zip.wcx
jar=212,%COMMANDER_PATH%\Plugins\wcx\Total7zip\Total7zip.wcx

когда я хочу создать zip с помощью 7zip, я выбираю 7zip_zip. аналогично 7zip_tar и 7zip_gzip. 

Настройте компрессию - откройте диалог архивации файлов (Ctrl+F5) и сконфигурируйте 7z. 
Если этого не сделать, будут использоваться либо настройки 7-zip по умолчанию, либо настройки 7zip прописанные в реестре. 

Чтобы открывать zip с помощью плагина Total7zip надо в wincmd.ini добавить 
[Packer] 
PluginOverrideZip=1 
иначе, несмотря на отключение встроенного zip в настройках, тотал коммандер игнорирует плагин.

Дополнительные настройки: 

Возможно, вы захотите обрабатывать плагином не только 7z, но и другие расширения файлов - сделайте это через настройки Total Commander, TC Plugins Manager, или отредактируйте wincmd.ini, если вам так проще.

Плагин хранит свои настройки в файле Total7zip.xml 
Формат файла - XML. 
Если файла нет, он создается с настройками по умолчанию, при этом используются значения из файла Total7zip.template.xml. После сохранения настроек компрессии в Total7zip.xml так же будет записан список всех форматов, поддерживаемых вашей версией 7z.dll.

новое в версии Total7zip v0.8.4.0
Если Total Commander запущен в portable режиме, Total7zip.xml хранится в папке плагина, как и в прошлых версиях. 
По-умолчанию это %COMMANDER_PATH%\Plugins\WCX\Total7zip\Total7zip.xml 
Во всех остальных случаях Total7zip.xml сохраняется в ту же папку, где Total Commander хранит wincmd.ini.

описание файла настроек: 

<?xml version="1.0"?>
<settings>
	<lister_plugin fontColor="0" bgColor="16777215" fontSize="10" fontFx="0" font="Courier New" />
	<gui lang="ru" />
	<debug logLevel="0" />
	<path path_7z_dll="" path_7zG_exe="" />
	<path64bit path_7zG_exe="" path_7z_dll="" />
	<compression save="1" sfx="7z.sfx" updateSfx="0" askByContent="0" askByContentTimeout="1" alwaysWait7zip="0" extractToTempCount="20" deleteToRecycleBin="1" keySimpleMode="-1">
		<settings_7zip Level="0" Archiver="" ShowPassword="0" EncryptHeaders="0">
			<Options />
		</settings_7zip>
	</compression>
	<passwords save="0" />
	<formats save="1" />
	<formatsDisabled />
</settings>

разберем по порядку: 

<lister_plugin fontColor="0" bgColor="16777215" fontSize="10" fontFx="0" font="Courier New" />
Настройка внешнего вида Lister плагина.
Font – шрифт.
fontFx – сумма следующих значений
BOLD        1 
ITALIC      2 
UNDERLINE   4 
STRIKEOUT   8 
PROTECTED   16
fontColor – цвет шрифта
bgColor – цвет фона
fontSize – размер шрифта

<gui lang="ru" /> 
Локализация - перевод на русский язык: 
рядом с файлом 7zG.exe должна быть папка Lang и в ней файл ru.txt (прилагается). 
Можно указать любой другой язык. Локализация, конечно, берется из дистрибутива 7-zip. 
Значение lang - это имя файла с переводом на нужный язык из папки Lang, без расширения. 

<debug logLevel="0" /> добавлено в  Total7zip v0.8.3.3
параметр задает количество отладочной информации, выводимой в DbgView.
logLevel="0" - отключить (по-умолчанию)
logLevel="1" - основные операции
logLevel="3" - основные операции + операции с каждым файлом

<path path_7z_dll="" path_7zG_exe="" /> 
Произвольный путь к 32-битной версии библиотеки 7-zip. 
По умолчанию 32-битные 7z.dll и 7zG.exe находятся в папке с плагином, но вы можете это изменить.
path_7z_dll - здесь вы можете настроить путь к 32-битной версии 7z.dll, которая используется для открытия и распаковки архивов в Total Commander. 
path_7zG_exe - путь к 7zG.exe, если не задан, 7zG.exe берется из той же папки, что и 7z.dll. 
например: 
<path path_7z_dll="%COMMANDER_PATH%\archive\7-zip\32bit\7z.dll" path_7zG_exe="%COMMANDER_PATH%\archive\7-zip\32bit\7zG.exe" /> 

<path64bit path_7zG_exe="" path_7z_dll="" /> 
Произвольный путь к 64-битной версии библиотеки 7-zip
По умолчанию 64\7zG.exe и 64\7z.dll
Вариант 1. У вас 64-битная версия Total7zip.wcx64, она использует только эти библиотеки.
Вариант 2. У вас 32-битная версия плагина, она детектирует 64-битную версию Windows и, если этот параметр настроен, использует 64 битный 7zG.exe для упаковки и удаления файлов из архивов. 
параметр необязательный, если не задан, используется 32-битная версия. 
ВНИМАНИЕ: для 64-битной версии нужен полный 64-битный комплект - 7zG.exe, 7z.dll, папка Lang. 
ВНИМАНИЕ: наличие 64-битных файлов не отменяет обязательной для 32-битной версии плагина  32-битной версии 7z.dll.

<compression save="1" sfx="7z.sfx" updateSfx="0" askByContent="0" askByContentTimeout="1" alwaysWait7zip="0" extractToTempCount="20" deleteToRecycleBin="1" keySimpleMode="-1">  добавлено в  Total7zip v0.8.3.3
Настройки компрессии и параметры работы с архивами. 

save –"1", если вы хотите хранить настройки сжатия 7z в Total7zip.xml. "0", если не хотите. 
Использование собственных настроек обеспечивает переносимость и работоспособность даже на тех компьютерах, где 7-zip никогда не устанавливался. По умолчанию 1.

sfx - тут вы можете задать sfx модуль, который будет использоваться при создании самораспаковывающихся архивов. По умолчанию берется 7z.sfx из папки 7zG.exe.

так как пока нет возможности сделать это - "плагин сам определяет используемые в SFX методы сжатия и..."
вынес в настройки режим обновления sfx архивов 
<compression updateSfx="0"
updateSfx="0" - по-умолчанию. оставляет sfx модуль без изменений. как 7zFM. это позволяет сохранить иконку, но может привести к неработающему exe, если sfx не поддерживает нужные параметры компрессии.
updateSfx="1" - заменяет sfx на тот, который указан в настройках. более безопасный метод. используйте его если ваш sfx может все, что вам нужно.

askByContent - тут вы можете настроить поведение плагина при попытке открыть неизвестный файл по Ctrl+PgDown. Возможные значения: 
askByContent="0" - Total7zip открывает все, что может. Без вопросов. Это значение по умолчанию. 
askByContent="1" - Total7zip открывает все, что может, если пользователь согласится на это, ответив "ДА".  (Для еще более тонкой настройки см. параметр askByContentTimeout)
askByContent="2" - Total7zip отказывается открывать файлы по Ctrl+PgDown, способность детектирования типа файлов по содержанию отключается. 

askByContentTimeout - задержка, в секундах, управляющая тем, сколько времени плагин "помнит" ваше "Нет". Значение по умолчанию 1 секунда. Это значит, что если у вас askByContent="1" и вы отказались открывать какой-то файл с помощью Total7zip, плагин будет в течение 1 секунды игнорировать повторные запросы Total Commander'а. 

alwaysWait7zip - управляет тем, как плагин запускает 7zG.exe, который используется при упаковке, изменении и удалении файлов из архивов. 
alwaysWait7zip="0" - по возможности запускать 7zG не блокируя Total Commander. Это значение по умолчанию.
alwaysWait7zip="1" - всегда блокировать Total Commander, ждать завершения операции. Этот режим более надежен, но менее удобен.

extractToTempCount - параметр управляет тем, сколько файлов извлекать из solid архива, если Total Commander просит извлечь файл в папку Temp. Увеличение количества извлекаемых за одну операцию файлов ускоряет поиск текста в solid архивах в несколько раз. С другой стороны - если вам действительно нужно извлечь только один файл в папку Temp, вместе с ним будут извлечены лишние файлы. Total Commander  использует распаковку в папку Temp для просмотра или редактирования файла из архива, для поиска текста в архивах, для перепаковки из одного архива в другой и, возможно, еще в каких-то случаях. Мне неизвестно как отличить "распаковку для редактирования" от "распаковки для поиска". В API Total Commander об этом ничего не говорится. Если поставить значение 1, то лишние файлы извлекаться не будут, но поиск текста в solid архивах будет неимоверно долгим.
Значение по умолчанию 20. Ищите золотую середину.

deleteToRecycleBin="1" – как удалять файлы, когда упаковка делается с параметром Move to archive (переместить в архив). 1 – удалять исходные файлы в корзину. 0 – удалять навсегда.

<compression keySimpleMode="145" ...
Я проверял с ScrollLock (145) и NumLock (144). 
keySimpleMode="-1" - отключает Simple Mode и проверку клавиш. по-умолчанию.
keySimpleMode="-2" - включает Simple Mode в любом случае (всегда работает только этот режим) и отключает проверку клавиш.
Simple Mode - режим в котором плагин просто открывает архив как есть, не пытается найти main файл и сразу открыть его, как это делает 7zFM.
подробнее тут http://forum.wincmd.ru/viewpost.php?p=75506

<passwords save="0" /> 
Если вы вводите пароль и ставите галку "save password" - плагин запомнит этот пароль в Total7zip.xml навсегда, и будет использовать при открытии других архивов. 
Прежде чем спросить у вас пароль на архив, плагин пробует использовать сохраненные пароли. 
Эта опция всего лишь задает состояние этой галки в диалоге по умолчанию. 
если вам надо почистить сохраненные пароли - удалите их из Total7zip.xml. 

<formats save="1" /> 
атрибут save управляет тем, нужно ли плагину запоминать каким кодеком открывается файл с неизвестным ранее расширением. 
Сохранение этой информации ускоряет открытие неизвестных файлов по Ctrl+PageDown. 
 1 - включить самообучение.  По умолчанию.
 0 - выключить. 

<formatsDisabled /> 
Тут можно отключить поддержку ненужных форматов. Просто возьмите секцию описывающую формат из узла formats и скопируйте ее в formatsDisabled. Например, вот так блокируется открывание EXE файлов, если они не инсталляторы и не архивы 
<formatsDisabled> 
<format description="PE" guid="{23170F69-40C1-278A-1000-000110DD0000}"> 
<ext val="exe" /> 
</format> 
</formatsDisabled>
Если список расширений не указывать, то формат будет блокирован для всех файлов:
<formatsDisabled> 
<format description="PE" guid="{23170F69-40C1-278A-1000-000110DD0000}" /> 
</formatsDisabled>
Можно использовать Debug View, что бы разобраться какой именно формат плагин использовал для открытия файла.

ВНИМАНИЕ:После изменений Total7zip.xml надо перегрузить плагин, например, перезапустив Total Commander. 

FAQ 

Q: у меня все глючит, виснет, не работает... 
A: проверьте, что у вас Total Commander  использует одну, свежую версию 7z.dll. 
Если не знаете, как это сделать - спросите на форуме. Известны проблемы при использовании плагина Imagine, который использует свою собственную версию 7z.dll

Q: почему не работает опция упаковки _без_ сохранения путей?
A: потому что она не реализована. Если 7-zip будет поддерживать такой способ упаковки, я добавлю это в Total7zip.

Q: при попытке запаковать огромную папку (непример Windows) Total Commander долго тормозит, что делать? 
A: причина этого в том, что вместо того чтоб просто запаковать папку, Total Commander  строит список ВСЕХ файлов в папке. 
Решение – надо просто в диалоге упаковки (Alt+F5) снять галку "Recursively pack subdirectories". И все. 
После этого вы начинаете упаковку. 
Total Commander  передает плагину только путь к папке (или к папкам, если их выделено несколько). Все, что есть в папке будет запаковано. 
ВНИМАНИЕ: этот способ не работает, если вы собрались запаковать что-то во вложенную папку существующего архива, но, надеюсь, это требуется не так часто.

Второе решение - для таких случаев можно создать кнопку на тулбаре Total Commander ‘а, которая будет запускать 7zG.exe со следующими параметрами. 
a -ad -scsUTF-8 "%T%O.7z" @%UL 
работает это так же практически мгновенно. 

Q: Как создать архив с настройками, которые отличаются от сохраненных?
A: если вы хотите перед упаковкой увидеть диалог настроек и изменить параметры для данного конкретного нового архива - поставьте галку "Encrypt" (задать пароль). Это не самый прямой путь, но в результате перед началом упаковки вы увидите диалог и любые изменения настроек в нем будут применены только к этому архиву. а именно пароль вводить совсем не обязательно! 

вопросы, баги, предложения – приветствуются, пишите сюда:
http://forum.wincmd.ru/viewtopic.php?t=13628&postdays=0&postorder=asc&&start=0