实现和IE浏览器交互的几种方法

本文介绍了如何实现与IE浏览器的交互,包括通过VC利用COM技术遍历IE实例,并创建与IE绑定的DLL,监听和响应IE实例的事件,如遍历当前打开的网页、保存网页、以及实现事件绑定等。此外,还涉及到与IE对象接口的交互,如IShellWindows接口、IWebBrowser2接口以及利用DOM进行网页内容操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现和IE浏览器交互的几种方法    
  浙江大学计算机系   (310027)    
  胡朝晖   陈奇   俞瑞钊    
   
 如何实现对IE浏览器中对象的操作是一个很有实际意义的问题,通过和IE绑定的DLL   我们可以记录IE浏览过的网页的顺序,分析用户的使用行为和模式。我们可以对网页的内容进行过滤和翻译,可以自动填写网页中经常需要用户填写的Form内容,等等。    
   
  ----本文所有的例子代码都是通过VC来表示的,采用的原理是,通过和IE对象接口的交互来实现对IE的访问。实际上是采用COM的技术,COM   是和语言无关的一种二进制对象交互的模式,所以实际上下面所描述的内容都可以用其他的语言来实现,比如VB、Delphi、C++   Builder等等。    
   
  一   实现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);    
   
  ----然后可以判断实例对象是不是属于IE浏览器对象,通过下面的语句实现:    
  ----SHDocVw::IWebBro

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值