编程标识符

Shell 使用编程标识符(ProgID)注册表子项将文件类型与应用程序相关联,并控制关联的行为。 用于文件关联的 ProgID 条目位于注册表中的 HKEY_CLASSES_ROOT 下。

本主题按如下所示进行组织:

有关其他信息,请阅读 如何为新应用程序注册文件类型

文件关联使用的编程标识符元素

ProgID 密钥名称的正确格式为 [Vendor 或 Application]。[组件]。[版本],用句点分隔,没有空格,如 Word.Document.6 中所示。 版本 部分是可选的,但强烈建议使用。 有关详细信息,请参阅 使用版本控制编程标识符

ProgID 子项应包含以下元素。 请注意,此键中的某些字符串数据需要特定的格式设置。

元素 描述
(默认) 将 ProgID 子项的默认条目设置为该 ProgID 的友好名称,适合向用户显示。 运行 Windows 2000 或更高版本的系统上的 FriendlyTypeName 条目将弃用此条目来保存友好名称。 但是,应设置此值以实现向后兼容性。
AllowSilentDefaultTakeOver(在 Windows 8 中引入) 将此可选条目设置为指示 Windows 在确定公共文件类型的默认处理程序时应忽略此 ProgID。 无论是否设置此值,ProgID 将继续显示在 OpenWith 快捷菜单和对话框中。 这是一个REG_NONE值。
AppUserModelID(在 Windows 7 中引入) 如果应用程序使用显式 AppUserModelID 并使用系统自动生成的 最近频繁 跳转列表或提供自定义跳转列表,请将此可选条目设置为应用程序的显式应用程序用户模型 ID(AppUserModelID)。 如果应用程序使用显式 AppUserModelID 且未设置此值,则项目将不会显示在该应用程序的跳转列表中。 这是一个REG_SZ字符串。 有关详细信息,请参阅 应用程序用户模型 ID(AppUserModelIDs)
EditFlags 使用 FILETYPEATTRIBUTEFLAGS 枚举中的标志设置此可选条目。 EditFlags 条目控制 Shell 处理链接到此 ProgID 的文件类型的某些方面。 还可以使用 EditFlags 条目来限制用户可以使用文件的属性表修改这些文件类型的某些方面。 用于 EditFlags 的 FILETYPEATTRIBUTEFLAGS 值是二进制值,因此可以在按位 OR作中将多个属性合并为单个值。 这是一个REG_DWORD或REG_BINARY值。
FriendlyTypeName 将此条目设置为 ProgID 的友好名称,适合向用户显示。 为了一致性,此字符串应包含与此 ProgID 键的默认条目相同的数据。 此条目可以是REG_SZ或REG_EXPAND_SZ字符串,但它必须格式化为间接字符串(完全限定的文件名和资源值前面有 @ 符号),例如 @%SystemRoot%\shell32.dll,-154
InfoTip 将此条目设置为 Shell 为此 ProgID 显示的简短帮助消息。 “信息提示”条目显示在鼠标悬停对话框中。 此值可以是REG_SZ或REG_EXPAND_SZ字符串,但与 FriendlyTypeName 一样,该值必须格式化为间接字符串。
CurVer 将此子项的 (Default) 条目设置为此 ProgID 的最新版本。
注意: 除非有并行应用程序版本(即在同一系统上安装的多个版本),否则应避免使用 CurVer
DefaultIcon 将此子项的 (Default) 条目设置为要显示与此 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 是其名称中指示其版本的 ProgID。 通常可以通过向名称添加句点和版本号来执行此作。 例如:

  • Word.Document.6
  • Word.Document.8

这些版本分别是版本 6 和 8 的 ProgID。 如果你有并行应用程序,即支持同时安装的多个版本的应用程序,请使用 CurVer 和版本独立 ProgID。 否则,应避免 CurVer 和版本独立 ProgID,因为它们会导致效率低下。

如何为新应用程序注册文件类型

应用程序注册

文件类型

文件关联的工作原理

按文件类型或类型 内容视图

文件类型验证程序

文件类型处理程序

感知类型

关联数组