C#获得IE进程内的IDocument对象代码

C#获得IE进程内的IDocument对象代码
    class Win32API
    {
        [DllImport("user32", EntryPoint = "RegisterWindowMessage")]
        public static extern int RegisterWindowMessage(
                string lpString
        );
 
        [DllImport("user32", EntryPoint = "SendMessage")]
        public static extern int SendMessage(
                int hwnd,
                int wMsg,
                int wParam,
                ref int lParam
        );
 
        [DllImport("OLEACC.DLL", EntryPoint = "ObjectFromLresult")]
        public static extern int ObjectFromLresult(
        int lResult,
        ref System.Guid riid,
        int wParam,
        [System.Runtime.InteropServices.MarshalAs(UnmanagedType.Interface),System.Runtime.InteropServices.In, System.Runtime.InteropServices.Out]ref System.Object ppvObject
        //注意这个函数ObjectFromLresult的声明.
        );      
 
     
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            System.Object domObject = new System.Object();
            int tempInt=0;
            System.Guid guidIEDocument2 = new Guid(); //应该是IHTMLDocument2的接口id
            int WM_Html_GETOBJECT = Win32API.RegisterWindowMessage("WM_Html_GETOBJECT");
             
            //开始查找指定的ie窗体
            int hwnd = 0x30784; //IExplorer server的句柄,在实际运行中需要用findwind得到
            int W = Win32API.SendMessage(hwnd, WM_Html_GETOBJECT, 0, ref tempInt);
            int lreturn = Win32API.ObjectFromLresult(W, ref guidIEDocument2, 0, ref domObject);
            mshtml.IHTMLDocument2 doc = (mshtml.IHTMLDocument2)domObject;
        }

    }
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值