- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实现和IE浏览器交互的几种方法的介绍 关键字:IE浏览器,交互,IShellWindow,实例 作者:佚名 更新:2004-02-09浏览:13680内容 实现和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);然后我们可以判断实例对象是不是属于IE浏览器对象,通过下面的语句实现:?SHDocVw::IWebBrowser2Ptr spBrowser(spDisp);?assert(spBrowser != NULL)----在得到了IE浏览器对象以后,我们可以调用IWebBrowser2Ptr接口的方法来得到当前的文档对象的指针: MSHTML::IHTMLDocument2Ptr spDoc(spBrowser-GetDocument()); ---- 然后我们就可以通过这个接口对这个文档对象进行操作,比如通过Gettitle得到文档的标题。 ---- 我们在浏览网络的时候,一般总会同时开很多IE的实例,如果这些页面都是很好的话,我们可能想保存在硬盘上,这样,我们需要对每一个实例进行保存,而如果我们采用上面的原理,我们可以得到每一个IE的实例及其网页对象的接口,这样就可以通过一个简单的程序来批量的保存当前的所有打开的网页。采用上面介绍的方法实现了对当前IE实例的遍历,但是我们希望得到每一个IE实例所产生的事件,这就需要通过DLL的机制来实现。 ---- 3.和IE相绑定的DLL的实现 ---- 我们介绍一下如何建立和IE进行绑定的DLL的实现的过程。为了和IE的运行实例进行绑定,我们需要建立一个能够和每一个IE实例进行绑定的DLL。IE的启动过程是这样的,当每一个IE的实例启动的时候,它都会在注册表中去寻找这个的一个CLSID,具体的注册表的键位置为: HKEY_LOCALL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects---- 当在这个键位置下存在CLSIDs的时候,IE会通过使用CoCreateInstance()方法来创建列在该键位置下的每一个对象的实例。注意对象的CLSIDs必须用子键而非名字值的形式表现,比如{DD41D66E-CE4F-11D2-8DA9-00A0249EABF4} 就是一个有效的子键。我们使用DLL的形式而非EXE的形式的原因是因为DLL和IE实例运行在同一个进程空间里面。每一个这种形式的DLL必须实现接口IObjectWithSite,其中方法SetSite必须被实现。通过这个方法,我们自己的DLL就可以得到一个指向IE COM对象的IUnknown的指针,实际上通过这个指针我们就可以通过COM对
您可能关注的文档
最近下载
- 湘教版选择性必修-第节海洋空间资源与国家安全PPT幻灯片.ppt
- 北极地区和南极地区(湘教版地理七年级下册第二章了解地区第五节北极课件.ppt
- 公司出庭授权委托书.docx VIP
- 人音版高中音乐鉴赏高中音乐全册说课稿 .pdf VIP
- 2024年河南省考公务员考试县乡岗和省市岗结构化面试真题试题试卷答案解析.doc VIP
- +第八课《戏妆交辉》课件+ -2024—-2025学年苏少版(2024)初中美术七年级下册.pptx VIP
- JJF 2116-2024 特定蛋白分析仪校准规范.docx
- 2024口腔医学专业技能考试题库.pdf
- 河南铁道交通运营管理单招试题.doc
- 电力104协议,报文分析.doc
文档评论(0)