通过IE句柄 获得 IE Document对象和IWebBrowser2对象

转载 2012年03月21日 15:13:31

 http://blog.csdn.net/stxyc/article/details/5411360

http://hi.baidu.com/lxxgfc/blog/item/9070103dc7f3c4f614cecb30.html

本来是做JAVA的,由于工作需要,最近做了一些C# 对网页的控制, 
一直以来都是利用System.Windows.Forms.WebBrowser webBrowser1 来把网页嵌入到我的窗体内进行控制。而且控制起来非常方便。 
  有一个项目的网页比较特殊,目前我还不知道什么原因,他的网页会把我的程序挂起,没办法,只有利用跨进程获得IE对象了。 
  主要应用了 一个COM组件 三个引用 三个对象 来讲述这个简单的例子 
1.COM组件 Microsoft.mshtml.dll 这个不用多说了,地球人都知道。 
2.     using mshtml;//这。。。。。多说无用 
  using SHDocVw; //IWebBrowser2 是他下面的 
        using System.Runtime.InteropServices; //DLL的引用,方法的重写3.IWebBrowser2 其实他要比WebBrowser 强大的多,正常我们直接用内嵌的浏览器对象,如果深入的朋友,在应用内嵌浏览器的时候也可以使用它来接受对象。 
IShellWindows 呵呵。。。自己追踪下 就知道了。。都不用查 
HTMLDocumentClass 这个本人也不求甚解,只知道他和 HTMLDocument差不多,只是方法名不太一样。。。 
//--------------------------------------------------------------------------------- 
using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Text; 
using System.Windows.Forms; 
using mshtml; 
using SHDocVw; 
using System.Runtime.InteropServices;namespace dxzj 
{ 
    public partial class Form1 : Form 
    { 
        [DllImport("user32", EntryPoint = "FindWindow")] 
        public static extern int FindWindowA(string lpClassName, string lpWindowName); 
        public Form1() 
        { 
            InitializeComponent(); 
        }        private void timer1_Tick(object sender, EventArgs e) 
        {        } 
        //声明Document对象(如果用内嵌浏览器,我们得到的是一个HTMLDocument) 
        HTMLDocumentClass document = null; 
        private void button1_Click(object sender, EventArgs e) 
        { 
            //查找打开的窗口句柄 
            int iehwnd = FindWindowA(null, "用银行卡充值_中国联通 - Microsoft Internet Explorer"); 
            //初始化所有IE窗口 
            IShellWindows sw = new ShellWindowsClass(); 
            //轮询所有IE窗口 
            for (int i = sw.Count - 1; i >= 0; i--) 
            { 
                //得到每一个IE的 IWebBrowser2 对象 
                IWebBrowser2 iwb2 = sw.Item(i) as IWebBrowser2; 
                //比对 得到的 句柄是否符合查找的窗口句柄 
                if(iwb2.HWND == iehwnd) 
                { 
                    //查找成功 进行赋值 
                    document = (HTMLDocumentClass)iwb2.Document; 
                    //对网页进行操作 
                    document.getElementById("directOnlinePayInfo.productNO").innerText = "1111"; 
                } 
            } 
        } 
    } 
}

根据IE窗口句柄hWnd获得IWebBrowser接口

关于如何根据IE窗口句柄hWnd获得IWebBrowser接口,网络上代码很多,大多是使用了MSAA里的一个函数GetObjectFromLResult进行获取,一方面,许多朋友尤其是VB爱好者对MS...
  • lbuskeep
  • lbuskeep
  • 2012年05月30日 18:46
  • 4955

获得ie句柄,并根据句枘操作iwebbrowser2对象

var Wnd: HWND; WndChild:HWND; Hdoct:IHtmlDocument2; IE: iwebbrowser2; All: IHtmlElementColl...
  • zb0567
  • zb0567
  • 2014年07月16日 08:12
  • 749

MFC中获取各个窗口(对话框)之间的指针、对象、句柄

MFC在很多的对话框操作中,我们经常要用到在一个对话框中调用另一个对话框的函数或变量.可以用如下方法来解决.    HWND hWnd=::FindWindow(NULL,_T("Sphere"))...
  • lihui126
  • lihui126
  • 2015年01月31日 14:16
  • 6194

【VBA研究】方法quit作用于IWebBrowser2失败怎么办

作者:iamlaosong 用VBA编程实现自动读取网页数据,在读取过程中关闭网页时遇到这样一个错误:“ 方法quit作用IWebBrowser2失败”,无法执行quit方法,但其它属性没有问题,百...
  • iamlaosong
  • iamlaosong
  • 2015年03月31日 09:22
  • 2352

终于找到在java中调用ie组件的方法了!

      几天以来在网上查资料终于有了成效,现在介绍给大家,希望有所帮助:Java-COM桥接由于我们需要使用Web浏览器显示在自己的框架里,所以在本系统中要实现一个Web浏览器。实现Web浏览器的...
  • afoolishboy
  • afoolishboy
  • 2006年03月31日 01:34
  • 4221

用java语言实现WebBrowser

import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;...
  • linderjine
  • linderjine
  • 2007年05月25日 17:29
  • 3278

C#winform webBrowser 实现抓句柄 想输入框中输入内容(笔记)

Win32ApiWrapper类: using System; using System.Collections.Generic; using System.Linq; using System.T...
  • cuoban
  • cuoban
  • 2015年12月28日 00:39
  • 1727

获取所有IE当前浏览的Url

using System;using System.Windows.Forms;using SHDocVw;namespace WindowsApplication35...{    public p...
  • jinjazz
  • jinjazz
  • 2007年12月12日 17:36
  • 2150

获取ie窗口的IHTMLDocument2对象

获取IHTMLDocument2
  • a1009563517
  • a1009563517
  • 2016年07月07日 00:27
  • 694

通过IE句柄 获得 IE Document对象和IWebBrowser2对象

http://blog.csdn.net/stxyc/article/details/5411360 http://hi.baidu.com/lxxgfc/blog/item/9070103dc7f...
  • saintxzm
  • saintxzm
  • 2012年03月21日 15:13
  • 2651
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:通过IE句柄 获得 IE Document对象和IWebBrowser2对象
举报原因:
原因补充:

(最多只允许输入30个字)