对于 Windows 桌面应用来说,让应用关联一种或多种文件类型是通过修改注册表来实现的。
本文介绍如何为你的应用关联自定义的文件类型或者关联被广泛使用的文件类型。
文件关联
Windows 上的文件关联是通过文件的扩展名来实现的。有些文件类型是被广泛使用的公共类型,例如 .txt、.png、.mp4 文件;有些则是你自己的应用程序使用的私有类型,例如我自己定义一个 .lvyi 扩展名的文件类型。
我们会关联这些广泛使用的类型可能是因为我们自己写了一个自己的文本编辑器,于是我们会关联 .txt 或者 .md 类型。而我们关联自定义的文件类型是因为我们需要为我们自己的应用生态产生一些文件数据。
那么问题来了,我怎么知道我现在准备使用的扩展名是不是已经被广泛使用的公共类型呢?请进入此网站查看:Media Types。
注册一个文件类型
要在 Windows 系统上注册一个文件类型,你需要做三个步骤:
- 取一个应用程序标识符(ProgID)
- 在注册表中添加文件关联(用于告知 Windows 这个文件已经被关联)
- 为关联的程序添加谓词(用于打开这个文件)
取一个应用程序标识符
没错,我说的就是取名字,而且要求在 Windows 系统上全局唯一;所以这里取名字也是有讲究的。关于应用程序标识符的相关内容,可以阅读微软的官方文档:Programmatic Identifiers - Windows applications - Microsoft Docs。
微软建议的 ProgID 的取名方式是这样的:
厂商名.应用名.版本号
这里的版本号通常是指的大版本号。例如版本号为 1.6.0.97
的应用,通常只取第一位,即 1
。一个典型的建议的取名示例是这样的:
Walterlv.Foo.1
还是看微软自己的命名示例会更权威一点:
竟然取一个名字也