首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC 教學

與 IE 瀏覽器互動:ShellWindows 介面遍歷實例、取得 Document 物件、操作 DOM

     編輯:VC 教學

核心介面:IShellWindows

代表 Shell 開啟視窗集合 (含 IE、資源管理器)。IE 不註冊 ROT,必須透過此介面枚舉。

VC/C++Builder 實現步驟

  1. 建立介面指標:`SHDocVw::IShellWindowsPtr spShellWindows;`
  2. `spShellWindows.CreateInstance(__uuidof(SHDocVw::ShellWindows));`
  3. 取得數量:`long nCount = spShellWindows->GetCount();`
  4. 迴圈取得各項:`IDispatchPtr spDisp = spShellWindows->Item(_variant_t(i, VT_I4));`
  5. 查詢 `IWebBrowser2`:`spDisp->QueryInterface(__uuidof(SHDocVw::IWebBrowser2), (void**)&spBrowser);`
  6. 取得文件:`IDispatchPtr spDocDisp = spBrowser->Document;` → `QueryInterface` 為 `MSHTML::IHTMLDocument2`。

應用場景

  • 記錄瀏覽歷史/分析使用者行為。
  • 內容過濾/翻譯 (修改 DOM)。
  • 自動填寫表單 (設定 `input.value`)。
  • 截圖/列印特定區域。

跨語言通用性

COM 為二進位標準,VB/Delphi/C++Builder 同樣可用,只需引用 `SHDocVw`、`MSHTML` 型別庫。

注意

  • 需處理 `spShellWindows->Item` 可能返回非 IE 物件 (資源管理器),用 `spBrowser->FullName` 判斷是否含 `iexplore.exe`。
  • IE 保護模式 (Vista+) 可能阻擋跨進程存取,需降低權限或簽名。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved