Ru-Board.club
← Вернуться в раздел «Программы»

» TC4Shell - работа с архивами в Проводнике

Автор: Aniskin
Дата сообщения: 18.07.2015 18:53
Inoz2000


Цитата:
У ярлыков в контекстном меню получается две строки 'Упаковать в'
Есть предложение лучше?


Цитата:
в конце такой строки предполагается многоточие
Imho, многоточие предполагается, если после выбора пункта меню появляется диалог. Здесь же появляется вложенное меню.


Цитата:
они и не архивы вовсе
Это проблема терминологии. Для пользователя архивом является файл, в который можно упаковать другие файлы. А с точки зрения TC4Shell архивом является любой файл, для которого есть плагин, который его может открыть. Для WCX есть плагин 7z.Pe, поэтому WCX считается архивом. Если будут предложения по изменению терминологии - с удовольствием выслушаю.


Цитата:
Но к файлам, для которых я целенаправленно устанавливаю плагин, такой подсказки не появляется.
Есть два варианта:

1) Плагин не опознал свой файл/не имеет функции опознания своих файлов.
2) Ранее на предложение установить ассоциацию для этого расширения файлов было отвечено нет, и TC4Shell запомнил ответ и более не предлагает.

В этих случаях можно ручками установить ассоциацию в свойствах файла на вкладке Навигация. Если скажешь, что за плагин, то отвечу более детально.


Цитата:
В папке с плагином возникает кнопка 'Установить'; В диалоговом окне “Установка” я жму 'Пропустить', но плагин копируется в папку %AppData% и прописывается в реестре
Нажатие кнопки "Установка" приводит к установке плагина, что собственно говоря и происходит. Нажатие на "Пропустить" приводит к тому, что УЖЕ установленный плагин НЕ ассоциируется с предлагаемыми расширениями файлов. Вроде бы все логичненько.


Цитата:
Я так понимаю, что настроек у программы нет по идее. А как удалять установленные плагины?
В данное время не имеет, это планы на будущее. Удалить плагин можно ручками в реестре из ветки HKEY_CURRENT_USER\Software\Dec Software\TC4Shell\ArchivePlugins. Но предварительно рекомендую снять ассоциации между расширениями файлов и этим плагином.


Цитата:
с exe-файлами получается путаница. При установке ассоциации на них (7z.PE), не запускаются программы
Не удается воспроизвести, опиши, пож-та, более детально.


Цитата:
И как SFX-архивы они не открываются. и как NSIS — тоже.
Проблема мне ясна, но пока не знаю, как корректно ее решить.


Цитата:
В VHD-образе я вижу один большой файл без расширения
По изучаю.

Добавлено:

Цитата:
В VHD-образе я вижу один большой файл без расширения

А что видишь, если открыть этот VHD в 7z?
Автор: Inoz2000
Дата сообщения: 18.07.2015 19:13
я чуть дополнил свой предыдущий пост про вкладку 'Навигация'

щас отвечу…
Автор: Aniskin
Дата сообщения: 18.07.2015 19:26
Inoz2000


Цитата:
Если нажать 'Нет' то запрос больше не появляется, хотя галочка 'не показывать это диалоговое окно' осталась на тронутой
Галочка глобальная - при ее установке и нажатии Нет TC4Shell более не будет надоедать со своими предложениями относительно ассоциация для ВСЕХ типов файлов. А если просто нажать на Нет, то это нет запомнится только для расширения текущего выбранного файла.


Цитата:
Ассоциация включается автоматически, но только в том случае, если при установке плагина отмечена галочка.
Если при установке снять галочку с расширения, то в свойствах таких файлов вкладка 'Навигиция' окажется пустой.
Так вроде бы все логичненько. Или нет?
Автор: Inoz2000
Дата сообщения: 18.07.2015 19:38

Цитата:
Есть предложение лучше?
дык я уже назвал очевидный выход Просто обе строки одинаковые и неизвестно, какая из них нужная.

Цитата:
многоточие предполагается, если после выбора пункта меню появляется диалог. Здесь же появляется вложенное меню.
Да. Но, при выборе пункта меню появляется диалог.
В меню 'Отправить' -> 'Сжатая Zip-папка' файлы архивируютсябез запроса.

Цитата:
"Установка" приводит к установке плагина, что собственно говоря и происходит
Стало сразу всё ясно. Тогда окно имеет некорректный заголовок, а более подходящий будет 'Настройка'.

