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

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

在该项下,依次新建其他项,最终形成如下结构:
MarkdownText.ts
- DefaultIcon
- shell
- open
- command
在 DefaultIcon 项中,将默认值设置为自定义图标的路径。

在 open 项中,可以添加一个字符串值,名称 Icon,用于设置右键菜单中“打开”那一项前显示的图标,如果不想要该图标,可以不创建该值。
我指向了 Kate 的 exe 程序,会显示 Kate 的图标。考虑到路径中可能包含空格等特殊字符,因此建议加上双引号。


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

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

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

2025-10-07 补充内容。
设置打开方式应用名称
经过上面一番折腾后,打开方式列表中显示为 kate.exe,虽然不是不能用,但是看着着实不舒服,不过好在经过一番研究,找到了解决办法。
在注册表编辑器中打开路径 HKEY_CLASSES_ROOT\Applications,找找看有没有对应 exe 程序名称的项,如果没有就新建一个,这里我新建一个 kate.exe。

然后在该项中新建一个字符串值,键名 FriendlyAppName,键值就直接写希望使用的名称,这里我写的 Kate。

无需重启资源管理器,已经可以看到效果了。

