Total7zip
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Total7zip
Упаковка будет поддерживаться?
Nikola Ant
У меня нормально скачалось.
Упаковка будет поддерживаться?
Nikola Ant
У меня нормально скачалось.
cogito ergo sum
http://www.yakimchuk.ru/questions.htm - Как правильно задавать вопросы
http://www.yakimchuk.ru/questions.htm - Как правильно задавать вопросы
Думаю, можно научить плагин вызывать 7zG.exe так, как это делает расширение оболочки 7зипа - тогда и диалог настроек будет, и диалог упаковки, и упаковка в фоне, и всё это из тотала. Только разобраться, как он это делает - хорошо хоть, исходники есть. А довесок в 200 кило к дллке в 700 для функции упаковки - не так и много, тем более у многих 7зип стоит на компе.Total7zip писал(а):дублировать интерфейс 7zip мне не хочется,
если есть возможность вызывать диалог настройки из самого 7zip, упаковка будет.
Например, вот это http://www.manutd8.com/SopCast-3.2.4.zip сам 7z открывает, а плагин нет.Total7zip писал(а): про exe - чтоб плагин открыл exe файл, этот файл должен быть самораспаковывающимся архивом.
Самораспаковка и шифрование выбирается для всех плагинов, а компрессию мало кто постоянно меняет, можно и в ini прописать строку параметров.упаковка отличается тем, что у нее есть множество параметров.
дублировать интерфейс 7zip мне не хочется,
если есть возможность вызывать диалог настройки из самого 7zip, упаковка будет.
Я так и делал, только в 7zG.exe нет диалога настроек. Но это самый простой вариант, получить от тотала список файлов и передать его 7zG...Думаю, можно научить плагин вызывать 7zG.exe так, как это делает расширение оболочки 7зипа - тогда и диалог настроек будет, и диалог упаковки, и упаковка в фоне, и всё это из тотала.
В том и дело, что он там есть. Достаточно посмотреть в редакторе ресурсов. Вопрос лишь в том, как его вызвать (ведь расширение оболочки как-то запускает 7zG.exe с вызовом диалога), и как передать ему список файлов при таком способе вызова - расширение оболочки использует какие-то хитрые (возможно, традиционные расширениям оболочки, но незнакомые мне) средства.Reflector писал(а):Я так и делал, только в 7zG.exe нет диалога настроек. Но это самый простой вариант, получить от тотала список файлов и передать его 7zG...Думаю, можно научить плагин вызывать 7zG.exe так, как это делает расширение оболочки 7зипа - тогда и диалог настроек будет, и диалог упаковки, и упаковка в фоне, и всё это из тотала.
Сравнил командные строки при вызове компрессии напрямую и через диалог - во втором случае используется параметр -ad - попробуй использовать его в своей командной строке, возможно, диалог отобразится.
Проверил - простенькая кнопочка для 7zG.exe со следующими параметрами работает на ура (отображается диалог с предлагаемым именем архива и путем к нему, при этом во время архивации используется системная временная папка):
Код: Выделить всё
a -ad -scsUTF-8 "%T%O.7z" @%UL
Последний раз редактировалось MVV Вт ноя 30, 2010 09:17, всего редактировалось 1 раз.
прямо именно %COMMANDER_PATH% не поддерживается (пока).jentoso писал(а):Если я правильно понял, то конфиг 7zipUnicode.ini не поддерживает %commander_path% для загрузки dll?
но вы можете писать относительный путь, считая что каталог командера это ваш текущий каталог.
например, у меня в одной папке на флешке рядом находятся
Код: Выделить всё
total commander
archive\7-Zip
Код: Выделить всё
<?xml version="1.0" ?>
<settings>
<path_7z_dll>..\archive\7-Zip\7z.dll</path_7z_dll>
<passwords save="1">
<password val="пароль1" />
<password val="пароль2" />
</passwords>
</settings>
командер, кстати, запускаю с такими параметрами
Код: Выделить всё
/I=".\wincmd.ini" /F=".\wcx_ftp.ini"[off]Total7zip писал(а):т.е. настройки он хранит в своей папке
В данном случае предпочтительнее ключ UseIniInProgramDir=7 в секции [Configuration] файла wincmd.ini в рабочем каталоге TC. Запуск с параметрами обычно используется для файлов конфигурации с нестандартным именем или нестандартным местоположением.
[/off]
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
Единственное быть может неудобство связано с тем, что 7zG запоминает в реестре последние использованные параметры. Но зато можно изменять их прямо в разделе реестра HKEY_CURRENT_USER\Software\7-Zip\Compression перед вызовом 7zG - тогда будет использоваться нужный формат архива - например, 7z (заодно можно задавать и нужные предустановленные параметры сжатия).MVV писал(а):Проверил - простенькая кнопочка для 7zG.exe со следующими параметрами работает на ура (отображается диалог с предлагаемым именем архива и путем к нему, при этом во время архивации используется системная временная папка):Код: Выделить всё
a -ad -scsUTF-8 "%T%O.7z" @%UL
Уточните:Total7zip писал(а):появился конфиг - 7zipUnicode.ini
отредактируйте его, если вы хотите настроить путь к 7z.dll
- путь должен быть абсолютный?
- путь может содержать системные переменные, например, %ProgramFiles% ?
- может ли плагин работать с х64 версией 7z.dll установленного в системе 7-Zip ?
- правильно ли он будет определять %ProgramFiles% на х64 системе с учетом того, что ТС х86 приложение?
Из плагина лучше исключить 7z.dll, т.к. у пользователя архиватор обычно уже установлен и зачастую более новой версии, чем будет со временем в Вашем плагине. ИМХО.
Win7 SP1 Ultimate x64, TC8.52a x64
ответ про абсолютные и относительные пути чуть выше
http://forum.wincmd.ru/viewpost.php?p=7 ... c6a0c3e1ac
про 64 бита - насколько я понимаю 32 битное приложение не может использовать 64 битные dll.
а тотал командер у нас пока 32 битный.
http://forum.wincmd.ru/viewpost.php?p=7 ... c6a0c3e1ac
про 64 бита - насколько я понимаю 32 битное приложение не может использовать 64 битные dll.
а тотал командер у нас пока 32 битный.
Там нет ответа на мои вопросы. Относительный путь меня не очень устраивает ибо ТС у меня на не системном диске, а 7-Zip установлен по умолчанию - на системный. Относительные пути городить здесь не вариант.Total7zip писал(а):ответ про абсолютные и относительные пути чуть выше
http://forum.wincmd.ru/viewpost.php?p=7 ... c6a0c3e1ac
про 64 бита - насколько я понимаю 32 битное приложение не может использовать 64 битные dll.
а тотал командер у нас пока 32 битный.
Про использование х64 7z.dll, как я понял, возможности не будет. Значит при упаковке словарь будет ограничен 128МБ даже при наличии х64 системы с RAM=8ГБ. Это печально. Придется пользоваться архиватором, а не плагином...
Win7 SP1 Ultimate x64, TC8.52a x64
И я проверилMVV писал(а): Проверил - простенькая кнопочка для 7zG.exe со следующими параметрами работает на ура (отображается диалог с предлагаемым именем архива и путем к нему, при этом во время архивации используется системная временная папка):Так что такой прием вполне можно использовать и из плагина - при этом весь процесс архивирования в тотале будет занимать считанные секунды - просто построение файла-списка, который потом будет передаваться архиватору 7zG.exe с указанными выше параметрами и удаляться после завершения операции. Единственное, что список придется строить в UTF-8 - это единственный Юникод, который допускает в файлах списков 7-Zip. Но не так и сложно преобразовать UTF-16 в UTF-8 - там есть вполне компактный алгоритм, да и стандартная системная функция WideCharToMultiByte умеет делать это.Код: Выделить всё
a -ad -scsUTF-8 "%T%O.7z" @%UL