您能在C#程序中使用COM / OLE连接到正在运行的Internet Explorer实例吗?
理想情况下,我希望找到IE中所有打开网页的URL。
您能在C#程序中使用COM / OLE连接到正在运行的Internet Explorer实例吗?
理想情况下,我希望找到IE中所有打开网页的URL。
我在这里找到了答案,以下是代码摘录:
public class Form1 : System.Windows.Forms.Form
{
static private SHDocVw.ShellWindows shellWindows = new
SHDocVw.ShellWindowsClass();
public Form1()
{
InitializeComponent();
foreach(SHDocVw.InternetExplorer ie in shellWindows)
{
MessageBox.Show("ie.Location:" + ie.LocationURL);
ie.BeforeNavigate2 += new
SHDocVw.DWebBrowserEvents2_BeforeNavigate2EventHandler(this.ie_BeforeNavigate2);
}
}
public void ie_BeforeNavigate2(object pDisp , ref object url, ref object Flags, ref object TargetFrameName, ref object PostData, ref object Headers, ref bool Cancel)
{
MessageBox.Show("event received!");
}
}
有人知道那个网页上的代码是否也适用于IE 6吗?我在7上测试过了。谢谢!
Manisha Mehta在http://www.codeproject.com/KB/cs/runninginstanceie.aspx上展示了如何实现此功能。