如果是Win10及之前的系统,可以直接使用管理员CMD运行以下两行代码
assoc.ani=anifile
assoc.cur=anifile
此方法在Win11无效,于是我开始自己研究如何解决这个问题。
首先确定事情发生的原因,为什么资源管理器无法预览.ani/.cur文件?
资源管理器本身是可以预览.cur文件的,因为我不小心选择了「总是」使用某鼠标图标制作器应用(以下简称「某应用」)打开此扩展,此时所有.cur的图标变成了该应用的图标,吓得我赶紧删除了.cur的注册表项(恢复.cur扩展默认的打开方式)并重启资源管理器,此时.cur文件不再默认使用某应用打开,但是图标却变为了空白纸。

.cur图标无法预览,显示为空白纸,.ani文件可以正常预览
于是我立即上网搜索「.cur无法预览怎么办」,便得到了文章开头的回答,我开心地运行了这两行命令,发现并不生效(重启电脑依然不生效),进一步搜索得知,此方法在Win11是无效的,这下伤脑筋了。
好在,我并未修改过.ani的默认打开方式,所以我的电脑可以正常预览.ani文件,于是我打开了.ani的注册表项,对比.cur的区别,发现了在.ani下存在一个OpenWithProgids的项,而.cur仅有一个OpenWithList项(此项正是记录默认打开方式的注册表项)。

.ani下的OpenWithProgids项
于是我在.cur中新建了一个名为OpenWithProgids的项,并添加了一个名为'anifile'的「二进制值」,然后重启资源管理器,依然无效,这时我纳闷了,为什么还是不生效呢?

在.cur下添加OpenWithProgids项并添加一个名为anifile的二进制值
难道anifile仅是针对.ani吗?文章开头提到方法无论是.ani还是.cur都是=anifile,那我改成curfile试一下呢?果然,也不行,那是怎么回事?难道Win11的扩展注册表项并不在这个地方?经过一番搜索,无果。扩展项就是这个路径,没有错啊。
此时我注意到了注册表值的类型,可以正常预览的.ani下的二进制值的类型是'REG_NONE',而.cur下的二进制值的类型是'REG_BINARAY',难道问题是出在这里吗?

类型为'REG_NONE'的二进制值
没错,问题就是出在这里,我尝试了新建所有值,但是没有任何值的类型为'REG_NONE'。

没有类型为'REG_NONE'的任何值
于是,我将.ani下的OpenWithProgids项进行导出,并使用注册表编辑器将路径中的.ani修改为.cur,然后导入到注册表。

将.ani修改为.cur
导入之后再次查看注册表值的类型,此时值的类型已经成功变为了'REG_NONE',于是我再次重启了资源管理器,奇迹出现了,所有.cur图标都可以正确的进行预览了。

.cur可以正确的进行预览了
文章最后的是注册表内容,复制到任意编辑器内并另存为.reg格式,双击运行后重启资源管理器即可,无需重启电脑,当然你也可以重启电脑,都行啦,不过重启电脑多慢呀。

任务管理器内重启「资源管理器」
以下是注册表内容
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ani\OpenWithProgids]
"anifile"=hex(0):
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.cur\OpenWithProgids]
"anifile"=hex(0):