C# 在IE中打开新选项卡
我正在使用以下代码在internet explorer中打开站点C# 在IE中打开新选项卡,c#,internet-explorer,C#,Internet Explorer,我正在使用以下代码在internet explorer中打开站点 ProcessStartInfo startInfo = new ProcessStartInfo { Arguments = "http://www.example.com", FileName = "C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe", RedirectStandardInput = true, UseShellExecute =
ProcessStartInfo startInfo = new ProcessStartInfo
{
Arguments = "http://www.example.com",
FileName = "C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe",
RedirectStandardInput = true,
UseShellExecute = false
};
System.Diagnostics.Process process = System.Diagnostics.Process.Start(startInfo);
考虑到已经打开了一个浏览器,我如何才能在一个新选项卡中打开我的网站
那么
我们正在构建一个应用程序,用户可以使用2个选项:
1-使用默认浏览器
2-使用以下浏览器之一:IE、谷歌浏览器和Firefox(目前)
在选择了要在应用程序中使用的浏览器之后,他必须选择是要在新窗口还是在新选项卡中打开请求的页面
例如:如果他选择IE with new tab选项,那么系统将尝试查找程序打开的最后一页并刷新它(如果存在),如果没有,他将在新选项卡中打开它
关于IE浏览器,我认为EricLaw-MSFT帮助我找到了打开新标签和新窗口的方法,我仍然需要知道如何获得打开的标签(我的程序已经打开)并在需要时刷新
我仍然需要对Firefox和Google Chrome做同样的事情
谢谢你的回答,再次为我糟糕的英语道歉:)除非iexplore.exe有一些参数可以传递给它,否则我不确定你是否可以 您所做的所有代码都是启动一个新的IE进程,所以我看不出它如何能够利用已经运行的进程 出于兴趣,如果您知道已经有浏览器在运行,为什么要使用此方法进行导航?您只需使用:
Process.Start("http://www.mysite.com");
这将不必在IE中打开,而是在用户默认浏览器中作为新选项卡打开(如果浏览器支持),这可能是用户想要的;) 参考Interop.SHDocVw.dll
InternetExplorer ie = null;
SHDocVw.ShellWindows allBrowser = new SHDocVw.ShellWindows();//gives all browsers
int browserCount = allBrowser.Count - 1;//no . of browsers
while (browserCount >= 0)
{
ie = allBrowser.Item(browserCount) as InternetExplorer;
if (ie != null && ie.FullName.ToLower().Contains("iexplore.exe"))//all IE will have this name
{
ie.Navigate2("http://www.example.com", 0x1000);//0x1000 is the flag to open IE in new tab
break;
}
browserCount--;
}
+1强烈建议在用户的默认浏览器中打开。作为一个超级用户,当一个应用程序试图为一个站点启动IE时,我会非常恼火,因为我可以在1/2的时间内启动Chrome,而且我有更好的浏览体验。你在写,你的解决方案工作得很好,但是如果用户不想使用默认浏览器呢?我怎么能做到呢?据我所知,如果Fiona Holder写的话,你不能,也就是说,有一些命令行参数,你可以传递给它来提供这个功能。我对此表示怀疑,因为这意味着您试图打开的IE实例必须查看另一个实例是否打开,将URL发送到该实例并关闭自身。如果您想保证在现有IE实例中启动新选项卡,您不能通过命令行的ShellExec来实现。在ShellWindows集合中找到现有窗口后,您可能可以通过使用带有适当标志的Navigate2 API来实现这一点。由于完整性水平的挑战,这将不是一件简单的事。感谢EricLaw-MSFT,它正在发挥作用。我只需要给navigate2(我的URL,2048,…),2048打开新标签。请发布一个答案,将其标记为写答案:)顺便说一句,现在我想用fireFox和GoogleChrome做同样的工作,你有什么想法吗??