Total7zip

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
flm
Сообщения: 467
Зарегистрирован: Вс дек 09, 2007 05:54

Сообщение flm »

MVV
Если не включать 7z.dll в комплект поставки плагина и успользовать отдельный exe-шник для упаковки - в чём, собственно, удобства и зачем вообще плагин писать?
cogito ergo sum
http://www.yakimchuk.ru/questions.htm - Как правильно задавать вопросы
Nikola Ant
Сообщения: 105
Зарегистрирован: Пн сен 28, 2009 22:44
Откуда: Poltava

Сообщение Nikola Ant »

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

... единственное, что должен сделать юзер с архивом плагина - войти в него и подтвердить выбор.
А отчего, собственно, юзеру так и не поступить?
gora писал(а):Из плагина лучше исключить 7z.dll, т.к. у пользователя архиватор обычно уже установлен и зачастую более новой версии, чем будет со временем в Вашем плагине. ИМХО.
В итоге: вы(множественное число) против простого юзера?
Мне приходилось не один раз устанавливать людям плагин cdrXview.wlx. Там необходим 7za.exe, но без авторского вложения в архив - очень неудобно. Раздавать ссылки на скачивание...? Тоже не комфортно. Пусть в поставке проги будет комплект, ИМХО. Тем более не у всех 7зип стоит на компе, а так и портабельность получается.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Nikola Ant писал(а):Пусть в поставке проги будет комплект, ИМХО. Тем более не у всех 7зип стоит на компе, а так и портабельность получается.
Полностью поддерживаю. Удалить за ненадобностью тем, у кого есть, много проще, чем искать тем, у кого нет.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Сообщение gora »

Nikola Ant писал(а):Пусть в поставке проги будет комплект
Через n месяцев, когда автор плагина завершит его разработку и забросит его, пользователи будут продолжать скачивать плагин с устаревшей dll и выкидывать ее, заменяя на новую. Плюс к этому пользователь еще должен при обновлении своего архиватора не забыть положить новую dll в папку плагина, что тоже сложно для простого пользователя.
Win7 SP1 Ultimate x64, TC8.52a x64
Аватара пользователя
Lev
Сообщения: 392
Зарегистрирован: Ср мар 02, 2005 16:34

Сообщение Lev »

Может сделать пару линков на загрузку плагина - с включением .dll и без?
Аватара пользователя
Rodny
Сообщения: 949
Зарегистрирован: Ср янв 24, 2007 00:59
Откуда: Могилёв, Беларусь

Сообщение Rodny »

gora
Я тоже сначала подумал, что dll нужно не включать. Но потом подумал ещё. Пускай лучше работает "из коробки" со старой версией, чем не работает совсем. А если пользователь всё равно ставит/обновляет архиватор целиком, можно один раз прописать путь к dll и забыть. А если не ставит, то обновление и сведётся к новой dll в папке плагина.

А если/когда плагин будет на wincmd.ru, тогда и два архива несложно сделать.
Аватара пользователя
CaptainFlint
Сообщения: 6239
Зарегистрирован: Вт дек 14, 2004 22:34
Контактная информация:

Сообщение CaptainFlint »

MVV писал(а):А тотал сам запоминает используемые ранее пути для плагинов. Например, у меня щас для твоего плагина предложил путь %COMMANDER_PATH%\Plugins\Lister\Total7zip. Видимо, предыдущим я ставил плагин для листера.
Не совсем так. Тотал изначально предлагает пути вида %COMMANDER_PATH%\plugins\{wcx|wdx|wfx|wlx}, но разрешает пользователю менять имена подкаталогов на свои (например, Lister вместо wlx). В этом случае при установке нового плагина Тотал вынужден угадывать эти нестандартные имена, для чего он анализирует файлы в соответствующих подкаталогах. Видимо, у тебя в Lister-каталоге завалялся WCX-плагин (например, от Imagine) и это сбивает Тотал с толку, вот он и предлагает этот путь для WCX-плагина.
Почему же, ё-моё, ты нигде не пишешь "ё"?
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Не, ни одного установленного пакер-плагина в папке Lister нет. :) Imagine.wcx я не использую.

Просто похоже, что тотал запоминает последнюю использовавшуюся папку для установки плагинов, причем независимо от типа. Я щас на чистый тотал поставил Imagine в папку Plugins\Lister\Imagine, а потом вошел в архив с этим плагином - тотал предложил ставить его в Plugins\Lister\Total7zip. Кстати, у этой версии Imagine, которую я ставил на новый тотал, файла Imagine.wcx в папке нет.


