Total7zip
Select messages from
# through # FAQ
[/[Print]\]
Goto page Previous  1, 2, 3, 4 ... 63, 64, 65  Next  :| |:
Total Commander -> Плагины Total Commander

#31:  Author: Total7zip PostPosted: Tue Nov 30, 2010 00:05
    —
ссылка работает, проверил

про exe - чтоб плагин открыл exe файл, этот файл должен быть самораспаковывающимся архивом. например, вот проверил на таком дистрибутиве - http://portableapps.com/news/2010-11-24_-_notepadpp_portable_5.8.5
открывает.
если можно - дайте ссылку на тот ехе, который у вас не открывается.

#32:  Author: flm PostPosted: Tue Nov 30, 2010 00:08
    —
Total7zip
Упаковка будет поддерживаться?
Nikola Ant
У меня нормально скачалось.

#33:  Author: Total7zip PostPosted: Tue Nov 30, 2010 00:22
    —
упаковка отличается тем, что у нее есть множество параметров.
дублировать интерфейс 7zip мне не хочется,
если есть возможность вызывать диалог настройки из самого 7zip, упаковка будет.

#34:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Nov 30, 2010 00:38
    —
Total7zip wrote:
дублировать интерфейс 7zip мне не хочется,
если есть возможность вызывать диалог настройки из самого 7zip, упаковка будет.
Думаю, можно научить плагин вызывать 7zG.exe так, как это делает расширение оболочки 7зипа - тогда и диалог настроек будет, и диалог упаковки, и упаковка в фоне, и всё это из тотала. Только разобраться, как он это делает - хорошо хоть, исходники есть. А довесок в 200 кило к дллке в 700 для функции упаковки - не так и много, тем более у многих 7зип стоит на компе.

#35:  Author: Reflector PostPosted: Tue Nov 30, 2010 01:03
    —
Total7zip wrote:

про exe - чтоб плагин открыл exe файл, этот файл должен быть самораспаковывающимся архивом.

Например, вот это http://www.manutd8.com/SopCast-3.2.4.zip сам 7z открывает, а плагин нет.

Quote:

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

Самораспаковка и шифрование выбирается для всех плагинов, а компрессию мало кто постоянно меняет, можно и в ini прописать строку параметров.

Quote:

Думаю, можно научить плагин вызывать 7zG.exe так, как это делает расширение оболочки 7зипа - тогда и диалог настроек будет, и диалог упаковки, и упаковка в фоне, и всё это из тотала.

Я так и делал, только в 7zG.exe нет диалога настроек. Но это самый простой вариант, получить от тотала список файлов и передать его 7zG...

#36:  Author: jentoso PostPosted: Tue Nov 30, 2010 07:12
    —
Если я правильно понял, то конфиг 7zipUnicode.ini не поддерживает %commander_path% для загрузки dll?

#37:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Nov 30, 2010 09:43
    —
Reflector wrote:
Quote:

Думаю, можно научить плагин вызывать 7zG.exe так, как это делает расширение оболочки 7зипа - тогда и диалог настроек будет, и диалог упаковки, и упаковка в фоне, и всё это из тотала.

Я так и делал, только в 7zG.exe нет диалога настроек. Но это самый простой вариант, получить от тотала список файлов и передать его 7zG...

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

Сравнил командные строки при вызове компрессии напрямую и через диалог - во втором случае используется параметр -ad - попробуй использовать его в своей командной строке, возможно, диалог отобразится.

Проверил - простенькая кнопочка для 7zG.exe со следующими параметрами работает на ура (отображается диалог с предлагаемым именем архива и путем к нему, при этом во время архивации используется системная временная папка):
Code:
a -ad -scsUTF-8 "%T%O.7z" @%UL

Так что такой прием вполне можно использовать и из плагина - при этом весь процесс архивирования в тотале будет занимать считанные секунды - просто построение файла-списка, который потом будет передаваться архиватору 7zG.exe с указанными выше параметрами и удаляться после завершения операции. Единственное, что список придется строить в UTF-8 - это единственный Юникод, который допускает в файлах списков 7-Zip. Но не так и сложно преобразовать UTF-16 в UTF-8 - там есть вполне компактный алгоритм, да и стандартная системная функция WideCharToMultiByte умеет делать это.


Last edited by MVV on Tue Nov 30, 2010 10:17; edited 1 time in total

#38:  Author: Total7zip PostPosted: Tue Nov 30, 2010 10:15
    —
jentoso wrote:
Если я правильно понял, то конфиг 7zipUnicode.ini не поддерживает %commander_path% для загрузки dll?

прямо именно %COMMANDER_PATH% не поддерживается (пока).
но вы можете писать относительный путь, считая что каталог командера это ваш текущий каталог.
например, у меня в одной папке на флешке рядом находятся
Code:

total commander
archive\7-Zip

конфиг выглядит так
Code:

<?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>


с такими настройками плагин запускается у меня без проблем на разных компах, несмотря на то, что флешка получает разные имена.

командер, кстати, запускаю с такими параметрами
Code:
 /I=".\wincmd.ini" /F=".\wcx_ftp.ini"

т.е. настройки он хранит в своей папке.

#39:  Author: AvadaLocation: Россия, Саратов PostPosted: Tue Nov 30, 2010 10:23
    —
Total7zip wrote:
т.е. настройки он хранит в своей папке

[off]
В данном случае предпочтительнее ключ UseIniInProgramDir=7 в секции [Configuration] файла wincmd.ini в рабочем каталоге TC. Запуск с параметрами обычно используется для файлов конфигурации с нестандартным именем или нестандартным местоположением.
[/off]

#40:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Nov 30, 2010 10:36
    —
