如何使用 C# 启动具有特定 URL 的 Google Chrome 选项卡
Posted
技术标签:
【中文标题】如何使用 C# 启动具有特定 URL 的 Google Chrome 选项卡【英文标题】:How to launch a Google Chrome Tab with specific URL using C# 【发布时间】:2011-09-12 10:04:47 【问题描述】:有没有一种方法可以在 Google Chrome 中启动一个标签(不是新窗口),并从自定义应用程序加载特定的 URL?我的应用程序是用 C# (.NET 4 Full) 编码的。
我正在通过 C# 中的 SOAP 执行一些操作,一旦成功完成,我希望通过浏览器向用户呈现最终结果。
整个设置是针对我们的内部网络的,而不是供公众使用的——因此,我只能针对特定的浏览器。由于各种原因,我只针对Chrome。
【问题讨论】:
【参考方案1】:更新:请参阅 Dylan 或 d.c 的解决方案以获得更简单(更稳定)的解决方案,该解决方案不依赖于 LocalAppData
中安装的 Chrome 蜜蜂!
即使我同意 Daniel Hilgarth 在 chrome 中打开一个新选项卡,您也只需使用您的 URL 作为参数执行 chrome.exe:
Process.Start(@"%AppData%\..\Local\Google\Chrome\Application\chrome.exe",
"http:\\www.YourUrl.com");
【讨论】:
问题:如果 Chrome 的现有实例已经在执行,并且(如果是)该页面将在新选项卡中打开而不是新窗口,这是否保证将使用现有的 Chrome 实例? 我不能保证(可能会在 Chome 设置中搜索这样的设置),但我对其进行了测试,它使用了现有的 Chrome 实例... 请参阅问题以了解为什么使用 Chrome,为什么不使用其他浏览器。 @Mike Hofer:是的。几乎可以保证 Chrome 存在于所有系统上,尤其是对于那些使用 SugarCRM 的用户。 @chrfin:谢谢!让我试一试,然后回复你。 您也可以使用 '%localappdata%' 而不是从 Roaming 跳转到 windows 7 和 8(可能更新) 我在C:\Program Files (x86)\Google\Chrome\Application
下找到了我的【参考方案2】:
作为对chrfin's 响应的简化,由于 Chrome 应该在运行路径上(如果已安装),您只需调用:
Process.Start("chrome.exe", "http://www.YourUrl.com");
这对我来说似乎按预期工作,如果 Chrome 已经打开,则打开一个新标签。
【讨论】:
抱歉,我刚刚使用了错误的术语,但它确实有效。刚刚检查了一下,它不在 PATH 上,但它肯定在运行路径上(无论实际使用什么) - 如果您打开“运行”提示并运行chrome.exe "http:\\www.YourUrl.com"
,它的行为似乎与 C# 相同。
有没有办法知道 Chrome 是否也使用 C# 以编程方式完成了加载此 URL(不再忙)?类似于this,但不是使用 VBA,而是使用 C#。【参考方案3】:
// open in default browser
Process.Start("http://www.***.net");
// open in Internet Explorer
Process.Start("iexplore", @"http://www.***.net/");
// open in Firefox
Process.Start("firefox", @"http://www.***.net/");
// open in Google Chrome
Process.Start("chrome", @"http://www.***.net/");
【讨论】:
对我来说,它不适用于 winforms 应用程序中的 .NET Core 3.0。相反,我必须使用Process process = new Process();
process.StartInfo.UseShellExecute = true;
process.StartInfo.FileName = "chrome";
process.StartInfo.Arguments = @"http://www.***.net/";
process.Start();
Edge 也有点不同:***.com/a/39626953/685404【参考方案4】:
如果用户没有 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);
【讨论】:
以上是关于如何使用 C# 启动具有特定 URL 的 Google Chrome 选项卡的主要内容,如果未能解决你的问题,请参考以下文章
如何使用脚本启动具有特定工作目录的 Git Bash 窗口?