自定义 Windows 文件图标

自定义 Windows 文件图标

起因

在 Windows 上我将 Markdown 文件的默认打开方式设置为 Kate 时,图标会变成丑丑的默认文件图标加对应的软件图标,而如果设置为 VSCode 则会显示为 VSCode 设计的图标。

期间尝试用 FileTypesMan 去修改,结果直接把图标变成更难看的默认白图标了。

在注册表瞎逛时,无意间发现如 .mdVSCode.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 中的对应项有双引号,所以我就加上双引号了。

指向 kate.exe
指向 kate.exe
kate 启动参数
kate 启动参数

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

添加到打开方式中
添加到打开方式中

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

修改默认打开方式
修改默认打开方式

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

最终效果
最终效果