获取默认浏览器路径,获取默认浏览器路径的方法及步骤汇总
编辑:浏览器知识获取默认浏览器路径:方法及步骤汇总
1. 什么是默认浏览器
默认浏览器是指在打开网址、网页等链接时,系统会自动调用的浏览器程序。在Windows系统中,IE浏览器是默认浏览器,但用户可以更改默认浏览器为其他浏览器,如Google Chrome、Firefox等。
2. 获取默认浏览器路径的方法
要获取默认浏览器的路径,可以用以下方法:
通过注册表查询
通过WMI查询
通过Shell API查询
3. 通过注册表查询默认浏览器路径
打开注册表(regedit.exe),找到以下路径:HKEY_CLASSES_ROOT\HTTP\shell\open\command
。
在右侧窗口中,可以看到(默认)的数值数据,这个数值提示了默认浏览器的路径以及带浏览器程序启动参数的命令行。例如:"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" -- "%1"
,其中%1
表示当前要打开的链接地址。路径信息就是双引号里的内容。
4. 通过WMI查询默认浏览器路径
WMI提供了一系列COM接口,可以用于获取系统信息。可以使用WMI获取默认浏览器路径。示例代码如下:
```powershell
$browserClass = Get-CimClass -ClassName "Associators of {Win32_ClassicCOMClassSetting.CLSID='{HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet}\InProcServer32.ClassID'} WHERE AssocClass = Win32_DependentService"
$browser = Get-CimInstance -CimClass $browserClass.CimClass -KeyOnly | Select-Object -First 1
$browser__path = $browser.PSObject.Properties | Where-Object Name -eq "__PATH" | Select-Object -ExpandProperty Value
$browserpath = Split-Path -Parent $browser__path
```
该脚本是使用PowerShell编写的,主要使用了 WMI 提供的 COM 接口进行查询。查询结果存放在 $browserpath 变量中。
5. 通过Shell API查询默认浏览器路径
Windows API普及度较高,调用相对简便。可以使用Shell API来查询默认浏览器路径。示例代码如下:
```cpp
#include
#include
#include
#pragma comment (lib, "Shlwapi.lib")
#pragma comment (lib, "shell32.lib")
std::wstring GetDefaultBrowserPath()
{
std::wstring result;
TCHAR achPath[MAX_PATH];
if (SUCCEEDED(AssocQueryStringW(0, ASSOCSTR_EXECUTABLE, L"http", L"open", achPath, NULL)))
{
PathRemoveArgsW(achPath); // remove command arguments
result = achPath;
}
return result;
}
```
该代码使用了Shell API中的 AssocQueryStringW 函数,其中参数 ASSOCSTR_EXECUTABLE 表示查询可执行文件路径,后面两个参数分别是协议名称(http)和执行命令(open),查询结果存储在 achPath 中。
6. 总结
本文介绍了三种获取默认浏览器路径的方法:注册表查询、WMI 查询、以及Shell API查询。不过这些方法都需要调用系统API或其他工具,操作稍有麻烦。如果只是要判断当前系统是否安装了默认浏览器,直接检查相应浏览器的安装路径也可以实现。
文章TAG:获取 默认 默认浏览器 浏览 获取默认浏览器路径加载全部内容