Указание обработчиков файлов для расширений имен файлов
Существует несколько способов определить приложение, которое обрабатывает файл с определенным расширением файла. Команды OpenWithList и OpenWithProgids являются двумя способами указания обработчиков файлов в записи реестра для расширения файла.
Команда OpenWithList
Щелкнув правой кнопкой мыши файл в проводнике Windows, вы увидите команду Open . Если с расширением связано несколько продуктов, отображается подменю Open With .
Чтобы открыть расширение, можно зарегистрировать различные приложения, задав ключ OpenWithList для расширения файла в HKEY_CLASSES_ROOT. Приложения, перечисленные под этим ключом для расширения файла, отображаются в разделе "Рекомендуемые программы " в диалоговом окне "Открыть с помощью". В следующем примере показаны приложения, зарегистрированные для открытия расширения .vcproj.
HKEY_CLASSES_ROOT\
.vcproj\
(default)="VisualStudio.vcproj.14.0"
OpenWithList\
devenv.exe
Примечание.
Ключи, указывающие приложения, находятся в списке в разделе HKEY_CLASSES_ROOT\Applications.
Добавив ключ OpenWithList, вы объявляете, что приложение поддерживает расширение файла, даже если другое приложение принимает на себя ответственность за расширение. Это может быть будущая версия приложения или другого приложения.
OpenWithProgIDs
Программные идентификаторы (ProgID) — это понятные версии classID, определяющие версию приложения или COM-объекта. Каждый совместно создаваемый объект должен иметь свой идентификатор ProgID. Например, VisualStudio.DTE.7.1 запускает Visual Studio .NET 2003, а VisualStudio.DTE.10.0 запускает Visual Studio. В качестве владельца типа проекта или типа элемента проекта необходимо создать идентификатор ProgID версии для расширения файла. Эти идентификаторы progID могут быть избыточными в том, что несколько ProgID могут запускать одно и то же приложение. Дополнительные сведения см. в разделе "Регистрация команд для расширений имен файлов".
Используйте следующее соглашение об именовании для файлов с версиями ProgIDs, чтобы избежать дублирования с регистрацией от других поставщиков:
Расширение файла | Версия ProgID |
---|---|
.расширение | ProductName. extension.versionMajor.versionMinor |
Вы можете зарегистрировать различные приложения, которые могут открыть определенное расширение файла, добавив версии ProgID в качестве значений в ключ HKEY_CLASSES_ROOT\<extension>\OpenWithProgids. Этот раздел реестра содержит список альтернативных идентификаторов ProgID, связанных с расширением файла. Приложения, связанные с перечисленными progID, отображаются в подменю "Открыть сименем продукта". Если одно и то же приложение указано в обоих OpenWithList
OpenWithProgids
ключах, операционная система объединяет дубликаты.
Примечание.
OpenWithProgids
Ключ поддерживается только в Windows XP. Так как другие операционные системы игнорируют этот ключ, не используйте его в качестве единственной регистрации для обработчиков файлов. Используйте этот ключ, чтобы обеспечить лучший пользовательский интерфейс в Windows XP.
Добавьте требуемые идентификаторы ProgID в качестве значений типа REG_NONE. В следующем коде представлен пример регистрации progIDs для расширения файла (.ext).
HKEY_CLASSES_ROOT\
.ext\
(default)="MyProduct.ext.14.0"
OpenWithProgids
progid REG_NONE (zero-length binary value)
otherprogid REG_NONE (zero-length binary value)
ProgID, указанный в качестве значения по умолчанию для расширения файла, является обработчиком файлов по умолчанию. Если вы изменяете ProgID для расширения файла, который поставляется с предыдущей версией Visual Studio или которые можно взять на себя другими приложениями, необходимо зарегистрировать OpenWithProgids
ключ для расширения файла и указать новый ProgID в списке вместе со старыми поддерживаемыми идентификаторами ProgID. Например:
HKEY_CLASSES_ROOT\
.vcproj\
(default)="VisualStudio.vcproj.14.0"
OpenWithProgids
vcprojfile //old progid
VisualStudio.vcproj.12.0 //old progid
VisualStudio.vcproj.14.0 //new progid
Если старый ProgID содержит команды, связанные с ним, эти команды также будут отображаться в разделе "Открыть с именем продукта" в контекстном меню.