Отправляет email-рассылки с помощью сервиса Sendsay

[TC] способы сопоставления типа файла с программой, из темы Foobar200 в контекстном меню Проводника

Добрый вечер рассыльчане и Никита.

Вы писали:
В Windows есть два вида механизма сопоставления типа файла с программой.
Один из них подавляет другой, а ещё тот самый подавляющий приводит к игнорированию кастомных пунктов контекстного меню.

Вы рассказали об одном, подавляющем, способе сопоставления типа файла с программой
через диалог "Открыть с помощью".
А какой второй, не подавляющий способ?

Заранее благодарю.

Ответить   Mon, 1 Nov 2021 17:36:05 +0200 (#3679074)

 

Ответы:

Здравствуйте, Юрий Петрович.

Второй не имеет пользовательского интерфейса и должен реализовываться разработчиками приложений в виде создания нескольких разделов системного реестра.
Судя по изначальному вопросу, в Foobar2000 реализована функциональность добавления программой собственных сопоставлений в системный реестр, просто через диалог "Открыть с помощью" это всё было подавлено. Если удалить указанный раздел, то всё должно заработать так, как планировал разработчик Foobar2000.
Для рядовых пользователей вручную повторять этот способ я бы не советовал, но для сильно интересующихся могу показать, как это работает.
Надо создать раздел для расширения как такового, из которого сослаться на раздел с командами для этого расширения.
Во втором разделе команд как раз можно прописать название типа файла и создать дополнительные пункты для контекстного меню.
Вот, например, условное сопоставление Блокнота с расширением .abc, где в контекстном меню ещё будет дополнительный пункт "Открыть в Wordpad":

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.ABC]
@="ABC.Files"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ABC.Files]
@="Файлы формата ABC"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ABC.Files\shell]
@="open,wordpad"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ABC.Files\shell\open]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ABC.Files\shell\open\command]
@="notepad.exe \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ABC.Files\shell\wordpad]
@="Открыть в Wordpad"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ABC.Files\shell\wordpad\command]
@="wordpad.exe \"%1\""

Причём, если всё создавать в HKEY_LOCAL_MACHINE, то это будет применено для всех пользователей, а уточнить конфигурацию для текущего пользователя можно в HKEY_CURRENT_USER.
Посмотреть актуальный микс HKEY_LOCAL_MACHINE и HKEY_CURRENT_USER для текущего пользователя можно в HKEY_CLASSES_ROOT, а именно в разделах:
HKEY_CLASSES_ROOT\.ABC
HKEY_CLASSES_ROOT\ABC.Files

Но ещё раз: если что-то из этого было не понятно, то лучше не пробовать повторять это вручную дома. Это то, что должны реализовывать разработчики приложений, ассоциирующихся с файлами и прописывающих дополнительные пункты в их контекстные меню.
Успехов. Никита.

Ответить   Mon, 1 Nov 2021 21:07:59 +0300 (#3679082)