水月小筑

@叶知秋

今儿的风,甚是喧嚣。

  • 北京 | 东城
  • https://yezheng.fun
  • 网站已被续

叶知秋

  • 折腾
  • 2004 字

更换软件图标

在我的电脑使用的过程中,一直以来都有一个痛点,那就是软件的图标问题。

自从我那年使用了爱奇艺万能播放器作为我的音乐、视频、图片的默认软件以来,我就一直在用它,它也的确是一个接近完美的软件,然而它早已经停止更新,爱奇艺唯一的良心应用也被他们抛弃了,后来偶尔会出现bug,但我一直没有换掉它,原因无他,用了这么些年,早已是它的形状,已习惯了它的处理逻辑。当然,最大的原因在于,它对各种文件格式的显示图标是我所喜爱和熟悉的,因为那些偶尔的bug以及部分视频解码器和特殊格式图片支持的缺失,使得我去寻找其他更好用的替代品,最终,替代品找到了,功能很强大,但是都没有一个可以像它这样集所有于一身、图标设计得还这么漂亮。

因此,爱奇艺万能播放器依然是我的默认视频、音频播放器,图片浏览用honeyview代替了,原因是图片基本都支持预览,大图标显示时看不到图标,会显示缩略图。

上面只是个引子,今天折腾的目标是电子书文件,最近我收集了好多漫画资源,把我小时候只看过一期的《米老鼠》杂志屯了好多期,和21年那次制作偷星九月天的epub一样,这次又用上了强大的 calibre,漫画资源是从kindle弄下来的,kindle文件格式是azw,安卓端是prc,反正都要用到 calibre 来转,但是我还是要用被新安利的几款软件来浏览亚马逊专有格式电子书文件,以前就用过的 SumatraPDF稻壳阅读器WPS,前两者都是轻量的阅读软件,打开很快,都支持azwazw3格式,WPS功能很强大,那俩不能正常显示的漫画资源 WPS 能自动修正,但它不支持azwazw3

SumatraPDF 和 稻壳阅读器 的资源占用相差无几,而且使用下来稻壳更牛逼,但是它是商业软件,有登录、云盘等功能,而SumatraPDF 是开源软件, 最终两个我都留着,目前稻壳还有个令我难受的痛点,期待它后面的更新。

我用稻壳关联亚马逊专有格式,用 SumatraPDF 关联 mobiepubpdf等格式,主打的就是快速轻量,碰到支持不好的和太大的资源再自行选择用WPS打开。

只可惜,稻壳和SumatraPDF对图书文件格式的图标支持太丑了,稻壳最摆烂,就用它软件的图标,除了azw3所有格式都一样,SumatraPDF倒是对不同格式都分类赋值,但都很丑,而WPS默认给的图标就很好看,所以我决定把那俩软件赋值给格式的图标都给换了。

经过好一通折腾,下面讲讲经过:

以 PDF 格式为例,当选择默认用 SumatraPDF 打开 PDF 的时候,PDF 文件的缩略图标就变成了 SumatraPDF 设置的样子,在注册表中是这样表现的。 在 计算机\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf\UserChoice 字符串值“ProgId” 的数据是“SumatraPDF.pdf

对应的是 计算机\HKEY_CLASSES_ROOT\SumatraPDF.pdf\DefaultIcon 默认数据,我就是在这里修改成自己的图标来达到更换图标的目的。

其实我一开始是想直接修改上面那项数据,但是“ProgId”不给操作,查资料发现是权限问题,右键、权限、高级、管理员,最上面有一项被拒绝了,允许权限后,可以改了,但是问题很多,每次修改文件默认应用就是修改的这一项,通过这个改图标属实是牛头不对马嘴了。

同样的原理,我把稻壳和 SumatraPDF 对azwazw3mobiepubpdf这几种格式分别修改了不同的漂亮的图标,稻壳只支持修改azw3和其他格式。由于 WPS 没有azwazw3的图标,我就自己用 PS 做了个 ico,大图标下还凑合,小图标显示的时候就很难看,发现人家其他图标小图标也支持的不错且跟大图标还不大一样,最终让我发现了奥秘,ico 支持对不同尺寸赋予不同的图片最后整合成一个 ico 文件,这里我用到了 IconWorkshop 这款软件,把小尺寸的随便修饰一下,重新生成了一个 ico 文件,用起来果然小图标情况下也支持的不错了!

这就是我今晚折腾的成果了,仅针对目前的软件版本,SumatraPDF 是v3.4.6,稻壳是v2.12.36,我把对注册表的操作写成了文件,在安装这两款软件以后,直接双击合并即可。折腾注册表文件的时候又发现了很多问题,一直修改不成功,先是怀疑是权限问题,后来实验后发现不是,又以为是编码问题,改来改去也没用,改成 ASCII 老是自动变回 UTF8,最终发现是少了转义斜杠,其实还是编码的问题,因为我直接复制的文件路径只有一个斜杠,而在 reg 文件中需要用“**\**”转义一下,所以需要两个斜杠,而一个斜杠就导致 reg 识别到的路径上下目录名连到了一起,电脑中自然没有这个目录,所以每次合并都没赋值成功,合并了个寂寞。

对了,我还用火绒的自定义规则把我修改的那几项保护起来,防止哪天被哪个程序又给改掉了。

期待稻壳后续的版本更新中针对不同格式给出不同的注册表项,让我可以自定义图标,我也给官方提了反馈。到那时,就真的可以抛弃 SumatraPDF了。