4

我需要做的是使用默认搜索启动默认浏览器。默认搜索是在 URL 导航文本框中键入搜索词时发生的。例如,在 Chrome 和 Firefox 中,默认情况下,在导航文本框中输入“小狗”将引导您进入“小狗”的 Google 搜索结果。在 IE 中,它会做同样的事情,只是在 Bing 上。

通常,您可以通过执行以下操作来调用默认浏览器:

Process.Start("http://google.com");

但我不能假设默认搜索提供商是谷歌。

有没有办法通过 C# 调用这种行为?我唯一能做的就是尝试确定哪个浏览器是默认浏览器,然后直接使用搜索词执行它。

任何人都知道任何其他(最好更容易)的方式?

更新:刚刚找到代码在这里 找到默认浏览器。

4

2 回答 2

2

如果您已经知道如何找到默认浏览器,我会尝试使用Process.Start("browser\path.exe", "\"? searchterm\"");

这似乎适用于 IE 和 Chrome。

于 2013-05-16T20:18:20.020 回答
1

我刚刚测试了 IE,在 Start -> Run 提示符下输入:

"c:\Program Files\Internet Explorer\iexplore.exe" "堆栈溢出"

它启动了 Internet Explorer 并使用我的默认搜索提供程序搜索堆栈溢出。由于您的搜索词不是以开头的标准 url,http://因此Process.Start如果您不提供要启动的特定可执行文件,则无法知道启动浏览器。

您可以通过检查来识别默认浏览器HKEY_CLASSES_ROOT\http\shell\open\command然后您可以使用搜索词作为查询参数来启动此浏览器,然后它应该使用该浏览器的默认搜索提供程序。

于 2013-05-16T16:12:28.877 回答