none
如何创建一个IE的internetexplorer.application COM组件? RRS feed

  • 问题

  •  

    可以通过在自己的程序里面创建IE的internetexplorer.application COM组件--WebBrowser实际上是对这个ActiveX组件的封装,然后获取里面的IWebBrowserX(例如IWebBrowser2)接口,通过这个接口,你应该可以监听DOM事件。

     

    如何创建一个IE的internetexplorer.application COM组件?

    2008年12月11日 8:43

答案

  •  

    啊,不好意思,我上周去北京出差了,我不知道你在这方面有点困难,下面是解决方案:

    为了获取IWebBrowserX和IHTMLDocument等接口,你可以使用下面的命名空间,这个命名空间你可以在“添加引用”窗口中的COM标签页找到,名字为Microsoft HTML Object Library:

    using mshtml;

     

    你采用下面的方法获取到IHTMLDocument等接口:


            private void Window_Loaded(object sender, RoutedEventArgs e)
            {
                Init();
            }

            private void Init()
            {
                System.Window.Controls.WebBrowser browser = new WebBrowser();
                browser.LoadCompleted += new LoadCompletedEventHandler(browser_LoadCompleted);
                MainPanel.Children.Add(browser);
                browser.Navigate(new Uri("http://www.sina.com.cn"));
            }

     

            void browser_LoadCompleted(object sender, NavigationEventArgs e)
            {
                WebBrowser browser = sender as WebBrowser;
                IHTMLDocument2 iDocument = browser.Document as IHTMLDocument2;
                IHTMLElement2 iBody = iDocument.body as IHTMLElement2;

                // 如何给iBody的onload事件注册事件处理程序,请参考下面的链接:

                // http://www.codeproject.com/KB/dotnet/NetHtmlEventHandler.aspx

                // 下面只是一个伪码

                HtmlEventProxy.Create("onload", button, OnLoadEventHandler);
            }

     

    上面的方法我没有认真去验证,因为我现在已经做纯粹的管理工作了,MSDN都没有安装,如果有问题的话我再帮你试一下。

    2008年12月15日 2:26