IE外挂

//引用 Windows/system32/Shell32.dll
//引用COM组件 shdocvw.dll (Microsoft Internet Controls)
//引用COM组件 mshtml.tlb (Microsoft HTML Object Library)

 

//系统进程中获取IE所有已打开的Tab标签
SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindows(); 
SHDocVw.InternetExplorer wbBrowser = null; 
string filename; 
  foreach (SHDocVw.InternetExplorer ie in shellWindows) 
    { 
       filename = Path.GetFileNameWithoutExtension(ie.FullName).ToLower();
       //当ie已打开多个标签页时可取得每个标签页的Title 
       var ln  = ie.LocationName; 
        if (filename.Equals("iexplore")) 
         { 
            wbBrowser = ie; 
          } 
     }
//可反取系统句柄
wbBrowser.HWND.ToString()
//控制导航到指定网址
wbBrowser.Navigate("http://www.rediff.com", null, null, null, null); 
while (!wbBrowser.Busy) 
{ 
    break; 
}
//下载完成事件
wbBrowser.DocumentComplete 
wbBrowser.DownloadComplete 
//获取网页内容
var HTMLDoc = (HTMLDocument)wbBrowser.Document;
//获取dom元素
//HTMLDoc.elementFromPoint //通过 x,y坐标获取元素,网页内容区域作为起始点计算 
//HTMLDoc.getElementsByName //通过标签name属性获取元素 返回值为元素数组 
var iHTMLEle = HTMLDoc.getElementById("id2"); //通过标签id属性获取元素 
//设置元素值
iHTMLEle.setAttribute("value", "jacoblai");
//从body域中过滤元素 
           IHTMLDocument2 doc = (IHTMLDocument2)HTMLDoc.body.all; 
           if (null != doc) 
           { 
               foreach (IHTMLElement element in doc.all) 
               { 
                   if (element.id == "wrapper") 
                   { 
                       HTMLDivElement container = element as HTMLDivElement;
                       dynamic dd = container;
                       string result = dd.IHTMLElement_innerHTML;
                       // You get ANY member of HTMLDivElementClass
                       break; 
                   } 
               } 
           } 
posted @ 2017-01-22 16:42  黎东海  阅读(498)  评论(0编辑  收藏  举报