文件关联示例

在以下示例中,一家名为 Litware, Inc. 的假设软件开发公司创建了一个名为 LitwarePlayer 的新音频播放器。 Litware 希望设计 LitwarePlayer 与其主文件类型之间的文件关联,该文件类型使用新开发的音频格式,使整个音频 CD 存储在小于 10 千字节的内存中,且不会降低质量。

重要

本主题不适用于Windows 10。 默认文件关联的工作方式在Windows 10中发生了变化。 有关详细信息,请参阅本文中的更改Windows 10处理默认应用的方式部分。

 

设计新的文件关联

公司应执行以下步骤。

  1. 确定应将新文件类型视为公共文件类型还是专用文件类型。 此新文件类型是媒体类型。 由于用户跨各种平台交换媒体文件,并且可能还有其他应用程序需要读取 LitwarePlayer 格式,因此 公共 文件类型是最合适的。

  2. 确定是否已定义此文件类型。 检查 Internet 号码分配机构 (IANA) MIME 数据库,以及 Internet 上的其他公共文件类型数据库,以确定尚未定义可比较的文件类型。 由于这是一种新的文件格式,因此需要定义新的文件类型。

  3. 定义新文件类型的文件扩展名。 开发人员选择 , .opa-ltw-audio它包含其供应商缩写和有关文件包含的提示。 研究确定该扩展未由其他人使用。 根据当前建议,未定义简短扩展。

  4. 定义文件类型的 MIME 类型,并将其注册到 IANA。 Litware 将新的 MIME 类型定义为 audio/LitwarePlayer.1 ,并按照征求意见 (RFC) 编号 2045、2046、2047 和 2048 中所述的准则准备 MIME 类型应用程序。 然后,将应用程序提交到 IANA,IANA 会将新文件类型添加到已注册 MIME 类型的数据库中。

  5. 确定是否存在文件类型的 ProgID。 由于这是一种新的文件类型,因此不存在 任何 ProgID 。 Litware 设置如何为 LitwarePlayer 设计新的 ProgID。 他们决定友好名称“LitwarePlayer Audio Player” (,该名称作为资源存储在LitwarePlayer.exe文件) 中,并设计了一个默认图标,用于与 LitwarePlayer 关联的文件 (也存储在LitwarePlayer.exe) 中。 由于 LitwarePlayer 是新应用程序,因此这是版本 1 ProgID。

  6. 注册 ProgID。 安装 LitwarePlayer 后,安装程序会在注册表中创建以下 ProgID 条目。

    HKEY_CLASSES_ROOT
       Litware.LitwarePlayer.1
          (Default) = LitwarePlayer Audio Player
          FriendlyTypeName = @LitwarePlayer, -120
          CurVer
             (Default) = Litware.LitwarePlayer.1
          DefaultIcon
             (Default) = LitwarePlayer, -142
          shell
             play
                command
                   (Default) = "%ProgramFiles%\LitwarePlayer\LitwarePlayer.exe" "%1"
    

    在命令键中,%1 作为要播放的文件的路径传递。

  7. 注册文件类型的文件扩展名。 安装 LitwarePlayer 后,安装程序会在注册表中为其自定义文件类型扩展创建以下条目。

    HKEY_CLASSES_ROOT
       .opa-vwi-audio
          (Default) = Litware.LitwarePlayer.1
          PerceivedType = Audio
          Content Type = audio/LitwarePlayer
    

注意

每当创建或更改文件关联时,通过调用 SHChangeNotify 并指定SHCNE_ASSOCCHANGED事件来通知系统已进行更改。 如果未执行此操作,Shell 在系统重启之前可能无法识别所做的任何更改。

 

其他资源

文件关联的最佳做法

在 Windows Vista 及更高版本中管理默认应用程序的指南

默认程序

(SPAD) 设置程序访问和计算机默认值