Хотя, похоже, ты прав. Удалил файл Imagine.wcx из папки Imagine - и предлагать поставить Total7zip стал в папку Plugins\Packer... Странное поведение. Зачем искать файлы в подпапках папки плагинов, когда разумнее сканировать каталоги установки плагинов в wincmd.ini... :?
Последний раз редактировалось MVV Ср дек 01, 2010 02:02, всего редактировалось 2 раза.
Аватара пользователя
Total7zip
Сообщения: 287
Зарегистрирован: Сб ноя 27, 2010 03:22

Сообщение Total7zip »

flm писал(а):Т.е. такое, как накартинке соорудить - совсем сложно и не хочется?
диалог сделать просто.
но совсем не хочется вникать в то, какие опции есть у 7zip.
мне кажется автор постарался и сделал хороший интерфейс под Windows.
зачем повторять эту работу? к тому же я уверен, что 7zip не просто так развивается и обновляется.

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

в настоящее время задумался над созданием и изменением архивов...
Аватара пользователя
CaptainFlint
Сообщения: 6239
Зарегистрирован: Вт дек 14, 2004 22:34
Контактная информация:

Сообщение CaptainFlint »

MVV писал(а):Imagine.wcx я не использую.
Использовать и не надо, достаточно одного лишь наличия файла, даже если он вообще не зарегистрирован как плагин.
MVV писал(а):Просто похоже, что тотал запоминает последнюю использовавшуюся папку для установки плагинов, причем независимо от типа.
Это однозначно не так. Как часть более общего алгоритма — возможно, но не более того. У меня плагины сидят в Content Plugins, FileSystem Plugins, Lister Plugins, Packer Plugins, и Тотал предлагает устанавливать плагины ровно туда, куда надо, независимо от того, куда именно был установлен последний плагин. Вернее, так стало, когда я устранил несоответствия типов файлов, вроде того же Imagine.wcx.
MVV писал(а):Я щас на чистый тотал поставил Imagine в папку Plugins\Lister\Imagine, а потом вошел в архив с этим плагином - тотал предложил ставить его в Plugins\Lister\Total7zip. Кстати, у этой версии Imagine, которую я ставил на новый тотал, файла Imagine.wcx в папке нет.
Ну, значит, на начальном этапе, пока нет всех четырёх подкаталогов, у него не хватает информации, и он предлагает первое попавшееся местоположение.
MVV писал(а):Странное поведение. Зачем искать файлы в подпапках папки плагинов, когда разумнее сканировать каталоги установки плагинов в wincmd.ini...
Хотел бы я знать…

Ладно, к сабжу это обсуждение отношения не имеет, так что лучше либо закруглиться, либо выделиться в новую ветку. Впрочем, лично у меня по этому поводу всё равно информации больше не имеется. :)
Почему же, ё-моё, ты нигде не пишешь "ё"?
Аватара пользователя
flm
Сообщения: 467
Зарегистрирован: Вс дек 09, 2007 05:54

Сообщение flm »

Total7zip писал(а):
flm писал(а):Т.е. такое, как накартинке соорудить - совсем сложно и не хочется?
диалог сделать просто.
но совсем не хочется вникать в то, какие опции есть у 7zip.
Мда... Если даже "в опции вникать не хочется", то мой вердикт по поводу этой всей затеи - "закапывайте". Очередная под(д)елка на тему функций 7zip'а в tc. Единственная надежда, что Ghisler всё-таки услышит пользователей и сделает нативную поддержку 7zip.dll...
cogito ergo sum
http://www.yakimchuk.ru/questions.htm - Как правильно задавать вопросы
Аватара пользователя
Total7zip
Сообщения: 287
Зарегистрирован: Сб ноя 27, 2010 03:22

Сообщение Total7zip »

flm писал(а):
Total7zip писал(а):
flm писал(а):Т.е. такое, как накартинке соорудить - совсем сложно и не хочется?
диалог сделать просто.
но совсем не хочется вникать в то, какие опции есть у 7zip.
Мда... Если даже "в опции вникать не хочется", то мой вердикт по поводу этой всей затеи - "закапывайте". Очередная под(д)елка...
закапал новую версию 0.5.0.6.
=)

исправлено открывание exe дистрибутивов
подробнее тут http://forum.wincmd.ru/viewpost.php?p=70667

добавил сохранение конфига при установке.

добавил самообучение по расширениям.
подробнее:

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

