Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何打开两个单独的(默认)浏览器窗口而不是新选项卡_C#_Browser_Process.start - Fatal编程技术网

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

C# 如何打开两个单独的(默认)浏览器窗口而不是新选项卡,c#,browser,process.start,C#,Browser,Process.start,我正在尝试使用C#来同时打开两个独立的浏览器窗口。我尝试过使用Process.Start(url),但这会导致Chrome打开新的选项卡而不是新的窗口。这似乎适用于IE,但我希望代码能够适用于不同类型的浏览器,即IE、Chrome、Firefox和Safari。如何检测默认浏览器,然后并排打开两个单独的窗口?此外,我希望能够将两个窗口相邻放置,这可能吗?这更多地是关于浏览器的配置方式,而不是如何从C#调用进程。在这两种情况下,系统只需调用指定用于处理URL的默认程序。该命令可能有参数,也可能没有

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

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

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

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


我不确定你的应用程序,但嵌入一个能满足你的需要吗?然后您就可以完全控制演示文稿了。

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

  Process process = new System.Diagnostics.Process();
  process.StartInfo.FileName = "chrome";
  process.StartInfo.Arguments = <yoururl> + " --new-window"; 
  process.Start();
Process进程=新系统.Diagnostics.Process();
process.StartInfo.FileName=“chrome”;
process.StartInfo.Arguments=+“--新窗口”;
process.Start();

我尝试使用WebBrowser控件,但要使其像普通浏览器一样无缝工作,需要做大量工作。按照我的目的,在系统上使用默认浏览器就足够了。根据我最初的问题,我实际上发现我可以通过更改参数将打开新窗口的选项传递给
System.Diagnostics.Process
对象。例如,Chrome使用
--newwindow
,Firefox使用
-newwindow
。我只需要看看我是否能把两扇窗户并排放好。如果没有,我可以没有它。你为什么想要这个?作为一个用户,打开两个chrome窗口,可能除了我的主浏览器窗口之外,会让我非常恼火。