程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> C#獲得IE進程內的IDocument對象代碼

C#獲得IE進程內的IDocument對象代碼

編輯:.NET實例教程

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;
        }

    } 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved