Страница 5 из 68

Добавлено: Вт ноя 30, 2010 20:54
flm
MVV
Если не включать 7z.dll в комплект поставки плагина и успользовать отдельный exe-шник для упаковки - в чём, собственно, удобства и зачем вообще плагин писать?

Добавлено: Вт ноя 30, 2010 22:04
Nikola Ant
MVV писал(а):Я бы тоже с большим удовольствием лицезрел плагин отдельно от 7z.dll - люблю качать маленькие плагины.

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

Добавлено: Вт ноя 30, 2010 22:30
Avada
Nikola Ant писал(а):Пусть в поставке проги будет комплект, ИМХО. Тем более не у всех 7зип стоит на компе, а так и портабельность получается.
Полностью поддерживаю. Удалить за ненадобностью тем, у кого есть, много проще, чем искать тем, у кого нет.

Добавлено: Вт ноя 30, 2010 22:34
gora
Nikola Ant писал(а):Пусть в поставке проги будет комплект
Через n месяцев, когда автор плагина завершит его разработку и забросит его, пользователи будут продолжать скачивать плагин с устаревшей dll и выкидывать ее, заменяя на новую. Плюс к этому пользователь еще должен при обновлении своего архиватора не забыть положить новую dll в папку плагина, что тоже сложно для простого пользователя.

Добавлено: Вт ноя 30, 2010 22:42
Lev
Может сделать пару линков на загрузку плагина - с включением .dll и без?

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

А если/когда плагин будет на wincmd.ru, тогда и два архива несложно сделать.

Добавлено: Ср дек 01, 2010 00:59
CaptainFlint
MVV писал(а):А тотал сам запоминает используемые ранее пути для плагинов. Например, у меня щас для твоего плагина предложил путь %COMMANDER_PATH%\Plugins\Lister\Total7zip. Видимо, предыдущим я ставил плагин для листера.
Не совсем так. Тотал изначально предлагает пути вида %COMMANDER_PATH%\plugins\{wcx|wdx|wfx|wlx}, но разрешает пользователю менять имена подкаталогов на свои (например, Lister вместо wlx). В этом случае при установке нового плагина Тотал вынужден угадывать эти нестандартные имена, для чего он анализирует файлы в соответствующих подкаталогах. Видимо, у тебя в Lister-каталоге завалялся WCX-плагин (например, от Imagine) и это сбивает Тотал с толку, вот он и предлагает этот путь для WCX-плагина.

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

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


Хотя, похоже, ты прав. Удалил файл Imagine.wcx из папки Imagine - и предлагать поставить Total7zip стал в папку Plugins\Packer... Странное поведение. Зачем искать файлы в подпапках папки плагинов, когда разумнее сканировать каталоги установки плагинов в wincmd.ini... :?

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

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

в настоящее время задумался над созданием и изменением архивов...

Добавлено: Ср дек 01, 2010 02:09
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...
Хотел бы я знать…

Ладно, к сабжу это обсуждение отношения не имеет, так что лучше либо закруглиться, либо выделиться в новую ветку. Впрочем, лично у меня по этому поводу всё равно информации больше не имеется. :)

Добавлено: Ср дек 01, 2010 02:19
flm
Total7zip писал(а):
flm писал(а):Т.е. такое, как накартинке соорудить - совсем сложно и не хочется?
диалог сделать просто.
но совсем не хочется вникать в то, какие опции есть у 7zip.
Мда... Если даже "в опции вникать не хочется", то мой вердикт по поводу этой всей затеи - "закапывайте". Очередная под(д)елка на тему функций 7zip'а в tc. Единственная надежда, что Ghisler всё-таки услышит пользователей и сделает нативную поддержку 7zip.dll...

Добавлено: Ср дек 01, 2010 15:29
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" />

Добавлено: Чт дек 02, 2010 19:35
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: обновил ссылку, не добавлялись пустые папки.

Добавлено: Чт дек 02, 2010 20:37
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.

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