C#使用默认搜索查询启动默认浏览器

时间:2013-05-16 16:07:20

标签: c#

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

通常,您只需执行以下操作即可调用默认浏览器:

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

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

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

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

更新 刚找到代码来查找默认浏览器here

2 个答案:

答案 0 :(得分:2)

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

这似乎适用于IE和Chrome。

答案 1 :(得分:1)

我刚刚测试了IE,在开始时键入了这个 - >运行提示:

  

“c:\ Program Files \ Internet Explorer \ iexplore.exe”“stack overflow”

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

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