5

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

4

2 回答 2

4

如果您想在 chrome 中打开新窗口而不是新选项卡,此代码对我有用

  Process process = new System.Diagnostics.Process();
  process.StartInfo.FileName = "chrome";
  process.StartInfo.Arguments = <yoururl> + " --new-window"; 
  process.Start();
于 2015-07-03T20:27:05.210 回答
1

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

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

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

我不确定您的应用程序,但嵌入WebBrowser 控件会满足您的需求吗?然后,您将完全控制演示文稿。

于 2012-10-31T02:20:01.817 回答