Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Total7zip
Goto page Previous  1, 2, 3 ... 41, 42, 43 ... 63, 64, 65  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
gora



Joined: 30 Dec 2004
Posts: 442
Location: Иваново

Post (Separately) Posted: Fri Mar 25, 2011 10:05    Post subject: Reply with quote

Total7zip
Спасибо, что не бросили идею обновления SFX на базе модифицированных модулей.
Ваши выводы отчасти верны, но не совсем. Попробую объяснить возникающие проблемы...
1 Модифицированных модулей существует несколько типов:
Quote:
Для каждого метода сжатия (LZMA, LZMA2, Deflate, PPMd) имеется отдельный модуль, а так же модуль, способный работать с любым из этих методов. Модули существуют в двух вариантах 32-х и 64-х битные. ...
При использовании Deflate и PPMd модулей, исходный 7z архив необходимо сжимать с ключом hc=off архиватора 7-Zip (описание ключа см. в справке архиватора 7-Zip).

2 Получить 7z архив с методом сжатия Deflate через настройки GUI вряд ли получится (во всяком случае я их создаю из ком. строки).
3 Если метод сжатия при обновлении не будет соответствовать типу модуля в SFX, то после обновления SFX не будет работать.
4 Т.к., исходный SFX был работоспособным, и плагин не меняет модуль (и это правильно), то при обновлении SFX метод сжатия менять нельзя.
5 Какой модуль и какой метод сжатия использован, в имеющемся у пользователя SFX, неизвестно. Перекладывать на него получение этих сведений и ручном введении нужных параметров при обновлении SFX - идея неверная. Он не обязан это знать, да и не будет возится так с каждым SFX. В результате он может получить неработоспособный SFX, после такого обновления, и винить в этом будет плагин. И отчасти он будет прав.

Резюме: плагин должен производить обновление SFX без помощи пользователя, ибо его помощь в этом может оказаться деструктивной.

Мое видение решения проблемы:
1 Плагин сам определяет используемые в SFX методы сжатия (в одном архиве методов может быть не один, а несколько!!!).
2 Если в SFX использован только Deflate или PPMd метод, то плагин принудительно используется ключ hc=off (см. цитату выше). Здесь есть некоторые тонкости и этот ключ не всегда обязателен даже для указанных методов сжатия, но ими можно пренебречь.
3 При обновлении SFX, плагин использует, определенный в п.п.1, 2 метод сжатия, принудительно устанавливает максимальные параметры для этого конкретного метода сжатия, определяя их за пользователя. (Доступ пользователя к настройкам в этом случае крайне нежелателен. ИМХО)
4 Таким образом обновление SFX происходит без вмешательства пользователя. Это разгружает его от необходимости знать разные тонкости, а также защищает получаемый обновленный SFX от его неквалифицированных действий.
_________________
Win7 SP1 Ultimate x64, TC8.52a x64
Back to top
View user's profile Send private message
Rustn



Joined: 15 Dec 2010
Posts: 45

Post (Separately) Posted: Fri Mar 25, 2011 12:39    Post subject: Reply with quote

Верно gora, по большей части пользователь (не опытный) накуралесит с параметрами.
Когда же плагин определит основные параметры архива, пользователь будет освобождён от тонкостей. Ему же нужно только добавить, обновить архив, и нет интереса знать как это сделать.
Back to top
View user's profile Send private message
Total7zip



Joined: 27 Nov 2010
Posts: 287

Post (Separately) Posted: Fri Mar 25, 2011 17:55    Post subject: Reply with quote

Total7zip 0.8.3.3
только wcx
http://narod.ru/disk/8405155001/Total7zip_v0833_wcx_test.rar.html
полный комлект
http://wincmd.ru/download.php?id=Total7zip

починил тестирование архивов. раньше все ошибки пропускались.

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

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

0.8.3.1 -> 0.8.3.3 - сильно ускорил тестирование архивов.
_________________
Total7zip - архиваторный+content+lister плагин, 0.8.5.2
Back to top
View user's profile Send private message
gora



Joined: 30 Dec 2004
Posts: 442
Location: Иваново

Post (Separately) Posted: Tue Mar 29, 2011 09:18    Post subject: Reply with quote

Total7zip wrote:
пока нет возможности сделать это - "плагин сам определяет используемые в SFX методы сжатия

Батником это делается достаточно просто:
Code:
@Echo Off
Set ar=lzma_lzma2.exe

