为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

Delphi下网页广告拦截技术的实现

2017-09-29 8页 doc 24KB 27阅读

用户头像

is_654168

暂无简介

举报
Delphi下网页广告拦截技术的实现Delphi下网页广告拦截技术的实现 第23卷第1期 2007年3月 沧州师范专科学校 JournalofCangzhouTeachers’College No.1Vo1.23 Apr.2007 Delphi下网页广告拦截技术的实现 张福峰,李文广 (沧州职业技术学院信息工程系,河北沧州o61o01) 摘要:介绍了网页弹出式广告窗口拦截的原理,并给出了在Delphi7.0 环境下自动关闭网页广告窗口的两 种实现方法及关键部分的程序代码. 关键词:Delphi7;网页广告;拦截 中图分类号:TP393文...
Delphi下网页广告拦截技术的实现
Delphi下网页广告拦截技术的实现 第23卷第1期 2007年3月 沧州师范专科学校 JournalofCangzhouTeachers’College No.1Vo1.23 Apr.2007 Delphi下网页广告拦截技术的实现 张福峰,李文广 (沧州职业技术学院信息工程系,河北沧州o61o01) 摘要:介绍了网页弹出式广告窗口拦截的原理,并给出了在Delphi7.0 环境下自动关闭网页广告窗口的两 种实现方法及关键部分的程序代码. 关键词:Delphi7;网页广告;拦截 中图分类号:TP393文献标识码:A文章编号:1008-4762(2007)01-0058-01 一 ,引言 提到网页弹出式广告,我们都不会陌生,无论是新浪,网 易还是个人网站,我们在上网浏览时时都会弹出几个广告窗 口.这些窗口一个个的关掉十分麻烦,而且如果不关的话又会 占用大量的系统资源,真让人厌烦.本文介绍了在Delphi中通 过软件编程来实现对广告窗口自动关闭的实现原理及方法. 二,设计思路与实现方法 广告窗VI实际上也是—个IE窗VI,它是通过调用Script 脚本语言实现动态弹出广告窗口的.下面将针对广告窗口的类 名和标题进行分析,给出具体的拦截方法. 1.按窗口类名进行拦截 为了弄清广告窗口与正常窗口的区别,对Win98/XP/2000 系统下的IE窗口类名进行了监测.结果发现Win98下第—个 IE浏览窗口的类名是IEFrame,新窗口的类名为 CabinetWClass,广告窗口的类名是CabinetWClass;在 WinXP/2000下正常IE窗口以及广告窗口的类名都是IEFrame, 我的电脑等资源浏览窗口的类名为CabinetWClass.经进一步 研究发现,win98下广告窗口的WorkerA类和ShellDocObj~t View类的rect.top的值是相同的,正常IE窗VI的WorkerA类 和ShellDocObjectView类的rect.top的值是不相同的,在 WinXP/2000没有WorkerA类,被WorkerW类取代.因而实现 广告窗口的拦截关闭,只需针对不同系统,判断IE窗口的类 名以及窗Et的WorkerA(WorkerW)类和ShellDocObjectView 类的rect.top值是否相同来确定是否为广告窗VI. 在程序实现时,我们对打开窗口进行搜索,通过 FindWIndowEx找到符合条件的窗口,用PostMessage向窗口 发送CLOSE将其关闭.为了能及时阻止广告窗口的弹出,可 以设置定时器,定时检测并关闭广告窗[J.下面是程序实现的 关键代码: procedureTForm1.TimerlTimer(Sender:TObject); Var MainHD,WorkAHD.ViewHD:THandle; T_ workA,T—— view:integer; rect1.rect2:TRect; begin mainHD:=FindWlndowEx(0,0,.IEframe.,nil); ifMainhd<~0then begin WorkAHD:=FindWindowEx(Mainhd,0,WqorkerW.,nj1); GetwindowRect(WorkAHD,rect1); T_ workA:=rect1.top; ViewHD:=FindWindowEx(mainHD,0,.ShellDocObject View.,nil); ifviewHD<~0men begin GetwindowRect(ViewHD,rect2); T—— view:--rect2.top; ifTView=orkA thenPostMessage(MainHD,WM_CLOSE,0,0); end; end; end; 上述代码实现了WinXP/2000下弹出广告窗口的关闭,将 “IEFrame”改为”CabinetWClass”,将”WorkerW”改为 “WorkerA”,可实现Win98下的广告窗口关闭.大多聊天室 窗口具有上述广告窗口的特征,因而也会被关闭.目前有些网 页广告窗口的类名是”AD脏LPER—IAD2”,而不是”IEFrame”. 另外,一些不具有上述特征的链接窗口的弹出时也不能被关 闭.通过结合下面的标题监测法,可准确实现广告及无用窗口 的关闭,避免出现误关,漏关的情况. 2.按窗口标题拦截 打开的每个窗El都有自己标题名称,要想实现关闭某个或 收稿日期:2006一lO-O9 作者简介:张福峰(194一),男,河北南皮人.沧州职业技术学院讲师,主要从事计算机教学及软件开发; 李文广(197(卜_),男,河北盐山人,沧州职业技术学院实验师,主要从事微机教学及软件开发. ? 8? 下转第6O页) 如图1所示基于CICS的银行中1日业务软件平台的系统框架结构,平台 以CICSServer为主体,使用CICS完成对交易的调度,管理.对数据库资 源的访问.CICS服务端启动之后.监听CICS客户端的请求;当客户端请 求到达时.调用CICS交易的主控模块,由主控模块根据不f司的交易请求调 用不同的交易处理程序.主控模块完成的主要工作:接收交易请求包,数 据包加,解密,报文格式转换,业务控制处理,记载平台日志.发送 返回数据包等.在交易处理程序中,可以利用CICS提供的API接口 CICS的服务.CICS服务端启动之后,自动建立对数据库多个的连接,供 交易调用.针对银行中间业务特点,实现了以下连接: (1)对柜台终端.外围系统的接口.平台位于柜台终端,外围系统和 CICS之间设有监听模块,通过启动不同的监听服务(Socket,MQ,CICS 等)监听柜面终端和外围发来的交易清求.并负责将其转发给CICS服务端 (中间业务平台主控程序)由CICSCHent端发送给CICSServer端.对于 比较常用的通信控制可通过简单配置来实现,对于比较个性化的通信提供 了灵活的动态库接口,可以根据需要动态增加新的通信模块.来处理与不 同系统之间通信的差异性. (2)对银行主机的接口.提供了和网关机进行数据交换的功能,CICS 主控模块将中间业务平台格式的数据转为网关机的数据格式.发送给网关 机.最终上主机,并取得返回结果.还原到中间业务平台的数据格式.这 种的优电是系统一致性好.减少了主机对下的接口.同时将调用主机 接口所需的打包,解包等过程上移至网关处理.从而可以简化交易的开发. (3)与第三方响应系统的接口.所谓”第三方”.是指银行为之提供 服务的客户.对于作为”服务方”的第三方交易响应系统.通信连接方式 也是多种多样,开发一套绝对通用的通信程序几乎也是不可能的.为了实 现集成化通信接入,{殳置—个第三方通信转接服务模块(通常与交易监听 模块整合在一起).用来集成所有与第三方响应系统的通信,在它与交易处 理系统之问定制,规范的数据交换接口.交易处理模块调用通用的通 信程序请求第三方服务.然后由该服务模块转发至第三方系统处理. 结束语 总之.基于CICS中间件技术的银行中间业务软件平台通过符合行业标 准的软件平台来加速价值的转化,可以定义,集成和自动化软件开发的业 务和流程.还提供完整的建立,集成,现代化和部署软件的端到端平台, 通过减少混乱和增加可预测性来提高效率.其面向银行业特点,达到最大 化效率,缩短投资回报时间,增加业务灵活性的目的.随着经济的发展和 软件技术的不断进步,这一软胜II亚I台定将得到更广泛的应用和发展. 参考文献: [1】宋晓粱,刘东生.许满武,等.中间件及其在三层客户~/,IK务器模型 中的应用[J】.计算机应用.1999.(7). [2】刘发责.王宇君.等.IBMS/390事务处理CICS[M】.浙江大学出版社, 2000. 责任编辑:尤书才 (上接第58页) 某一类标题窗口不是什么难事,只需将要关闭窗口的标题或部 分标题写入特征库,在拦截时加以判断即可.在程序实现时, 我们对打开窗口进行枚举搜索.窗口标题与特征库中数据比 较,匹配则进行相应操作.对窗口的枚举搜索是通过 Getwindow(handle.GW_HWNDFIRST)和Getwindow(handle, GW_HWndNext)来实现的.下面是程序的关键代码: procedureTForm1.Button2click(sender:TObject); val”hCurrentWindow:HWnd;szText:array[0..2541ofchar; begin hCurrentWindow:=Getwindow(handle,GW_HWNDFirst); whilehCurrentWindow?0do begin ifGetwindowtext(hcurrentWindow,@sztext.255)>0then begin ifpos(莆投广告’,sztext)>O thenPostMessage(hCurrentWindow,WM_CLOSE,0.0); end; hCurrentWindow:=Getwindow(hCurrentwindow.GW_HWndNex0; end; end: 上述代码实现了查找并关闭新浪弹出的”背投广告”窗口 的功能,稍加修改就可实现关闭那些所有垃圾窗口的功能. 三,小结 本文实现了通过砸窗口的类名,标题来关闭广告窗口的功 能.由于驻留内存实时监控,在程序编制时,尽量控制好程序 大小,减少内存资源占用.文中涉及的方法具有一定的通用性, 可以将其用于进程监控,也可以用来实现对硬盘分区的封锁. 限制对硬盘的访问. 参考文献: 【1]飞思科技产品研发中心.Delphi7高级应用开发[M].电 子工业出版社,2003. 【2]陈省.Delphi深度探索【M].华中科技大学出版社,2002. [责任编辑:尤书才】 ImplementationofWebpageAdvertisingInterceptTechnologyunderDelphi ZHANGFu-feng,LIWen-guang (DepartmentofInformationEngineering,CangzhouVocationalCollegeOfTechnology,CangZhou061000) Abstract:ThispaperintroducestheInterceptPrincipleofWebpagePop-upAdvertising.andgivestwopracticalimplementationmethod andsomeKeyPartsexamplescodeunderDelphi. Keywords:Delphi7.0;WebpageAdvertising;Intercept ? 6?
/
本文档为【Delphi下网页广告拦截技术的实现】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索