起因
在 Windows 上我将 Markdown 文件的默认打开方式设置为 Kate 时,图标会变成丑丑的默认文件图标加对应的软件图标,而如果设置为 VSCode 则会显示为 VSCode 设计的图标。
期间尝试用 FileTypesMan 去修改,结果直接把图标变成更难看的默认白图标了。
在注册表瞎逛时,无意间发现如 .md
、VSCode.md
这样的项,经过一番研究,总算是搞清楚了 Windows 上自定义文件图标的方法。
修改方式
这里我以 .ts
文件,Kate 为例,演示如何自定义。
首先,你需要准备一个 .ico
图标,我是直接拿 VSCode 内置的图标改的。

首先在注册表中打开 HKEY_CLASSES_ROOT
项,在该项下新建一个项,暂时不确定名称是否可以任意,这里我命名为 Text.ts
。

在该项下,依次新建其他项,最终形成如下结构:
markdown
Text.ts
- DefaultIcon
- shell
- open
- command

在 DefaultIcon
项中,将默认值设置为自定义图标的路径。

在 open
项中,可以添加一个字符串值,名称 Icon
,用于设置右键菜单中“打开”那一项前显示的图标,如果不想要该图标,可以不创建该值。
我指向了 Kate 的 exe 程序,会显示 Kate 的图标。这里我加上了双引号,我不确定是不是必要的,VSCode 的 VSCode.md
中的对应项有双引号,所以我就加上双引号了。


将 command
项的默认值设置为打开文件的程序的命令,我的是 "C:\Program Files\Kate\bin\kate.exe" "%1"
,其中 %1
为对应文件的路径。

在 HKEY_CLASSES_ROOT
项中,找到 .ts
,在其 OpenWithProgids
项中,新建一个字符串值,命名为 Text.ts
。

最后一步,在资源管理器中,右键任意 .ts
文件,在“打开方式”、“选择其他应用”中就可以看到刚刚添加的“kate.exe”,将它设置为默认打开方式,此时,就可以看到 .ts
文件的图标变为自定义的图标了。