For /F "tokens=1* delims==" %%a In ('"7z.exe l -slt "%ar%" | Find "Method""') Do (
   Set Method=%%b
   GoTo :_End
)
:_End
If Defined Method (Echo Method = %Method%) Else Echo Archive is Password protected
Pause>nul

_________________
Win7 SP1 Ultimate x64, TC8.52a x64
Back to top
View user's profile Send private message
Total7zip



Joined: 27 Nov 2010
Posts: 287

Post (Separately) Posted: Wed Mar 30, 2011 18:57    Post subject: Reply with quote

Quote:
7z.exe l -slt

выдает информацию об архиве, а надо бы получить информацию о поддерживаемых sfx-модулем методах компрессии...
_________________
Total7zip - архиваторный+content+lister плагин, 0.8.5.2
Back to top
View user's profile Send private message
gora



Joined: 30 Dec 2004
Posts: 442
Location: Иваново

Post (Separately) Posted: Thu Mar 31, 2011 09:11    Post subject: Reply with quote

Total7zip wrote:
выдает информацию об архиве, а надо бы получить информацию о поддерживаемых sfx-модулем методах компрессии...

Для модифицированных модулей такую информацию получить можно, а для оригинальных нет (оригинальные универсальны). Как их различать я не знаю да и не было у меня такой необходимости знать это, т.к., пользуюсь только модифицированными, ввиду "убогости" возможностей оригинальных.
Но это отступление...

Плагину и не надо знать ни чего о модуле и поддерживаемых им методах сжатия. Если метод сжатия самого архива после обновления останется без изменений (а оно так и должно быть), то модуль просто обязан "подойти". Следовательно, плагину достаточно информации о самом архиве.
_________________
Win7 SP1 Ultimate x64, TC8.52a x64
Back to top
View user's profile Send private message
Total7zip



Joined: 27 Nov 2010
Posts: 287

Post (Separately) Posted: Thu Mar 31, 2011 10:12    Post subject: Reply with quote

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

а вот при добавлении в архив файлов других типов использовать, к примеру, PPMd как-то глупо...

на страничке http://7zsfx.info/ru/, я вижу есть
Code:
модуль, способный работать с любым из этих методов

Почему бы вам не использовать его, зачем вам "только PPMd"?
_________________
Total7zip - архиваторный+content+lister плагин, 0.8.5.2
Back to top
View user's profile Send private message
gora



Joined: 30 Dec 2004
Posts: 442
Location: Иваново

Post (Separately) Posted: Thu Mar 31, 2011 14:18    Post subject: Reply with quote

Total7zip wrote:
а вот при добавлении в архив файлов других типов использовать, к примеру, PPMd как-то глупо...

Это не тип файла, а метод сжатия архива.
Если у нас есть SFX с методом сжатия LZMA, например, то в него можно добавить неупакованные файлы. Можно конечно добавить и файл архива с методом сжатия PPMd, но он тогда в SFX архиве (LZMA) так и останется архивом и ни как не будет распаковываться при запуске SFX, т.к., он был добавлен как файл архива. При этом LZMA модуль прекрасно выполнит задачу и распакует архив первого уровня, т.е., LZMA. Что внутри него еще за архивы будут лежать (RAR, CAB, 7z с методом PPMd) его не волнует.

Total7zip wrote:
Почему бы вам не использовать его, зачем вам "только PPMd"?

Речь не обо мне, у меня свои пристрастия в выборе метода сжатия. Модуль такой существует, значит он кому то нужен, и такой SFX может оказаться у пользователя Вашего плагина. Значит это надо или решать, или написать ограничение на возможности Вашего плагина при работе с SFX архивами "некоторых" типов, или просто "забыть" и "забить" на эту проблему.
Вы - автор, решайте...
_________________
Win7 SP1 Ultimate x64, TC8.52a x64
Back to top
View user's profile Send private message
Total7zip



Joined: 27 Nov 2010
Posts: 287

Post (Separately) Posted: Wed Apr 06, 2011 13:01    Post subject: Reply with quote

по просьбам пользователей, у которых нет админских прав

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

подробнее тут - http://ghisler.ch/board/viewtopic.php?p=219544&highlight=#219544
_________________
Total7zip - архиваторный+content+lister плагин, 0.8.5.2
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Wed Apr 06, 2011 15:26    Post subject: Reply with quote

