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

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

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

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

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

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

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

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

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

这似乎适用于IE和Chrome。

我刚刚测试了IE,在开始 – >运行提示中输入:

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

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

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