в версии 0.5.0.6 добавилась возможность запоминать расширения файлов и их соответствие с подходящим распаковщиком из 7z.dll.
например, расширения FireFox хранятся в файлах ".xpi",  и мой плагин ничего про это не знает.
при попытке открыть такой файл плагин подберет подходящий распаковщик, и сохранит в конфиге новое расширение.
в следующий раз этот распаковщик будет испробован в первую очередь для заданного типа файлов.
если вам не нравится такое самообучение - вы можете отключить его отредактировав конфиг
поменяйте <formats save="1" />  на
<formats save="0" />
Аватара пользователя
Total7zip
Сообщения: 287
Зарегистрирован: Сб ноя 27, 2010 03:22

Сообщение Total7zip »

для тестирования - первая версия с поддержкой упаковки с помощью 7zG.exe
7zG.exe берется там же, где у вас находится 7z.dll
http://narod.yandex.ru/disk/709496001/w ... _pack_2.7z
установка - заменой файла Total7zip.wcx поверх версии 0.5.0.6
и правка
7z=68,%COMMANDER_PATH%\Plugins\wcx\Total7zip\Total7zip.wcx
на
7z=223,%COMMANDER_PATH%\Plugins\wcx\Total7zip\Total7zip.wcx
в wincmd.ini

тотал передает нам такие флаги при упаковке
PK_PACK_MOVE_FILES - Delete original after packing
PK_PACK_SAVE_PATHS - Save path names of files
PK_PACK_ENCRYPT - Ask user for password, then encrypt file with that password

пока я их честно игнорирую, потому что

1) для того чтоб реализовать PK_PACK_MOVE_FILES надо дождаться завершения упаковки, и мы теряем возможность упаковки в фоне. но фича мне нравится и я попробую тут что-нибудь сделать в будущем.
2) PK_PACK_SAVE_PATHS - 7zip хочет в качестве одного из параметров корень (папку в которой находятся файлы), попозже разберусь, можно ли это реализовать.
3) PK_PACK_ENCRYPT - в 7zG.exe можно вводить пароль независимо от этого флага. так что до свидания PK_PACK_ENCRYPT .

в ближайших планах - посмотреть, можно ли как-то сохранять настройки упаковки, чтоб не показывать диалог каждый раз.
отпишитесь - как вам такая реализация?

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

update: обновил ссылку, не добавлялись пустые папки.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

1) для того чтоб реализовать PK_PACK_MOVE_FILES надо дождаться завершения упаковки
А что мешает создать фоновый поток, запустить оттуда 7zG.exe и дождаться его завершения, а потом удалить файлы, если завершено удачно? Фоновый поток, который мирно спит, ожидая завершения работы другой программы, никаких ресурсов не потребляет.

На всякий случай кусок кода фонового потока:

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

	SHELLEXECUTEINFO shx; memset(&shx, 0, sizeof(SHELLEXECUTEINFO));
	shx.cbSize=sizeof(SHELLEXECUTEINFO);
	shx.lpFile=path_to_7zg;
	shx.lpDirectory=working_directory;
	shx.lpParameters=parameters;
	shx.nShow=SW_SHOW;
	shx.fMask=SEE_MASK_NOCLOSEPROCESS;
	shx.lpVerb=0;
	shx.hwnd=0;

	if (!ShellExecuteEx(&shx)) result=some_nonzero_error_number;

	if (shx.hProcess) {
		WaitForSingleObject(shx.hProcess, INFINITE);
		DWORD return_code=1;
		if (GetExitCodeProcess(shx.hProcess, &return_code) && !return_code) {
			// а тут можно удалять файлы, если нужно
		}

		CloseHandle(shx.hProcess);
	}

	// а тут можно удалить файл списка
Нужно лишь убедиться, что 7zG возвращает разные значения при успешном завершении и при отмене/ошибке. Обычно при успешном возвращают 0.

Ага, проверил - при отмене операции возвращаемое значение равно 255.
Последний раз редактировалось MVV Чт дек 02, 2010 21:16, всего редактировалось 7 раз.
Reflector
Сообщения: 56
Зарегистрирован: Вс ноя 29, 2009 17:51

Сообщение Reflector »

Total7zip писал(а): в ближайших планах - посмотреть, можно ли как-то сохранять настройки упаковки, чтоб не показывать диалог каждый раз.
А смысл? 7zG.exe хранит настройки в реестре, когда ты в этот диалог настроек попадаешь, то связь с плагином уже потеряна, т.е. прочесть и запомнить можно только старые настройки. При этом любая другая программа, в том числе и сам 7z, может полезть в реестр и натвикать там все под себя... Кроме того, ты не можешь вызвать 7zG.exe просто чтобы поменять настройки, обязательно нужно что-то пакануть.
И почему ты список файлов получаешь не в фоне? Даю паковать большой каталог, тотал блокируется на 30 сек, при этом 7zG.exe запускается почти сразу, т.е. можно начать упаковку когда список еще не готов...
Ответить