实现和IE浏览器交互的方法介绍

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);

时间: 2025-01-01 19:02:50

实现和IE浏览器交互的方法介绍的相关文章

Javascript iframe交互并兼容各种浏览器的解决方法_javascript技巧

在Web前端开发中,我们经常会用到iframe这个控件. 但是这个控在内.外交互时,往往各个浏览器所用的关键字不同,很是麻烦,为了能够得到子iframe中的window对象,各家浏览器有着各家的指定,有的是window,有的是contentWindow等等也许还有我们不知道的. 但是从子页面访问父层页面,其本上大家都是window.parent就可以了. 那么通过这个特征,我们可以在子页面中,把自身的window对象传递给父页面就可以了,这样父页面就很轻松的访问子页面,再也不用靠虑如何从ifra

与浏览器脚本的交互的方法(二)

交互|脚本|浏览器 相关文章:与浏览器脚本的交互的方法(一) 3 LoadVars 使用LoadVars可以更好地控制数据的传递与接收. 例子: 场景上有一个组件Textarea(textarea1)和三个组件Button(btu1,btu2,btu3) Flash的AS var lv = new LoadVars(); var ll = new LoadVars(); lv.str = "Flash to IIS"; function handle_btu1() {       lv

学Silverlight 2系列(24):与浏览器交互相关辅助方法

本文是Silverlight 2与浏览器交互的最后一篇,将介绍相关的辅助类方法. 获取浏览器信息 在Silverlight 2中提供了获取浏览器信息的一个类BrowserInformation,可 供我们直接调用,如获取浏览器名称及浏览器版本,是否禁用Cookies等信息. 做一个简单的示例,定义XAML如下: <Grid x:Name="LayoutRoot" Background="#CDFCAE"> <Grid.RowDefinitions&

一步一步学Silverlight :与浏览器交互相关辅助方法

概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython,对JSON.Web Service.WCF以及Sockets的支持等一系列新的特性.<一步一步学Silverlight 2系列>文章将从Silverlight 2基础知识.数据与通信.自定义控件.动画.图形图像等几个方面带您快速进入Silverlight 2开发. 本文是S

手机QQ浏览器积分获得兑换方法介绍

我们在手机中打开手机QQ浏览器,然后我们点击手机QQ浏览器中的登录然后使用自己的QQ登录自己的账号,在菜单中,头像,之后我们点击"个人中心"然后在会员中心点击"积分"如下图所示. QQ浏览器积分获取方法  我们点击"我的积分"我们可以在这里获得多种积分获得方法,比如签到.参与多种活动等,都可以获取QQ浏览器积分,积分越多的话,可以兑换的奖品也就越丰富哦! 介绍 QQ手机浏览器,更快的浏览体验.更轻便的手机浏览器,更安全的浏览保护.全新主页,定制卡

JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍

 浏览器全屏模式的启动函数requestFullscreen仍然需要附带各浏览器的js方言前缀,相信下面这段代码需要你花大量的搜索才能凑齐:    代码如下: // 判断各种浏览器,找到正确的方法 function launchFullscreen(element) {   if(element.requestFullscreen) {     element.requestFullscreen();   } else if(element.mozRequestFullScreen) {    

yy浏览器卸载不了怎么办?卸载方法介绍

方法一: 1.我们在电脑中必须要安装了"360安全卫士"了,然后我们打开360安全卫士之后我们点击"软件管家"-"软件卸载"如下图所示 2.然后我们再点击"一键卸载"YY浏览器,如下图所示 方法二: 1.我们找到"开始菜单"-"控制面板"如下图所示 2.然后我们再找到"卸载程序",然后我们点击"卸载更新"如下图所示 方法三: 1.右击yy浏览器图标

web交互设计方法:页面表达常用方式

<页面表达常用方式>是整个"web交互设计方法"中的一部分: 设计师在设计页面时,应该在页面上建立许多视觉层次,引导用户的视觉焦点.把用户的注意力吸引到最重要的元素上,然后才把视线引导到其他重要程度次要的信息上.这样便于用户快捷迅速地找到自己所需,更好的完成阅读.浏览任务.这里介绍几种页面表达的常用方式. 一.页面的浏览顺序 对用户扫描页面的时候进行视线跟踪,这叫做"视觉流".好的设计能够让人们按照顺畅的次序沿着它向前流动.人们一般的习惯是从左到右.从上

充分发挥Node.js程序性能的一些方法介绍

  这篇文章主要介绍了充分发挥Node.js程序性能的一些方法介绍,Node.js是把JavaScript用于服务器端的框架,需要的朋友可以参考下 一个Node.JS 的进程只会运行在单个的物理核心上,就是因为这一点,在开发可扩展的服务器的时候就需要格外的注意. 因为有一系列稳定的API,加上原生扩展的开发来管理进程,所以有很多不同的方法来设计一个可以并行的Node.JS运用.在这篇博文里,我们就来比较下这些可能的架构. 这篇文章同时也介绍compute-cluster 模块:一个小型的Node