我使用以下代码在internet中打开站点
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);考虑到已经打开了浏览器,如何在新选项卡而不是新浏览器中打开站点?
井,
我们正在构建一个应用程序,用户可以在其中使用两个选项:
1-使用默认浏览器。
2-使用以下浏览器之一:即,谷歌Chrome和Firefox (目前)。
在选择了应用程序中要使用的浏览器之后,他必须选择是在新窗口中打开请求的页面还是在新的选项卡中打开所请求的页面。
例如:如果他选择IE和新的选项卡选项,所以系统将尝试找到程序打开的最后一页,如果存在刷新它,如果没有,他将打开它在一个新的选项卡。
关于IE浏览器,我认为EricLaw -MSFT帮助我找到了打开一个新选项卡和一个新窗口的方法,我仍然需要知道如何获得一个打开的选项卡(我的程序已经打开)并在需要时刷新。
对于Firefox和Google,我仍然要做同样的事情。
谢谢你的回答,再次为我糟糕的英语感到抱歉:)
发布于 2010-10-01 11:46:32
您可以简单地使用:
Process.Start("http://www.mysite.com");这将不一定在IE中打开,但在用户默认浏览器中作为一个新的选项卡(如果浏览器支持它),这可能是用户想要的;)
发布于 2017-01-23 14:08:29
参考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--;
}发布于 2010-10-01 11:46:23
除非iexplore.exe有一些可以传递给它的参数,否则我不确定您是否可以。
您所做的所有代码都是启动一个新的IE进程,所以我看不出它如何能够利用已经在运行的进程。
出于兴趣,如果您知道已经有一个浏览器在运行,为什么要使用此方法进行导航?
https://stackoverflow.com/questions/3838821
复制相似问题