Поделиться через


Программные идентификаторы

Оболочка использует подраздел реестра с программным идентификатором (ProgID) для связывания типа файла с приложением и управления поведением связи. Записи ProgID, используемые для сопоставления файлов, находятся в HKEY_CLASSES_ROOT реестра.

Эта тема организована следующим образом:

Дополнительные сведения см. в статье How To Register a File Type for a New Application (Регистрация типа файла для нового приложения).

Элементы программного идентификатора, используемые сопоставлениями файлов

Правильный формат имени ключа ProgID — [поставщик или приложение]. [Компонент]. [Версия], разделенная точками и без пробелов, как в Word. Document.6. Часть версии является необязательной, но настоятельно рекомендуется. Дополнительные сведения см. в разделе Использование программных идентификаторов с управлением версиями.

Подраздел ProgID должен содержать следующие элементы. Обратите внимание, что для некоторых строковых данных в этом разделе требуется определенное форматирование.

Элемент Описание
(По умолчанию) Задайте для записи по умолчанию подраздела ProgID понятное имя для этого ProgID, подходящее для отображения пользователю. Использование этой записи для хранения понятного имени является нерекомендуемым записью FriendlyTypeName в системах под управлением Windows 2000 или более поздней версии. Однако это значение следует задать для обратной совместимости.
AllowSilentDefaultTakeOver (появилась в Windows 8) Задайте эту необязательную запись, чтобы сообщить о том, что Windows должна игнорировать этот ProgID при определении обработчика по умолчанию для общедоступного типа файла. Независимо от того, задано ли это значение, ProgID по-прежнему отображается в контекстном меню и диалоговом окне OpenWith. Это REG_NONE значение.
AppUserModelID (появился в Windows 7) Задайте для этой необязательной записи явный идентификатор модели пользователя приложения (AppUserModelID), если приложение использует явный AppUserModelID и использует автоматически создаваемые системой списки последних или частых переходов или предоставляет пользовательский список переходов. Если приложение использует явный идентификатор AppUserModelID и не устанавливает это значение, элементы не будут отображаться в списках переходов этого приложения. Это строка REG_SZ. Дополнительные сведения см. в разделе Идентификаторы моделей пользователей приложения (AppUserModelIDs).
EditFlags Задайте эту необязательную запись с помощью флагов из перечисления FILETYPEATTRIBUTEFLAGS . Запись EditFlags управляет некоторыми аспектами обработки оболочкой типов файлов, связанных с этим ProgID. Вы также можете использовать запись EditFlags, чтобы ограничить, насколько пользователь может изменять определенные аспекты этих типов файлов с помощью страницы свойств файла. Значения FILETYPEATTRIBUTEFLAGS , используемые для EditFlags, — это двоичные значения, разработанные таким образом, чтобы можно было объединить несколько атрибутов в одно значение в побитовой операции OR. Это значение REG_DWORD или REG_BINARY.
FriendlyTypeName Задайте для этой записи понятное имя ProgID, которое подходит для отображения пользователю. Для обеспечения согласованности эта строка должна содержать те же данные, что и запись по умолчанию для этого ключа ProgID. Эта запись может быть REG_SZ или REG_EXPAND_SZ строкой, но она должна быть отформатирована как непрямая строка (полное имя файла и значение ресурса, перед которым стоит символ @ ), например @%SystemRoot%\shell32.dll,-154.
Подсказка Задайте для этой записи краткое справочное сообщение, которое оболочка отображает для этого ProgID. Запись InfoTip отображается в диалоговом окне наведения указателя мыши. Это значение может быть REG_SZ или REG_EXPAND_SZ строкой, но, как и FriendlyTypeName, оно должно быть отформатировано как непрямая строка.
Curver Задайте для записи (по умолчанию) этого подраздела самую последнюю версию этого ProgID.
Примечание: Если у вас нет параллельных версий приложений, то есть нескольких версий, установленных в одной системе, следует избегать использования CurVer.
DefaultIcon. Задайте для записи (По умолчанию) этого подраздела значок по умолчанию, который вы хотите отобразить для типов файлов, связанных с этим ProgID. Это значение может быть REG_SZ или REG_EXPAND_SZ строкой, но оно должно быть указано в виде полного имени файла со значением сопровождающего ресурса, например %SystemRoot%\shell32.dll,-154.

 

В следующем примере раздела реестра показан узел ключа ProgID сопоставления файлов:

HKEY_CLASSES_ROOT
   Vendor.App.1
      (Default) = My Friendly Name
      AllowSilentDefaultTakeOver
      AppUserModelID = Vendor.Application
      EditFlags = 0x00000001
      FriendlyTypeName = @%SystemRoot%\shell32.dll,-154
      InfoTip = @%SystemRoot%\shell32.dll,-54
      CurVer
         (Default) = Vendor.App.1
      DefaultIcon
         (Default) = %SystemRoot%\shell32.dll,-1

Использование программных идентификаторов с управлением версиями

Идентификатор ProgID с управлением версиями — это идентификатор, версия которого указана в его имени. Обычно это делается путем добавления точки и номера версии к имени. Пример:

  • Word. Документ.6
  • Word. Документ.8

Это идентификаторы ProgID с версиями 6 и 8 соответственно. Если у вас есть параллельное приложение, то есть приложение, которое поддерживает несколько версий приложения, установленное одновременно, используйте CurVer и Версии независимых идентификаторов ProgID. В противном случае следует избегать CurVer и Версии Независимых идентификаторов ProgID, так как они приведут к неэффективности.

Регистрация типа файла для нового приложения

Регистрация приложения

Типы файлов

Принцип работы сопоставлений файлов

Просмотр содержимого по типу или типу файла

Средство проверки типов файлов

Обработчики типов файлов

Воспринимаемые типы

Массивы ассоциаций