Delphi开发嵌入式IE浏览器监控程序

网上有关“Delphi开发嵌入式IE浏览器监控程序”话题很是火热,小编也是针对Delphi开发嵌入式IE浏览器监控程序寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。

引 言

 随着网络的发展和普及,对网络的监控日益成为网络安全的必然要求,也是管理和维护网络的一个有效手段。当前已经有多种应用比较广泛的网络监控和过滤程序,如美萍网管、we-blocker等,它们都可以实现基于网络URL和IP地址的监控和过滤功能。

 本文将对如何开发一个嵌入到IE浏览器中的监控程序进行介绍,该程序可以根据网络URL和IP地址进行监控和过滤,并且记录系统日志,从而使你对IE(当然是使用它的用户)的所有操作一览无余。相信通过阅读本文,会加深你对网络监控程序的理解,以及提高你的COM编程能力和数据库编程能力。

 本文在Delphi 6开发环境下实现,数据库使用桌面数据库Access 2000。

 基础知识

 1.COM编程

 COM(Component Object Model,组建对象模型)是微软公司(Microsoft Company)提出的二进制通信规范,用于软件组件之间的跨越多个进程、机器、硬件和操作系统的互操作,它是一项通过接口(Interface)透明的传递封装数据的技术,并且独立于语言和操作平台。一个COM对象是实现一个或者若干个接口的对象,即COM对象借助接口输出它所提供的服务。

 2.IE浏览器的体系结构

 IE浏览器的体系结构如图1所示。其中MSHTML是位于SHDOCVW和HTML页面之间的COM对象,SHDOCVW对象用于处理页面的显示,而MSHTML用于处理页面的语法分析,并且将页面中的标记转换为元素。MSHTML是一个COM服务器,允许COM客户端程序访问它对外提供的服务。

 实现IE浏览器嵌入式编程的基本方法是建立COM对象,从而以COM客户端程序的形式和MSHTML COM服务器建立连接,然后通过接口回调实现需要的控制功能。也即首先建立COM对象,实现系统规定的若干接口,然后注册COM对象,并且将COM对象的有关信息写入到IE浏览器扩展功能指定的注册表位置。

嵌入式IE浏览器监控程序的实现

 嵌入式IE浏览器监控程序的实现主要包括监控程序的实现和维护程序的实现两部分,根据程序开发过程,可以将其分为四个步骤,下面分别对各个实现步骤进行详细介绍。

 1.实现COM对象

 开发COM对象的任务就是建立一个能够与IE浏览器的MSHTML COM服务器建立连接并且通过接口回调实现控制功能的COM对象,具体实现过程如下:

 (1)运行Delphi,依次点击File|New|Other,切换到ActiveX页面,选择ActiveX Library,点击OK按钮,即建立一个新的工程。

 (2) 再次点击File|New|Other,切换到ActiveX页面,选择COM Object,点击OK按钮,即出现如图2所示的COM Object Wizard界面,去掉Included Type Library复选框,在Class Name中输入COM对象的名称IEMonitor,然后点击OK按钮,即新建了一个名称为TIEMonitor的COM对象(该COM对象的CLSID由系统自动生成)。

(3)将工程和单元文件依次保存为DIEMonitor.dpr和UIEMonitor.pas。切换到UIEMonitor.pas单元文件,我TIEMonitor的定义形式如下:

TIEMonitor = class(TComObject, IDispatch, IObjectWithSite)

public

function GetTypeInfoCount(out Count:Integer):HResult;stdcall;

function GetTypeInfo(Index,LocaleID:Integer;out TypeInfo):HResult;stdcall;

function GetIDsOfNames(const IID:TGUID;Names:Pointer;

NameCount,LocaleID:Integer;DispIDs:Pointer):HResult;stdcall;

function SetSite(const pUnkSite:IUnknown):HResult;stdcall;

function GetSite(const riid:TIID;out site:IUnknown):HResult;stdcall;

function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;

Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult; stdcall;

private

IEThis:IWebBrowser2;

Cookie:Integer;

protected

end;

 注意在UIEMonitor.pas单元文件的Uses中需要手动加入对SHDOCVW, Dialogs, SysUtils, Forms的引用。

 其中主要是对IObjectWithSite接口的SetSite()方法和IDispatch接口的Invoke()方法的实现:首先通过SetSite()方法获得IE的WebBrowser接口,然后寻找连接点,并且通过调用Advise()方法建立COM自身与连接点的连接;当连接建立成功后,IE在事件引发后,会调用连接到自身的IDispatch接口对象的Invoke方法,不同的事件对应不同的DispID编码,因此可以通过在程序中判断DispID对不同的事件做出相应的处理。系统主要对BeforeNavigate2、DownLoadComplete和OnQuit三个事件进行处理,它们对应的DispID分别为250、104和253。在Invoke()方法中,根据DispID分别调用DoBeforeNavigate2()、DoDownLoadComplete()和DoOnQuit()函数实现相关处理和控制功能,具体实现详见程序源代码。

 (4)编译工程,生成DIEMonitor.dll文件。

