Как подключиться к открытому окну Internet Explorer с помощью C #? - PullRequest
3 голосов
/ 20 июля 2010

Можете ли вы использовать COM / OLE в программе на C # для подключения к работающим экземплярам Internet Explorer?

В идеале я хотел бы найти URL всех веб-страниц открытыми в IE.

Ответы [ 2 ]

3 голосов
/ 20 июля 2010

Я нашел ответ здесь , а фрагмент кода:

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. Спасибо!

1 голос
/ 20 июля 2010

Маниша Мехта показывает на http://www.codeproject.com/KB/cs/runninginstanceie.aspx, как это сделать.

...