如何使用C#启动带有特定URL的Google Chrome选项卡

本文关键字:URL Google Chrome 选项 何使用 启动 | 更新日期: 2023-09-27 17:58:47

有没有办法在Google Chrome中启动一个选项卡(而不是一个新窗口),并从自定义应用程序加载特定的URL?我的应用程序是用C#(.NET 4 Full)编写的。

我正在通过C#中的SOAP执行一些操作,一旦成功完成,我希望通过浏览器向用户显示最终结果。

整个设置是为了我们的内部网络,而不是为了公共消费——因此,我只能针对特定的浏览器。由于各种原因,我只针对Chrome

如何使用C#启动带有特定URL的Google Chrome选项卡

为了简化chrfin的响应,因为Chrome如果安装了,应该在运行路径上,所以您可以调用:

Process.Start("chrome.exe", "http://www.YourUrl.com");

这似乎和我预期的一样,如果Chrome已经打开,就会打开一个新的选项卡。

// open in default browser
Process.Start("http://www.stackoverflow.net");
// open in Internet Explorer
Process.Start("iexplore", @"http://www.stackoverflow.net/");
// open in Firefox
Process.Start("firefox", @"http://www.stackoverflow.net/");
// open in Google Chrome
Process.Start("chrome", @"http://www.stackoverflow.net/");

对于.Net core 3.0,我不得不使用

 Process process = new Process();
 process.StartInfo.UseShellExecute = true;
 process.StartInfo.FileName = "chrome";
 process.StartInfo.Arguments = @"http://www.stackoverflow.net/"; 
 process.Start();

更新:请参阅Dylan或d.c的anwer,以获得一个更简单(更稳定)的解决方案,该解决方案不依赖于安装在LocalAppData中的Chrome!


即使我同意Daniel Hilgarth在chrome中打开一个新的选项卡,你也只需要以你的URL为参数执行chrome.exe:

Process.Start(@"%AppData%'..'Local'Google'Chrome'Application'chrome.exe", 
              "http:''www.YourUrl.com");

如果用户没有Chrome,它会抛出这样的异常:

    //chrome.exe http://xxx.xxx.xxx --incognito
    //chrome.exe http://xxx.xxx.xxx -incognito
    //chrome.exe --incognito http://xxx.xxx.xxx
    //chrome.exe -incognito http://xxx.xxx.xxx
    private static void Chrome(string link)
    {
        string url = "";
        if (!string.IsNullOrEmpty(link)) //if empty just run the browser
        {
            if (link.Contains('.')) //check if it's an url or a google search
            {
                url = link;
            }
            else
            {
                url = "https://www.google.com/search?q=" + link.Replace(" ", "+");
            }
        }
        try
        {
            Process.Start("chrome.exe", url + " --incognito");
        }
        catch (System.ComponentModel.Win32Exception e)
        {
            MessageBox.Show("Unable to find Google Chrome...",
                "chrome.exe not found!", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }