浏览器抓取网页(Windows7HomePremiumSP164位上测试:IE更改默认浏览器)
优采云 发布时间: 2022-03-08 05:14浏览器抓取网页(Windows7HomePremiumSP164位上测试:IE更改默认浏览器)
TL;DR:如果存在
HKEY_CURRENT_USERSoftwareClientsStartMenuInternet
然后阅读;否则请阅读
HKEY_LOCAL_MACHINESOFTWAREClientsStartMenuInternet
. 看了这里的答案后,我对如何检测默认浏览器达成了共识,所以我做了一些实验和研究来弄清楚。我下载了 Firefox 源代码,编写了一个读取一堆注册表项的脚本,并在反复更改默认浏览器的同时运行 Process Explorer。我发现 Firefox 和 Chrome 在将它们自定义为默认浏览器时有很多注册表项。我相信 Safari 和 Opera 的行为相似。IE 似乎只更改了我正在观看的一个注册表项。我发现虽然大多数浏览器更改了其他注册表路径,但所有浏览器都更改了
HKEY_CURRENT_USERSoftwareClientsStartMenuInternet
(default)
以下是注册表项
HKEY_CURRENT_USERSoftwareClientsStartMenuInternet
(default)
中的注册表值,并且每个浏览器都是默认浏览器。即 9.0.8112.16421:
IEXPLORE.EXE
铬 21.0.1180.60m:
Google Chrome
火狐10.0.2:
FIREFOX.EXE
Safari 3.2.2:
Safari.exe
歌剧 12.01:
Opera
在 Microsoft Windows 7 Home Premium SP1 64bit 上进行测试编辑:我找到了全新安装的 Windows XPSP3
HKEY_CURRENT_USERSOFTWAREClientsStartMenuInternet
不存在。在这种情况下,您应该从
HKEY_LOCAL_MACHINESOFTWAREClientsStartMenuInternet
阅读默认浏览器。我怀疑其他版本的 Windows 的全新安装也是如此。附录:如果您只想在默认浏览器中打开网页,那么
ShellExecute
方法是一个很好的解决方案。但是,如果您只想在默认浏览器中安装扩展程序,那么
ShellExecute
无法解决问题。