程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> 實現和IE浏覽器交互的方法介紹

實現和IE浏覽器交互的方法介紹

編輯:vc教程

1.引言

如何實現對IE浏覽器中對象的操作是一個很有實際意義問題,通過和IE綁定的DLL我們可以記錄IE浏覽過的網頁的順序,分析用戶的使用行為和模式。我們可以對網頁的內容進行過濾和翻譯,可以自動填寫網頁中經常需要用戶填寫的Form內容等等,我們所有的例子代碼都是通過VC來表示的,采用的原理是通過和IE對象的接口的交互來實現對IE的訪問。實際上是采用COM的技術,我們知道COM是和語言無關的一種二進制對象交互的模式,所以實際上我們下面所描述的內容都可以用其他的語言來實現,比如VB,DELPHI,C++ Builder等等。

2.IE實例遍歷實現

首先我們來看是如何知道當前有多少個IE的實例在運行。

我們知道在Windows體系結構下,一個應用程序可以通過操作系統的運行對象表來和這些應用的實例進行交互。但是IE當前的實現機制是不在運行對象表中進行注冊,所以需要采用其他的方法。我們知道可以通過ShellWindows集合來代表屬於shell的當前打開的窗口的集合,而IE就是屬於shell的一個應用程序。

下面我們描述一下用VC實現對當前 IE實例的進行遍歷的方法。IShellWindows是關於系統shell的一個接口,我們可以定義一個如下的接口變量:

SHDocVw::IShellWindowsPtr m_spSHWinds;

然後創建變量的實例:

m_spSHWinds.CreateInstance

(__uuidof(SHDocVw::ShellWindows));

通過IShellWindows接口的方法GetCount

可以得到當前實例的數目:

long nCount = m_spSHWinds- >GetCount();

通過IShellWindows接口的方法Item

可以得到每一個實例對象

IDispatchPtr spDisp;

_variant_t va(i, VT_I4);

spDisp = m_spSHWinds->Item(va);

  1. 上一頁:
  2. 下一頁:
欄目導航
Copyright © 程式師世界 All Rights Reserved