关于“Delphi开发嵌入式IE浏览器监控程序”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!

本文来自作者[无咎]投稿,不代表绿康号立场,如若转载,请注明出处:https://nmgjkcy.com/lukang/3153.html

(50)

文章推荐

  • 毛利怎么计算的?

    网上有关“毛利怎么计算的?”话题很是火热,小编也是针对毛利怎么计算的?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。计算公式:1.售价-成本=毛利;2.毛利率=毛利/售价;3.售价=成本/(1-毛利率)举例:1.比如进价20,毛利率要在2

    2025年09月15日
    62309
  • 联通无线路由器怎么设置网络联通路由器设置网络的方法

    网上有关“联通无线路由器怎么设置网络联通路由器设置网络的方法”话题很是火热,小编也是针对联通无线路由器怎么设置网络联通路由器设置网络的方法寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。家里使用无线网络是很常见的,如果家里没有WiFi网络,想必很多人在家中都会

    2025年09月22日
    53306
  • 农村发展的七大趋势

    网上有关“农村发展的七大趋势”话题很是火热,小编也是针对农村发展的七大趋势寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。一:村庄慢慢变少,乡村城镇化。越来越多的村子因为人口太少的原因而进行合并,又因为越来越多的乡村因为农业人口太少而合并为镇。村庄的减少是常态

    2025年09月22日
    44317
  • 分享实测“雀神广东麻将开挂器”分享必要外挂教程

    亲,雀神广东麻将开挂器这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到-人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上这款游戏确实是有挂的,添加客服QQ群【】安装软件. 微信打麻将是一款非常流行的棋牌游戏

    2025年09月23日
    59318
  • 天亚科技是不是骗子

    网上有关“天亚科技是不是骗子”话题很是火热,小编也是针对天亚科技是不是骗子寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。不是。天亚科技不是骗子。北京市天亚科技有限责任公司于2005年06月03日成立。法定代表人李文武,公司经营范围包括:技术开发、服务;经济贸

    2025年09月26日
    63318
  • 实测分享“微乐浙江麻将有挂吗”(确实是有挂)-知乎

    您好:微乐浙江麻将有挂吗这款游戏是可以开挂的,软件加微信【添加图中QQ群】确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到其他人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上这款游戏确实是有挂的,添加客服微信【添加图中QQ群】安装软件.1.

    2025年09月29日
    48306
  • 百日大走访的心得

    网上有关“百日大走访的心得”话题很是火热,小编也是针对百日大走访的心得寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。 通过学习讨论,感受很深,收获较大,我认为这两个领导的讲话既是经济跨越式发展的动员讲话,更是转变工作作风、解放思想、事实求实抓工作、真抓实干、

    2025年10月01日
    48303
  • 君子之交淡如水下一句是什么

    网上有关“君子之交淡如水下一句是什么”话题很是火热,小编也是针对君子之交淡如水下一句是什么寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。“君子之交,其淡如水,执象而求,咫尺千里”意思:君子之间的交往,应该如水一般纯净而没有任何功利之心。如果凭借看到的事物表面

    2025年10月02日
    38318
  • 实测分析“雀神广东麻将免费开挂教程”最新辅助详细教程

    亲,雀神广东麻将免费开挂教程这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到其他人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上这款游戏确实是有挂的通过添加客服微:本司针对手游进行匹配,选择我们的四大理由:1

    2025年10月05日
    35302
  • 实测分析“微信跑得快小程序怎么开挂”最新辅助详细教程

    实测分析“微信跑得快小程序怎么开挂”最新辅助详细教程您好:微信跑得快小程序怎么开挂,软件加微信【】确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到其他人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上这款游戏确实是有挂的,添加客服

    2025年10月06日
    29308
  • 国学知识:对屈原的仰望与理解(3)

    网上有关“国学知识:对屈原的仰望与理解(3)”话题很是火热,小编也是针对国学知识:对屈原的仰望与理解(3)寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。他是一面镜子 自汉代始,读骚解屈即就被士林视为高品位精神活动。可是,解屈常常伴随曲解。《离骚》就

    2025年10月17日
    1307
  • 手机上怎么注销淘宝店铺账号

    网上有关“手机上怎么注销淘宝店铺账号”话题很是火热,小编也是针对手机上怎么注销淘宝店铺账号寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。在我的淘宝设置中选择账户与安全,选择注销账号,选择原因后确认就可以了ヽ( ̄д ̄;)ノ下面给大家分享一下具体操作步骤:(i

    2025年10月17日
    3319

发表回复

本站作者才能评论

评论列表(3条)

  • 无咎的头像
    无咎 2025年10月01日

    我是绿康号的签约作者“无咎”

  • 无咎
    无咎 2025年10月01日

    本文概览:网上有关“Delphi开发嵌入式IE浏览器监控程序”话题很是火热,小编也是针对Delphi开发嵌入式IE浏览器监控程序寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在...

  • 无咎
    用户100106 2025年10月01日

    文章不错《Delphi开发嵌入式IE浏览器监控程序》内容很有帮助