- 前排提示:本文默认您已经掌握
- 按文件类型更改默认打开方式;
- 操作注册表编辑器
regedit
。
为什么非得换图标不可
- Windows 10 默认的浏览器是 Microsoft Edge,但我常用的浏览器是 Google Chrome。平常打开网页啥的都是用 Chrome,可到了打开 pdf 的时候,Edge 却突然冒了出来,没有作为一个标签页出现在我已经打开的 Chrome 里,而是开了另一个进程。我总觉得这样是在浪费我电脑的资源,所以决定把 pdf 文件的默认打开方式从 Edge 改为 Chrome。
- 不改不要紧,一改发现所有 pdf 文件的图标也跟着变了。
- 改之前(用 Edge 打开的默认图标):
- 改之后(用 Chrome 打开的默认图标):
- 这未免太奇怪了吧!从图标上完全看不出是 pdf 不说,这跟 html 文件完全一样,如何区分?我会下意识以为这是个网站咧!所以我的需求就出现了:默认用 Chrome 浏览器打开 PDF 文件,但保留用 Edge 打开时的图标。
网上是怎么说的
- 这种事情当然是先百度谷歌。网上首先说,文件夹是可以任意改图标的,这我当然知道。然后网上说,按文件类型改图标可以通过改注册表来实现,又是说
HKEY_CURRENT_USER
,又是说HKEY_CLASSES_ROOT
的,我找了半天也不知是哪里要改是哪里不改。 - 最终看到一个稍微靠谱的文章,让我去下面这个路径:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf\UserChoice
- 找到字符串
ProgId
,它的数据就是默认的打开方式了。默认为 Edge 打开的时候,这里的数据是MSEdgePDF
;而默认为 Chrome 打开的时候,这里的数据是ChromeHTML
。 - 这说明微软好心给咱单做了一套 pdf 的打开方式,而 Chrome 就偷了个懒,管它 pdf 还是 html,全都用 html 那套了。
解决办法
新建注册表项
- 既然 Edge 有 pdf 和 html 的分化,那么咱也手动给 Chrome 添加一下好了。在注册表编辑器中,通过“按项
ChromeHTML
查找”发现,这套打开方式的注册表位于:HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ChromeHTML
- 在
Classes
这个父项下,新建一个项与ChromeHTML
并列,命名为ChromePDF
,然后将ChromeHTML
里所有项、值和数据全都拷贝到ChromePDF
里。
更改 DefaultIcon
- 接下来就是关键一步:改图标。可以看到
ChromeHTML
里有一个项叫做DefaultIcon
,它的值是(前提是你 Chrome 的安装路径跟我一样):C:\Program Files (x86)\Google\Chrome\Application\chrome.exe,0
- 上面这一行代表,默认图标用的是
chrome.exe
的第0个图标。那么chrome.exe
包含的图标都有什么呢?通过「为文件夹更改图标」我们可以访问到这些图标,可以看出,Chrome 是真的没有 pdf 专精的图标:
- 那么就干脆还是用 Edge 带的 pdf 图标吧!从 Edge 的默认安装路径找到
msedge.exe
,复制它的路径,以同样的办法找到其中包含的 pdf 的图标。根据下图可以数出,我想要的 pdf 图标在第13个(当然还是从0开始数):
- 所以我们要把
ChromePDF
之中DefaultIcon
的数据改成如下这样(前提是你 Edge 的安装路径跟我一样):C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe,13
更改 FileAssociations
- 刚才做的工作,是新建一种默认图标为 pdf 的打开方式。接下来,我们要把这种打开方式关联到 pdf 文件上。
- 在注册表编辑器中,通过“按数据
ChromeHTML
查找”发现,真正将这个打开方式关联到 pdf 文件的项是这个:HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\Google Chrome\Capabilities\FileAssociations
- 点击这个项会发现,里面的数据清一色都是
ChromeHTML
,无论格式是 pdf、html、webp 还是 svg,都用的是这一套。在这里我只把.pdf
这一条改为了ChromePDF
,其他的我暂时不需要改,不过要改的话也同理。
完成
- 改好之后,就只差最后一步了,就是重新设置 pdf 文件的默认打开方式为 Chrome 浏览器,让它获取到最新的注册表。
- 至此终于实现了一开始的需求。我自认为这个解决方案的好处在于,并没有强硬地通过修改
HKEY_CLASSES_ROOT
或者HKEY_CURRENT_USER
当中.pdf
这个项来更改图标,而是在这套既有的框架内,在更上游处自定义了一种打开方式,自上而下、顺理成章地修改了 pdf 文件的图标。