如何打开两个单独的(默认)浏览器窗口而不是新选项卡

时间:2012-10-31 02:19:19

标签: c# browser process.start

我正在尝试使用C#并排打开两个独立的浏览器 windows 。我尝试使用Process.Start(url),但这会导致Chrome打开新标签而不是新窗口。这似乎适用于IE,但是我想拥有可以使用不同类型浏览器的代码,即:IE,Chrome,Firefox和Safari。如何检测默认浏览器,然后并排打开两个单独的窗口?另外,我希望能够将两个窗口彼此相邻放置,这可能吗?

2 个答案:

答案 0 :(得分:2)

如果您想在Chrome中打开新窗口而不是新标签,则此代码适用于我

  Process process = new System.Diagnostics.Process();
  process.StartInfo.FileName = "chrome";
  process.StartInfo.Arguments = <yoururl> + " --new-window"; 
  process.Start();

答案 1 :(得分:1)

这更多是关于配置浏览器的方式,而不是从C#调用进程的方式。在这两种情况下,系统只调用分配用于处理URL的默认程序。该命令可能有也可能没有参数,但通常只调用chrome.exe <url>chrome.exe进程决定如何处理参数。

我所知道的唯一方法是检查注册表(在HKEY_CLASSES_ROOT\http\shell\open\command下)并解析字符串值。了解特定浏览器后,您可以使用命令行参数控制演示文稿。当然,这是Windows专用的,可能很难管理。

如果浏览器不支持从命令行设置几何图形,则需要使用FindWindowSetWindowPos(使用P / Invoke)来操作窗口位置。

我不确定您的申请,但会嵌入WebBrowser Control满足您的需求吗?然后你可以完全控制演示文稿。