从C#打开谷歌浏览器的新窗口

Cos*_*iță 8 c# google-chrome process

可以从C#打开一个新的Chrome 实例吗?

通过实例我的意思是一个新的单独的标签,不包含在现有的镀铬窗口.

我尝试了以下解决方案,但是它们现有的 chrome窗口中创建了一个新选项卡,或者如果没有存在则创建一个实例:

Process.Start(@"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe", "www.google.com");

Process.Start("chrome.exe", "www.google.com");
Run Code Online (Sandbox Code Playgroud)

我想创建一个单独的窗口,即使有现有的Chrome窗口.

要清楚,最后我想要那样的东西(当我将鼠标悬停在任务栏中的chrome图标上时):

在此输入图像描述

不是那样的:

在此输入图像描述

我到处搜索,我没有找到一个明确的答案,说如果这是可能的,或者不是来自C#.

谢谢.

abd*_*dul 11

您可以通过将--new-window参数传递给流程来完成此操作

Process process = new Process();
process.StartInfo.FileName = @"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe";
process.StartInfo.Arguments = "google.com" + " --new-window";
process.Start();
Run Code Online (Sandbox Code Playgroud)

  • 是的.只是添加这个作为澄清:从技术上讲,这并不是真正给你一个新的"实例",因为该窗口仍然由同一个Chrome父进程管理,并在同一个浏览器会话中运行(即使用相同的配置文件).但它会导致OP所需的行为. (2认同)

Bit*_*ons 5

较短的版本,首先查找 chrome,然后查找 firefox(语法不同)

strURL="http://myurl.com";
try
{
    //Launch Chrome in a new window
    System.Diagnostics.Process.Start("chrome", strURL+" --new-window");             
}
catch
{
    try
    { 
        //Chrome not found ... launch Firefox in a new window
        System.Diagnostics.Process.Start("firefox", "-new-window "+ strURL);
    }
    catch
    {
        //WARN THE USER TO INSTALL A BROWSER...
    }
}           
Run Code Online (Sandbox Code Playgroud)