А каким путем портабельность определяется?

По мне, так без разницы, какому файлу давать права - в папке плагина или в папке тотала) у меня wincmd.ini в папке тотала лежит.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Total7zip



Joined: 27 Nov 2010
Posts: 287

Post (Separately) Posted: Wed Apr 06, 2011 15:46    Post subject: Reply with quote

определяется просто - сравниваются переменные окружения
COMMANDER_INI и COMMANDER_PATH
если wincmd.ini лежит в папке тотала, то плагин хранит свои настройки в своей папке, как раньше.

если COMMANDER_INI указывает куда-то еще, то и плагин будет хранить там свои настройки.

PS. я немного поэкспериментировал и понял, что, похоже, единственный способ запускать TC с wincmd.ini из его же папки, это передавать в коммандной строке
Code:
/I=.\wincmd.ini /F=.\wcx_ftp.ini

потому что иначе путь к этим файлам может браться из ключей реестра
Code:
[HKEY_CURRENT_USER\Software\Ghisler\Total Commander]
"IniFileName"="...........\\wincmd.ini"
"FtpIniName"="............\\wcx_ftp.ini"

и параметр UseIniInProgramDir в wincmd.ini игнорируется.
_________________
Total7zip - архиваторный+content+lister плагин, 0.8.5.2
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Wed Apr 06, 2011 17:40    Post subject: Reply with quote

А зачем сравнивать? Почему нельзя просто взять предлагаемый тоталом путь к ини-файлу плагина (DefaultIniName из структуры PackDefaultParamStruct/ContentDefaultParamStruct и т.п.) и держать конфиг в той папке? А для возможности портабельности я у себя в Virtual Panel поступил так: если в папке плагина есть ini (в твоем случае - xml), я использую его, иначе - путь, который предлагает тотал.

Если файл wincmd.ini лежит в папке тотала и в нём UseIniInProgramDir=7, то тотал, независимо от записей в реестре, использует конфиги в своей папке. Единственный способ запустить такой тотал с другим конфигом - параметр /I.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Total7zip



Joined: 27 Nov 2010
Posts: 287

Post (Separately) Posted: Wed Apr 06, 2011 17:59    Post subject: Reply with quote

UseIniInProgramDir=7 - спасибо, не знал. у меня стояла 1 и как только я попал на чужой комп, где путь был прописан в реестре все сломалось.

по поводу того, чтоб путь брать из PackDefaultParamStruct или ContentDefaultParamStruct - не хочу.

во-первых, слишком запутано.
получается, если плагин грузят как lister - путь берется из одного места.
если как packer - из другого, если как content - из третьего.

во-вторых там передается не Unicode путь, и мне кажется, что это дыра.

гораздо проще прочитать значание COMMANDER_INI
_________________
Total7zip - архиваторный+content+lister плагин, 0.8.5.2
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Wed Apr 06, 2011 19:52    Post subject: Reply with quote

Ваще-то, UseIniInProgramDir содержит 3 бита: 1 для wincmd.ini, 2 для wcx_ftp.ini и 4 для игнора реестра. Smile

У тотала настройки всех плагинов хранятся в одной папке, так что не такая это и большая проблема. Но согласен, для разных типов плагинов лучше иметь что-то более-менее общее. К слову, ничто не мешает (и никто не запрещает) тебе добавить свою секцию в wincmd.ini, в которой прописать путь к твоему конфигу. Тогда плагины всех типов будут иметь к нему доступ.

А насчет чтения COMMANDER_INI - если читаешь её, тогда читай всегда, не нужно ни с чем её сравнивать. Smile
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Total7zip



Joined: 27 Nov 2010
Posts: 287

Post (Separately) Posted: Wed Apr 06, 2011 20:29    Post subject: Reply with quote

мне все-таки больше нравится когда в портабл варианте конфиг лежит в папке с плагином.
например, посмотрел сейчас, у меня в папке с TC лежат от плагинов
jpg-comment.ini
ShellDetails.ini
visualdirsize.ini
и чего в этом хорошего?...

корче говоря, это просто фикс, для тех (странных пользователей), кто ставит TC в папку, в которой у них нет прав на запись. для тех, кого устраивал старый вариант ничего не поменялось =)
_________________
Total7zip - архиваторный+content+lister плагин, 0.8.5.2
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... 41, 42, 43 ... 63, 64, 65  Next
Page 42 of 65

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group