Цитата:
Удалить плагин можно ручками
с этим проблем нет.

Цитата:
Не удается воспроизвести, опиши, пож-та, более детально.
Когда программы открываются в проводние как PE-архивы, они перестают запускаться на выполнение


Цитата:
Галочка глобальная
что-то я сразу не допёр.

Цитата:
Так вроде бы все логичненько. Или нет?
По идее во вкладке 'Навигация' должна быть одна выключенная строка, а там нет ни одной.

Добавлено:

Цитата:
А что видишь, если открыть этот VHD в 7z?
В этих обазах - один NTFS раздел, и я вижу содержимое корневого каталога
Автор: Aniskin
Дата сообщения: 18.07.2015 19:59
Inoz2000


Цитата:
Да. Но, при выборе пункта меню появляется диалог.
Я, конечно, могу добавить многоточий в элементах вложенного меню, но imho это более худшее UI-решение, нежели существующее.


Цитата:
более подходящий будет 'Настройка'.
Согласен, исправлю.


Цитата:
Когда программы открываются в проводние как PE-архивы, они перестают запускаться на выполнение
После скриншота я стал понимать еще меньше, чем ранее. Не могу понять, какое отношение имеет TC4ShellHost, который занимается только загрузкой 32-битных wcx в 64-битных системах, к запуску exe файлов. Можно еще больше деталей? Где находится запускаемый exe файл? Как он запускается? Через ярлык? Где находится ярлык? Какие ассоциации у exe и lnk файлов? Лучше в виде reg файла.


Цитата:
По идее во вкладке 'Навигация' должна быть одна выключенная строка, а там нет ни одной.
Предполагаю, что плагин не опознал свой файл/не имеет функции опознания своих файлов. Скажи, что за плагин, дам более точный ответ.

Автор: Inoz2000
Дата сообщения: 18.07.2015 20:24
[more=Вот] [/more]
размер того большого файла без расширения равен 31 138 512 896, значит проводник смог пройти
только путь от N:\BASE\VHD\81_65.vhd до 81_65.mbr, а выше пока не идёт


Цитата:
какое отношение имеет TC4ShellHost
он был взят для примера. в прошлый раз вместо него был Calc.exe
Не запускаются любые программы.
Автор: Aniskin
Дата сообщения: 18.07.2015 20:46
Inoz2000


Цитата:
Не запускаются любые программы.

Повторюсь:
Можно еще больше деталей? Где находится запускаемый exe файл? Как он запускается? Кликом мыши по exe в проводнике? Кликом мыши по ярлыку? Где находится ярлык? Какие ассоциации у exe и lnk файлов? Лучше в виде reg файла.

По поводу vhd. По факту из vhd можно извлечь только 1 файл. Этот файл будет иметь расширение mrb. 7zip знает это и делает это автоматически скрыто от пользователя, а затем открывает извлеченный mrb и показывает его содержимое пользователю. TC4Shell еще такого делать не умеет, но в планах это есть. В текущей ситуации для просмотра vhd можно извлечь файл из образа, изменить у него расширение на mrb, и этот mrb открыть в проводнике. Понимаю, что геморно, но иного варианта с использованием TC4Shell я предложить не могу.
Автор: Inoz2000
Дата сообщения: 18.07.2015 21:42

Цитата:
Лучше в виде reg файла.
Вот из x64 win7 сборки (с виртуалки), из x64 win81 сборки (с домашнего компа), из x32 Vista с образа для ноутбука TOSHIBA L300, а вот на XP всё работает норм. Уж и не знаю, в них ли дело
Автор: Aniskin
Дата сообщения: 18.07.2015 21:55
Inoz2000


Цитата:
Вот
Подтверждаю, проблема есть. Просто я проверял на XP, и все работало кооректно. А вот на 7 такая проблема. Буду думать.
Автор: Inoz2000
Дата сообщения: 18.07.2015 22:19


Цитата:
Просто я проверял на XP
судя по скринам, я думал, что семёрка.

страница закончилась…
Автор: Aniskin
Дата сообщения: 18.07.2015 22:24
Рабочая система 7, но конкретно ту функциональность я проверял на XP.

Добавлено:
1.6.0.161:

