当前位置:  开发笔记 > 开发工具 > 正文

获取默认浏览器

如何解决《获取默认浏览器》经验,为你挑选了3个好方法。

如何以编程方式确定系统中的默认浏览器.代码必须使用vc ++开发是否有任何API?

注册表中的哪个位置存储了默认浏览器值?



1> MSalters..:

你通常不需要知道这一点.ShellExecute(0,0,"http://stackoverflow.com",0,0,SW_SHOWNORMAL);会做的.Windows将发现http://并从中找出您要打开URL的信息."默认"webbrowser几乎被定义为Windows用于此任务的webbrowser.

这不仅仅是支持的http://.ShellExecute也可以使用https:// URL启动默认的Web浏览器.对于mailto:URL,它启动默认邮件客户端.



2> Konstantinos..:

您可以在注册表中找到默认浏览器

即对于Windows XP和Vista位于

HKEY_LOCAL_MACHINE\Software\Clients\StartMenuInternet\



3> Nate..:

TL; DR:如果HKEY_CURRENT_USER\Software\Clients\StartMenuInternet\存在则读取; 否则阅读HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\.

在阅读了这里的答案之后,我发现了如何检测默认浏览器的一致意见,所以我做了一些实验和研究来弄明白.我下载了Firefox源代码,编写了一个脚本,该脚本读取了一堆注册表项,并且在重复更改默认浏览器的同时运行了Process Explorer.

我发现Firefox和Chrome在将每个设置为默认浏览器时会有很多注册表项.我相信Safari和Opera的行为都相似.IE似乎只更改了我正在观看的一个注册表项.

我发现虽然大多数浏览器更改了其他注册表路径,但所有浏览器都会更改 HKEY_CURRENT_USER\Software\Clients\StartMenuInternet\ (default)

以下是注册表项中的注册表值,HKEY_CURRENT_USER\Software\Clients\StartMenuInternet\ (default)而每个浏览器都是默认浏览器.

IE 9.0.8112.16421: IEXPLORE.EXE

Chrome 21.0.1180.60 m: Google Chrome

Firefox 10.0.2: FIREFOX.EXE

Safari 3.2.2: Safari.exe

Opera 12.01: Opera

在Microsoft Windows 7 Home Premium SP1 64位上测试

编辑:

我发现在全新安装的Windows XP SP3 HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet\上不存在.在这种情况下,您应该从中读取默认浏览器HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\.我怀疑在其他版本的Windows的全新安装中也是如此.

附录:

ShellExecute如果你想要做的只是在默认浏览器中打开一个网页,这个方法是一个很好的解决方案.但是,如果您希望仅在默认浏览器中安装扩展程序,ShellExecute则无法解决问题.


如果我的"开始"菜单上没有显示Internet图标,该怎么办?这仍然有用吗?在我看来,共识是你不需要知道这一点.只需使用`ShellExecute [Ex]`并指定一个URL.它将处理打开用户的默认浏览器.
推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有