Программные идентификаторы
Оболочка использует подраздел реестра с программным идентификатором (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, так как они приведут к неэффективности.