-Обновлены 7z.dll и unrar.dll
-Исправлены мелкие баги в коде и UI
Автор: Inoz2000
Дата сообщения: 19.07.2015 00:19
Кстати, о мелких багах…
Первое, что бросилось вчера в глаза, это - когда в системе установлен WinRar и с ним ассоциированы все архивы, то у них у всех (кроме zip) один тип файла [HKEY_CLASSES_ROOT\WinRAR].
Стоит только включить навигацию для одного расширения (напр. 7z), ка все остальные архивы тоже отображаются в дереве папок, но не открываются, пока на них тоже не включишь навигацию. Среди них такие архивы, как ACE и UUE, которые сабж не может открыть в принципе.
Автор: Aniskin
Дата сообщения: 19.07.2015 00:32
Inoz2000
Не могу подтвердить. Только что провел эксперимент (Win7):

1) Отключил все ассоциации с TC4Shell (TC4ShellRemoveAssoc.exe из папки программы).
2) В WinRar включил все ассоциации.
3) Включил для 7z навигацию.

Иконки для всех файлов WinRar-овские.
Автор: Inoz2000
Дата сообщения: 19.07.2015 00:41

Цитата:
Иконки для всех файлов WinRar-овские
иконки пусть будут какие угодно
1) включить для 7z навигацию;
2) все расширения, относящиеся к типу 'Архив WinRAR', появляются в дереве папок, как будто их можно открыть в проводнике (и rar, и ace и т.д.)

Добавлено:
и ещё у них появляется пункт контекстного меню 'Открыть в новом окне' (оно и не удивительно — тип файлов у них общий)
Автор: Aniskin
Дата сообщения: 19.07.2015 00:53
Inoz2000
Все понятно. Да, подтверждаю проблему, но к сожалению мне ее не вылечить из-за специфики регистрации моего расширения оболочки, реализующего функциональность открытия архивов в Проводнике. Придется с этим жить. Ну или попросить автора WinRar изменить регистрацию архивов с WinRar на WinRar.EXT как у zip.
Автор: Inoz2000
Дата сообщения: 19.07.2015 23:53

Цитата:
попросить автора WinRar
и всех других авторов, ага.
WinRar был взят для примера. Не может быть, что он единственный в мире, который ассоциирует несколько расширений в одном типе файлов.
Автор: Aniskin
Дата сообщения: 20.07.2015 00:17
Inoz2000

Цитата:
и всех других авторов, ага.
Повторюсь, на моем уровне проблема не решаема.

А вообще, imho, выбранная Евгением методика регистрации не удачна. Имею я, например, кучу rar и 7z файлов в одной папке. И захочу я, например, отсортировать в проводнике файлы по типу, дабы выбрать только rar. Тыкаю на заголовок колонки в надежде получить отсортированный по расширению список, а по факту получу кучу перемешанных файлов с типом WinRar archive. Imho, не очень удобно. А была бы регистрация по отдельному ProgId на расширение, то я бы получил список из двух частей, в первой части были бы файлы с типом WinRar 7z archive, а во второй WinRar 7z Rar archive.


Добавлено:
И, например, тот же 7Zip применяет "правильную" методику регистрации с отдельным ProgId на расширение. И при сортировке файлов по типу разные типы файлов прекрасно разделяются.
Автор: Victor_VG
Дата сообщения: 20.07.2015 02:23
Aniskin

Проще. Моделируете поведение команды assocс + запись в ключи Реестра. C++ код в конце концов пока из-за отказа SSD sourceforge.net (ночью они именно этим оправдывались - мол SSD сдохли SourceForge.chm
) лежит можете посмотреть тут:

AppAssocReg.zip
http://www96.zippyshare.com/v/jLBMnlRQ/file.html
Registry.zip
http://www96.zippyshare.com/v/5JqNp5rK/file.html

может пригодится.

P.S.

Интересно какая муха укусила того ... кто в Slashdot Media принимал заведомо провальное решение поставить SSD в высоко нагруженные системы хранения? Ведь для них если им нужна скорость есть HDD накопители серверного класса Enterprise Capacity 3.5 HDD с наработкой на отказ 2 млн. часов и специально созданные для такой нагрузки. Никак "решальщику" добрый мешок денег принесли и он все его сомнения перевесил.
Автор: Aniskin
Дата сообщения: 20.07.2015 08:02
Victor_VG

Цитата:
Проще.
Извини, не понял. Что проще и относительно чего проще?

Автор: Inoz2000
Дата сообщения: 20.07.2015 10:03

Цитата:
на моем уровне проблема не решаема.

