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

    技术2022-05-11  2

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


    最新回复(0)