MVV wrote:
Проверил - простенькая кнопочка для 7zG.exe со следующими параметрами работает на ура (отображается диалог с предлагаемым именем архива и путем к нему, при этом во время архивации используется системная временная папка):
Code:
a -ad -scsUTF-8 "%T%O.7z" @%UL

Единственное быть может неудобство связано с тем, что 7zG запоминает в реестре последние использованные параметры. Но зато можно изменять их прямо в разделе реестра HKEY_CURRENT_USER\Software\7-Zip\Compression перед вызовом 7zG - тогда будет использоваться нужный формат архива - например, 7z (заодно можно задавать и нужные предустановленные параметры сжатия).

#41:  Author: goraLocation: Иваново PostPosted: Tue Nov 30, 2010 12:10
    —
Total7zip wrote:
появился конфиг - 7zipUnicode.ini

отредактируйте его, если вы хотите настроить путь к 7z.dll
Уточните:
- путь должен быть абсолютный?
- путь может содержать системные переменные, например, %ProgramFiles% ?
- может ли плагин работать с х64 версией 7z.dll установленного в системе 7-Zip ?
- правильно ли он будет определять %ProgramFiles% на х64 системе с учетом того, что ТС х86 приложение?

Из плагина лучше исключить 7z.dll, т.к. у пользователя архиватор обычно уже установлен и зачастую более новой версии, чем будет со временем в Вашем плагине. ИМХО.

#42:  Author: Total7zip PostPosted: Tue Nov 30, 2010 12:22
    —
ответ про абсолютные и относительные пути чуть выше
http://forum.wincmd.ru/viewpost.php?p=70677&sid=e04cd36f8003f36d842f1ac6a0c3e1ac

про 64 бита - насколько я понимаю 32 битное приложение не может использовать 64 битные dll.

а тотал командер у нас пока 32 битный.

#43:  Author: mrmerak PostPosted: Tue Nov 30, 2010 13:09
    —
Total7zip
может лучше плагин назвать как твой ник? Это круто. А 7zipUnicode - так се

и да, %COMMANDER_PATH% будет в след. версии?

#44:  Author: goraLocation: Иваново PostPosted: Tue Nov 30, 2010 13:10
    —
Total7zip wrote:
ответ про абсолютные и относительные пути чуть выше
http://forum.wincmd.ru/viewpost.php?p=70677&sid=e04cd36f8003f36d842f1ac6a0c3e1ac

про 64 бита - насколько я понимаю 32 битное приложение не может использовать 64 битные dll.

а тотал командер у нас пока 32 битный.
Там нет ответа на мои вопросы. Относительный путь меня не очень устраивает ибо ТС у меня на не системном диске, а 7-Zip установлен по умолчанию - на системный. Относительные пути городить здесь не вариант.
Про использование х64 7z.dll, как я понял, возможности не будет. Значит при упаковке словарь будет ограничен 128МБ даже при наличии х64 системы с RAM=8ГБ. Это печально. Придется пользоваться архиватором, а не плагином...

#45:  Author: Reflector PostPosted: Tue Nov 30, 2010 14:33
    —
MVV wrote:

Проверил - простенькая кнопочка для 7zG.exe со следующими параметрами работает на ура (отображается диалог с предлагаемым именем архива и путем к нему, при этом во время архивации используется системная временная папка):
Code:
a -ad -scsUTF-8 "%T%O.7z" @%UL

Так что такой прием вполне можно использовать и из плагина - при этом весь процесс архивирования в тотале будет занимать считанные секунды - просто построение файла-списка, который потом будет передаваться архиватору 7zG.exe с указанными выше параметрами и удаляться после завершения операции. Единственное, что список придется строить в UTF-8 - это единственный Юникод, который допускает в файлах списков 7-Zip. Но не так и сложно преобразовать UTF-16 в UTF-8 - там есть вполне компактный алгоритм, да и стандартная системная функция WideCharToMultiByte умеет делать это.

И я проверил Smile Дело в том, что я писал юникодный плагин под 7z больше года назад, он во многом похож на плагин от Total7zip, т.к. также открывает все типы файлов открываемые 7z, но при этом используя консольную версию для получения информации об архивах и 7zG.exe для паковки/распаковки(автоматически выбирая x64 версию на x64 системах), т.е. фактически тоже можно без проблем копировать эти файлы от более новых версий и получать поддержку новых типов файлов. Но есть одна проблема: у 7z очень убогая командная строка, потому вытянуть из архива вложенные каталоги можно только с полными путями. Например, если архив выглядит как "aaa\bbb\ccc", то разархивировав "ссс" я получаю на диске все равно "aaa\bbb\ccc". В раре для этого случая есть ключ -ap, в 7z его видимо не будет никогда, т.к. хоть автора постоянно просят его добавить, он просто не понимает зачем он вообще нужен... И мне пришлось искать обходные пути, самым простым оказалось использование CreateSymbolicLink, тогда можно автоматически переадресовать распаковку на правильный путь, но этот метод работает начиная с Висты, при распаковке создается временный каталог и существует небольшая вероятность того, что такой каталог уже был, тогда облом... Понятно, что до нахождения более приемных вариантов решения данной проблемы, плагином пользовался только я сам Smile Так вот, когда я его писал, то специально искал какие у 7zG.exe ключи и ничего про диалог настроек не нашел... А 7zG.exe я как раз и передавал список файлов в UTF-8, правда предварительно усекая его, т.к., например, если дать паковать один каталог с 10000 файлов, то тотал передаст по одному все 10000 и 7z на таком списке основательно задумается, но можно этот список преобразовать в одну строку с базовым каталогом.



Total Commander -> Плагины Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page Previous  1, 2, 3, 4 ... 63, 64, 65  Next  :| |:
Page 3 of 65

Powered by phpBB © 2001, 2005 phpBB Group