А вообще, imho, выбранная Евгением методика регистрации не удачна.
ещё как решаема.
Уже много раз задавались вопросы, как самому сделать значки для отдельных расширений, ассоциированных с WinRar-ом. Но 'выбранная Евгением методика' остаётся неизменной.
Кстати у архиватора StuffIt она такая же.
Автор: Victor_VG
Дата сообщения: 20.07.2015 13:19
Aniskin

Задача решается много проще. В ключах HKCU\Software\CLASSES (персональные ассоциации) и HKLM\Software\CLASSES его виртуальное отображение HKCR используется пара подключей .EXT вида:

[HKCR\.EXE]
@=EXTFILE


и EXTFILE в котором собственно всё и описано, а в подключе EXTFILE\Open сидит указание на обработчик по умолчанию. Трогать .EXT нет смысла, проще пройти в ссылочный EXTFILE и там (если нужно!) поправить в @="filetype", DefaultIcon="iconfile,iconindex" и EXTFILE\Open значения не забыв их сбэкапить. Можно и на месте добавив префикс back_|backup_, а при удалении своего приложения вернуть бэкап на место.

Это рекомендуемое решение, но можно конечно использовать любое иное, правда возможны и проблемы типа удаления "ненужных" ключей и значений приводящие к переустановке ОС в целом.
Автор: Aniskin
Дата сообщения: 20.07.2015 13:34
Victor_VG

Цитата:
EXTFILE\Open
EXTFILE\Open я вообще не трогаю. У меня регистрация происходит по сценарию регистрации расширения оболочки, а не по сценарию регистрации приложения, в нем все иначе.
Автор: Victor_VG
Дата сообщения: 20.07.2015 14:04
Aniskin

На деле всё сводится к записи системой нового подключа в EXTFILE. В принципе оба смыслу равноправны, но по моему регистрация приложения проще и надёжнее.
Автор: Aniskin
Дата сообщения: 20.07.2015 14:33
Victor_VG

Цитата:
регистрация приложения проще и надёжнее
TC4Shell не является классическим приложением. TC4Shell - это расширение оболочки, и регистрация на EXTFILE\Open не применима в принципе.
Автор: Victor_VG
Дата сообщения: 20.07.2015 14:41
Aniskin

Согласен, но общие приёмы работы всё равно можно использовать. Зачем свои изобретать?
Автор: Inoz2000
Дата сообщения: 20.07.2015 14:42

Цитата:
мне ее не вылечить из-за специфики регистрации
CLSID надо писать не в HKEY_CLASSES_ROOT\WinRAR, а для каждого расширения отдельно. Например,


Код:
REGEDIT4


[HKEY_CLASSES_ROOT\SystemFileAssociations\.7z\CLSID]
@="{B1BE3C6B-25E2-47DE-8AB9-878FCA3CD01A}"

[HKEY_CLASSES_ROOT\SystemFileAssociations\.7z\shellex\ContextMenuHandlers\{9EE0C3EF-C379-4FED-B2A8-651BB61F5C0F}]
"{9EE0C3EF-C379-4FED-B2A8-651BB61F5C0F}"=""


Автор: Aniskin
Дата сообщения: 20.07.2015 15:59
Inoz2000

Цитата:
CLSID надо писать не в HKEY_CLASSES_ROOT\WinRAR, а для каждого расширения отдельно
Пробовал или просто предположение?
Автор: Inoz2000
Дата сообщения: 20.07.2015 16:19
Логика такая. Zip и cab архивы открываются в проводнике, даже когда у них установлен тип WinRar. Потому что CLSID прописаны для них персонально, для каждого свой.

Пробовал и на 7, и на XP. Оттуда и файлик реестра уже готовый взял.
1) Вкл. навигацию для 7z
2) удалить CLSID из HKCR\WinRAR
3) дабавить этот файл реестра
4) убить/перезапустить процесс explorer.exe
5) благодарить не надо
Автор: Aniskin
Дата сообщения: 20.07.2015 18:05
Все бы было бы прекрасно, но доступ к HKEY_CLASSES_ROOT\SystemFileAssociations требует админовых прав, чего я всячески избегал.
Автор: Inoz2000
Дата сообщения: 20.07.2015 18:13
ну дык HKCU\Software\Classes\SystemFileAssociations же!

страница закончилась… вперёд, к новой версии!

Страницы: 12345678

Предыдущая тема: дубль


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.