Delphi下网页广告拦截技术的实现
2012-07-19################2012-07-19#######2#012-07-19########
Delphi 下网页广告拦截技术的实现
张福峰,李文广
(沧州职业技术学院 信息工程系,河北 沧州 061001)
摘 要:介绍了网页弹出式广告窗口拦截的原理,并给出了在 Delphi7.0 环境下自动关闭网页广告窗口的两
种实现方法及关键部分的程序代码。
关键词:Delphi7;网页广告;拦截
中图分类号:TP393文献标识码:A 文章编号:1008-4762(2007)01-0058 -01
一、 引言T_workA,T_view:integer;
提到网页弹出式广告,我们都不会陌生,无论是新浪、网 rect1rect2Rect,:T;易还是个人网站,我们在上网浏览时时都会弹出几个广告窗 begin 口。这些窗口一个个的关掉十分麻烦,而且如果不关的话又会
占用大量的系统资源,真让人厌烦。本文介绍了在 Delphi中通 mainHD:=FindWIndowEx(0,0,'IEframe',nil); if
过软件编程来实现对广告窗口自动关闭的实现原理及方法。 Mainhd<>0 then 二、设计思路与实现方法begin WorkAHD:=FindWindowEx(Mainhd,0,'WorkerW',nil); 广告窗口实际上也是一个 IE 窗口,它是通过调用 Script GetwindowRect(WorkAHD,rect1); 脚本语言实现动态弹出广告窗口的。下面将针对广告窗口的类
T_workA:=rect1.top; 名和标题进行分析,给出具体的拦截方法。
ViewHD:=FindWindowEx(mainHD,0,'Shell DocObject 1(按窗口类名进行拦截 为了弄清广告窗口与正常窗口的
View',nil);区别,对 Win98/XP/2000
if viewHD<>t0h en 系统下的 IE 窗口类名进行了监测。结果发现 Win98 下第一个
begin IE 浏 览 窗 口 的 类 名 是 IEFrame , 新 窗 口 的 类 名
GetwindowRect(ViewHD,rect2);为
T_view:=rect2.top;CabinetWClass,广告窗 口 的类名是 CabinetWClas;s 在
if T_View=T_WorkAWinXP/2000下正常 IE 窗口以及广告窗口的类名都是 IEFrame,
thenPostMessage(MainHD,WM_CLOSE,0,0); 我的电脑等资源浏览窗口的类名为 CabinetWClass。经进一步
end;研究发现,win98 下广告窗口的 WorkerA类 和 Shell DocObject
end;View 类的 rect.top的值是相同的,正常 IE 窗口的 WorkerA类
end;和 Shell DocObject Vie w 类的 rect.top 的值是不相同的,在
上述代码实现了 WinXP/2000下弹出广告 窗口的关闭,将 WinXP/2000没有 WorkerA类 ,被 WorkerW类取代 。因而实现
“ IEFrame ”改为“ CabinetWClass”, 将 “ WorkerW ”改为 广告窗口的拦截关闭,只需针对不同系统,判断 IE 窗口的类
“WorkerA,可”实现 Win98下的广告窗口关闭。大多聊天室 名以及窗口的 WorkerA(WorkerW)类和 ShellDocO bjectVi ew
窗口具有上述广告窗口的特征,因而也会被关闭。目前有些网 类的 rect.top值是否相同来确定是否为广告窗口。
页广告窗口的类名是“ADHELPER-IAD2,”而不是“IEFrame。” 另在程序实现 时,我们对 打开窗口进 行搜索,通 过
外,一些不具有上述特征的链接窗口的弹出时也不能被关 FindWIndowEx找到符合条件的窗口,用 PostMessage向窗口
闭。通过结合下面的标题监测法,可准确实现广告及无用窗口 发送 CLOSE 将其关闭。为了能及时阻止广告窗口的弹出,可
的关闭,避免出现误关、漏关的情况。 以设置定时器,定时检测并关闭广告窗口。下面是程序实现的
2(按窗口标题拦截关键代码:
打开的每个窗口都有自己标题名称,要想实现关闭某个或 procedureTForm1.Timer1 Timer(Sender:TObject);
var
MainHD,WorkAHD,ViewHDTHandle:;
(下转第 60 页)
* 收稿日期:2006-10-09
作者简介:张福峰(1974—),男,河北南皮人,沧州职业技术学院讲师,主要从事计算机教学及软件开发; 2012-07-19################2012-07-19#######2#012-07-19########李文广(1970— ),男,河北盐山人,沧州职业技术学院实验师,主要从事微机教学及软件开发。
2012-07-19################2012-07-19#####2#0#1#2-07-19########以 CICS Server为主体 ,使用 CICS 完成对交易的调度、管理,对数据库资 也是多种多样,开发一套绝对通用的通信程序几乎也是不可能的。为了实 源的访问。CICS 服务端启动之后,监听 CICS 客户端的请求;当客户端现集成化通信接入,设置一个第三方通信转接服务模块(通常与交易监听 请 模块整合在一起),用来集成所有与第三方响应系统的通信,在它与交易处 求到达时,调用 CICS 交易的主控模块,由主控模块根据不同的交易请求调 理系统之间定制
、规范的数据交换接口,交易处理模块调用通用的通 用不同的交易处理程序。主控模块完成的主要工作:接收交易请求包,数 信程序请求第三方服务,然后由该服务模块转发至第三方系统处理。 据包加、解密,报文格式转换,业务
控制处理,记载平台日志,发送 结束语返回数据包等。在交易处理程序中,可以利用 CICS 提供的 API 接口
总之,基于 CICS 中间件技术的银行中间业务软件平台通过符合行业标 CICS 的服务。CICS 服务端启动之后,自动建立对数据库多个的连接,供 准的软件平台来加速价值的转化,可以定义、集成和自动化软件开发的业 交易调用。针对银行中间业务特点,实现了以下连接: 务和流程,还提供完整的建立、集成、现代化和部署软件的端到端平台, (1)对柜台终端,外围系统的接口。平台位于柜台终端,外围系统和 通过减少混乱和增加可预测性来提高效率。其面向银行业特点,达到最大 CICS 之间设有监听模块,通过启动不同的监听服务(Socket、MQ、CICS 化效率、缩短投资回报时间、增加业务灵活性的目的。随着经济的发展和 等)监听柜面终端和外围发来的交易请求,并负责将其转发给 CICS 服务端 软件技术的不断进步,这一软件平台定将得到更广泛的应用和发展。 (中间业务平台主控程序)由 CICS Client端发送给 CICS Server端。对于
比较常用的通信控制可通过简单配置来实现,对于比较个性化的通信提供 参考文献:了灵活的动态库接口,可以根据需要动态增加新的通信模块,来处理与不 [1] 宋晓梁,刘东生,许满武,等.中间件及其在三层客户机/服务器模型
中的应用[J].计算机应用,1999,(7). 同系统之间通信的差异性。
[2] 刘发贵,王宇君,等.IBM S/390 事务处理 CICS[M].浙江大学出版社, (2)对银行主机的接口。提供了和网关机进行数据交换的功能,CICS 2000. 主控模块将中间业务平台格式的数据转为网关机的数据格式,发送给网关
机,最终上主机,并取得返回结果,还原到中间业务平台的数据格式。这
种
的优点是系统一致性好,减少了主机对下的接口,同时将调用主机 [责任编辑:尤书才]接口所需的打包、解包等过程上移至网关处理,从而可以简化交易的开发。
(3)与第三方响应系统的接口。所谓“第三方”,是指银行为之提供
(上接第 58 页)
某一类标题窗口不是什么难事,只需将要关闭窗口的标题或部 hCurrentWindow:=Getwindow(hCurrentwindow,GW_HWndNext); 分标题写入特征库,在拦截时加以判断即可。在程序实现时, end;我们对打开窗口进行枚举搜索,窗口标题与特征库中数据比
较,匹配则 进行相应操 作。对窗口 的枚举搜索 是通过 end;
Getwindow(handle,GW_HWNDFIRST) 和 Getwindow(handle, 上述代码实现了查找并关闭新浪弹出的“背投广告”窗口 的GW_HWndNext)来实现的。下面是程序的关键代码: 功能,稍加修改就可实现关闭那些所有垃圾窗口的功能。 procedureTForm1.Button2Click(Sender: TObject); 三、小结 var hCurrentWindow:HWnd;szText:array[0..254] char; of 本文实现了通过IE窗口的类名、标题来关闭广告窗口的功
能。由于驻留内存实时监控,在程序编制时,尽量控制好程序 begin hCurrentWindow:=Getwindow(handle,GW_HWNDFirst); 大小,减少内存资源占用。文中涉及的方法具有一定的通用性, while hCurrentWindow<>0 do 可以将其用于进程监控,也可以用来实现对硬盘分区的封锁, begin限制对硬盘的访问。
if Getwindowtext(hcurrentWindow,@sztext,255)>0 then
begin
if pos('背投广告',sztext)>0 参考文献: thenPostMessage(hCurrentWindow,WM_CLOSE,0,0); [1] 飞思科技产品研发中心( Delphi 7 高级应用开发[M](电
end;子工业出版社,2003(
[2] 陈 省(Delphi 深度探索[M](华中科技大学出版社,2002(
[责任编辑:尤书才]
Implementation of Webpage Advertising Intercept Technology under Delphi
ZHANG Fu-feng,LI Wen-guang (Department of Information Engineering, Cangzhou Vocational College Of Technology,CangZhou 061000) Abstrac t : This paper introduces the Intercept Principle of Webpage Pop-up Advertising,and gives two practical implementation method
and some Key Parts examples code under Delphi.
Key words: Delphi7.0;Webpage Advertising;Intercept
?60?
Your requestcould not be processed becauseof a configurationerror: "Could not connect to LDAPserver."
For assistance,contact your network support team.
file:///C|/Users/Administrator/Desktop/新建文本文档.txt
涵盖各行业最丰富完备的
文献,最前瞻权威的行业动态,是专业人士的不二选择。
file:///C|/Users/Administrator/Desktop/新建文本文档.txt2012/8/26 12:19:58