如何使用C#启动带有特定URL的Google Chrome选项卡
本文关键字:URL Google Chrome 选项 何使用 启动 | 更新日期: 2023-09-27 17:58:47
有没有办法在Google Chrome中启动一个选项卡(而不是一个新窗口),并从自定义应用程序加载特定的URL?我的应用程序是用C#(.NET 4 Full)编写的。
我正在通过C#中的SOAP执行一些操作,一旦成功完成,我希望通过浏览器向用户显示最终结果。
整个设置是为了我们的内部网络,而不是为了公共消费——因此,我只能针对特定的浏览器。由于各种原因,我只针对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);
}
}