天天看點

C#通過COM元件操作IE浏覽器(二):使用IHTMLDocument3完成登入

第一章介紹了如何打開網站,這一章介紹一下使用IHTMLDocument3完成登入部落格園,以下為代碼:

  1. SHDocVw.InternetExplorer oBrowser = new SHDocVw.InternetExplorer();
  2. ;
  3. object objTargetFrameName = "_self";
  4. object objPostData = "";
  5. object objHeaders = "";
  6. oBrowser.Visible = true;
  7. oBrowser.Navigate("", ref objFlags, ref objTargetFrameName, ref objPostData, ref objHeaders);
  8. while (true)
  9. {
  10. Thread.Sleep();
  11. if (oBrowser.ReadyState == SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE)
  12. break;
  13. }
  14. IHTMLDocument3 doc3 = (IHTMLDocument3)oBrowser.Document;
  15. IHTMLInputElement txtUserName = (IHTMLInputElement)doc3.getElementById("input1");
  16. txtUserName.value = "你的使用者名";
  17. IHTMLInputElement txtPassWord = (IHTMLInputElement)doc3.getElementById("input2");
  18. txtPassWord.value = "你的密碼";
  19. doc3.getElementById("signin").click();

使用以上代碼就成功登入到部落格園了,下面整理一下IHTMLDocument3以及相關的一些方法和屬性:

IHTMLDocument3 方法 說明
​​attachEvent​​ 從IE11開始,使用​​addEventListener​​。将指定的函數綁定到一個事件,以便每當事件在對象上觸發時,該函數被調用。
​​createDocumentFragment​​ 建立一個新文檔并傳回一個指向新建立的文檔的指針。
createTextNode 從指定的值建立一個文本字元串。
detachEvent 從事件中取消綁定指定的功能,以使該功能在事件觸發時停止接收通知。
getElementById 傳回對具有指定值​​id​​屬性的第一個對象的引用。
getElementsByName 根據​​name​​屬性的值擷取對象集合。
getElementsByTagName 根據指定的元素名稱檢索對象的集合。
recalc 此元素已過時,不再使用。重新計算目前文檔中的所有動态屬性。
​​releaseCapture​​ 從目前文檔中的對象中删除滑鼠捕獲。
IHTMLDocument3屬性與事件
​​baseUrl​​
​​dir​​ 設定或檢索訓示對象的讀取順序的值。
​​documentElement​​ 擷取對文檔根節點的引用。
​​enableDownload​​ 設定啟用下載下傳
​​inheritStyleSheets​​ 暫未說明
​​onbeforeeditfocus​​ 設定焦點之前
​​oncellchange​​ 當資料來源發生變化時
​​oncontextmenu​​ 當按下滑鼠右鍵出現菜單或通過鍵盤觸發頁面菜單時
​​onpropertychange​​ 改變屬性時
​​onrowsdelete​​ 目前資料記錄被删除時
​​onrowsinserted​​ 目前資料源将要插入新資料時
​​uniqueID​​ 檢索對象的自動生成的唯一辨別符。
onstop 停止或離開時
ondatasetchanged 資料源發生變化時
ondatasetcomplete 當資料接收完成時
ondataavailable 當資料源的全部有效資料讀取完畢時

這一章介紹了IHTMLDocument3,并且使用IHTMLDocument3完成了登入,下一章介紹IHTMLDocument2以及用法.

下一篇: 兩類錯誤