编程标识符

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

本主题的组织方式如下:

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

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

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

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

元素 说明
(默认) 将 ProgID 子项的默认条目设置为该 ProgID 的友好名称,适合向用户显示。 在运行 Windows 2000 或更高版本的系统上,FriendlyTypeName 条目已弃用使用此条目来保存友好名称。 但是,应设置此值以实现向后兼容性。
Windows 8) 中引入的 AllowSilentDefaultTakeOver ( 设置此可选条目以指示 Windows 在确定公共文件类型的默认处理程序时应忽略此 ProgID。 无论是否设置此值,ProgID 都会继续显示在 OpenWith 快捷菜单和对话框中。 这是一个REG_NONE值。
Windows 7) 中引入的 AppUserModelID ( 如果应用程序使用显式 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
信息提示 将此条目设置为 Shell 为此 ProgID 显示的简短帮助消息。 “信息提示”项显示在鼠标悬停对话框中。 此值可以是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 是在其名称中指示其版本的 ProgID。 通常通过向名称添加句点和版本号来执行此操作。 例如:

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

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

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

应用程序注册

文件类型

文件关联的工作原理

按文件类型或类型显示的内容视图

文件类型验证程序

文件类型处理程序

感知类型

关联数组