文档详情

使用浏览器中内置ActiveX插件的方法和客户端的制作方法

ting****789
实名认证
店铺
DOCX
22.68KB
约6页
文档ID:309491681
使用浏览器中内置ActiveX插件的方法和客户端的制作方法_第1页
1/6

使用浏览器中内置ActiveX插件的方法和客户端的制作方法专利名称:使用浏览器中内置ActiveX插件的方法和客户端的制作方法技术领域:本发明涉及计算机技术领域,尤其涉及一种使用浏览器中内置ActiveX插件的方法和客户端背景技术:随着互联网的快速发展,基于ActiveX的ActiveX插件也具有越来越广泛的应用 ActiveX插件技术是国际上通用的基于Windows平台的软件技术,许多软件都是采用此种方式开发,例如Flash动画播放插件、Microsoft MediaPlayer插件、Adobe PDF阅读插件坐寸οActiveX插件叫做OLE插件或OCX插件,它是一些软件组件或对象,可以将其插入到WEB网页或其他应用程序中例如,当用户浏览到特定的网页时,浏览器会提示用户下载并安装ActiveX插件现有技术中,如果某个网页设置了使用某个ActiveX插件,则用户打开该网页触发使用ActiveX插件时,如果计算机系统安装了该ActiveX插件,则浏览器会加载计算机系统中安装的该ActiveX插件;如果计算机系统没有安装,则需要根据ActiveX插件的CLSID 向注册表写入与此ActiveX插件相关的注册表信息,比如ActiveX插件磁盘路径,计算机系统将ActiveX插件安装完成后,才能使用。

然而现有技术中的ActiveX插件的安装和调用的过程中,有可能遭遇计算机系统不稳定,并且进而影响用户在使用浏览器进行网页浏览时的用户体验因此,需要一种避免使用计算机系统中安装的ActiveX插件而实现浏览器中内置ActiveX插件的方法,从而提闻计算机系统的稳定性以及提闻用户体验发明内容本发明的主要目的在于提供一种使用浏览器中内置ActiveX插件的方法和客户端,其中,所述方法包括检测到浏览器要加载ActiveX插件;判断在所述浏览器当前所在的计算机系统中是否已经安装所述ActiveX插件;如果确定在所述计算机系统中已安装所述ActiveX插件,则拦截所述ActiveX插件的加载信息,并加载浏览器中内置的所述 ActiveX插件;如果确定在所述计算机系统中没有安装所述ActiveX插件,则生成与内置 ActiveX插件相关的特定注册表键值,并依据所述特定注册表键值加载浏览器中内置的所述ActiveX插件根据本发明的实施例,该方法还可以包括基于所述ActiveX插件的类标识符来判断在计算机系统中是否已经安装所述ActiveX插件根据本发明的实施例,在该方法中,拦截所述ActiveX插件的加载信息并加载浏览器中内置的所述ActiveX插件包括通过挂钩所述ActiveX插件的存储路径查询函数并根据所述ActiveX插件的类标识符,获取浏览器中内置的所述ActiveX插件的存储路径;基于所述存储路径加载浏览器中内置的所述ActiveX插件。

4根据本发明的实施例,该方法还可以包括调用动态链接库加载函数,加载内置的所述ActiveX插件的动态链接库;通过调用导出函数获取类厂指针;基于所述类厂指针创建浏览器中内置的所述ActiveX插件并加载之根据本发明的实施例,在该方法中,生成与内置ActiveX插件相关的特定注册表键值,并依据所述特定注册表键值加载浏览器中内置的所述ActiveX插件包括将浏览器中内置的所述ActiveX插件的存储路径放置于所述特定注册表键值下;基于浏览器中内置的所述ActiveX插件的所述存储路径加载浏览器中内置的所述ActiveX插件根据本发明的实施例,在该方法中,基于浏览器中内置的所述ActiveX插件的所述存储路径加载浏览器中内置的所述ActiveX插件包括通过挂钩注册表读取函数,访问所述特定注册表键值以将其重定向到浏览器中内置的所述ActiveX插件的所述存储路径, 从而加载浏览器中内置的所述ActiveX插件根据本发明的实施例,在该方法中,基于类标识符获取函数中的程序标识符获取所述类标识符根据本发明的另一方面,还提供一种内置有ActiveX插件的客户端,包括检测模块,被配置成检测浏览器要加载ActiveX插件;判断模块,被配置成判断在所述客户端当前所在的计算机系统中是否已经安装所述ActiveX插件;第一加载模块,被配置成如果确定在所述计算机系统中已安装所述ActiveX插件,则拦截所述ActiveX插件的加载信息并加载浏览器中内置的所述ActiveX插件;第二加载模块,被配置成如果确定在所述计算机系统中没有安装所述ActiveX插件,贝U生成与内置ActiveX插件相关的特定注册表键值,并依据所述特定注册表键值加载浏览器中内置的所述ActiveX插件。

根据本发明的实施例,在该客户端中,判断模块还被配置成基于所述ActiveX插件的类标识符来判断在计算机系统中是否已经安装所述ActiveX插件根据本发明的实施例,第一加载模块还包括路径获取子模块,被配置成通过挂钩所述ActiveX插件的存储路径查询函数并根据所述ActiveX插件的类标识符,获取浏览器中内置的所述ActiveX插件的存储路径;第一加载子模块,被配置成基于所述存储路径加载浏览器中内置的所述ActiveX插件根据本发明的实施例,该客户端还包括动态链接库加载子模块,被配置成调用动态链接库加载函数,加载内置的所述ActiveX插件的动态链接库;获取子模块,被配置成通过调用导出函数获取类厂指针;创建与加载子模块,被配置成基于所述类厂指针创建浏览器中内置的所述ActiveX插件并加载之根据本发明的实施例,第二加载模块包括放置模块,被配置成将浏览器中内置的所述ActiveX插件的存储路径放置于所述特定注册表键值下;第二加载子模块,被配置成基于浏览器中内置的所述ActiveX插件的所述存储路径加载浏览器中内置的所述ActiveX 插件根据本发明的实施例,第二加载子模块包括重定向模块,被配置成通过挂钩注册表读取函数,通过访问所述特定注册表键值以将注册表读取函数重定向到浏览器中内置的所述ActiveX插件的所述存储路径,从而所述第一加载子模块加载浏览器中内置的所述 ActiveX 插件。

根据本发明的实施例,该客户端还包括类标识符获取模块,被配置成基于类标识符获取函数中的程序标识符获取所述类标识符与现有技术相比,根据本发明的技术方案,避免了使用计算机系统安装的ActiveX 插件,实现浏览器中内置与调用ActiveX插件,解决了由于安装或调用计算机系统中的 ActiveX插件而引起计算机系统不稳定的问题此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定在附图中图I是根据本发明实施例的使用浏览器中内置ActiveX插件的方法的流程图2是根据本发明具体实施例的、在计算机系统没有安装相应的插件时使用浏览器中内置ActiveX插件的方法的流程图;以及图3是根据本发明实施例的内置有ActiveX插件的客户端300的框图具体实施方式本发明的实施例提供一种在浏览器中内置ActiveX插件的方法和客户端该方法通过检测浏览器要加载ActiveX插件、判断在计算机系统中是否已安装所述ActiveX插件、并依据判断结果采用不同的方式最终加载浏览器中内置的所述ActiveX插件,从而实现在浏览器中内置ActiveX插件,从而避免运行计算机系统中的插件,并由此运行计算机系统中的插件所带来的计算机系统不稳定的问题,增强了计算机系统的稳定性。

为使本发明的目的、技术方案和优点更加清楚,以下结合附图及具体实施例,对本发明进行进一步的详细说明根据本发明的实施例,提供了一种使用浏览器中内置ActiveX插件的方法和客户端参考图1,图I是根据本发明实施例的使用浏览器中内置ActiveX插件的方法的流程图在步骤101,检测到浏览器要加载ActiveX插件例如,在利用浏览器浏览网页的时候,有时候需要浏览器加载ActiveX插件以便能够正确地显示网页因此,首先检测浏览器要加载ActiveX插件然后,在步骤102,判断在计算机系统中是否已经安装所述ActiveX插件在检测到浏览器要加载ActiveX插件之后,本发明的方法继而判断在计算机系统中是否安装了该 ActiveX插件通常,可以根据该ActiveX插件的类标识符(CLSID)来判断计算机系统中是否安装了该ActiveX插件实际上,对于每一个ActiveX插件而言,都存在一个对应的唯一类标识符(CLSID,也称为全局唯一标识符”)因此,可以利用该类标识符与ActiveX插件之间的对应关系,来检查并判断在计算机系统中是否已经安装该插件类标识符(CLSID)可以是一个128位的随机数为了确保它的随机性,避免重复,它的算法例如可以来自两个方面类标识符的一部分数字来自于计算机系统网卡的序列号;类标识符的另外一部分数字来自于计算机系统的当前时间。

进一步地,类标识符可以基于类标识符获取函数中的程序标识符来获取具体而言,可以触发调用类标识符获取函数的请求,所述请求中包括与该ActiveX插件对应的程6序标识符;然后拦截类标识符获取函数从而获得该程序标识符,然后根据程序标识符获取已记录的与ActiveX插件对应的类标识符程序标识符(ProgID)的组成可以是如下形式 〈program〉·〈component〉·〈version〉如果在步骤102处确定在该计算机系统中已安装该ActiveX插件,则在步骤103 处,拦截该ActiveX插件的加载信息,并加载浏览器中内置的ActiveX插件具体而言,如果在该计算机系统中已经安装该ActiveX插件,则本方法可以通过挂钩该ActiveX插件的存储路径查询函数(CoGetClassObject)并根据该ActiveX插件的类标识符(CLSID),获取浏览器中内置的该ActiveX插件的存储路径然后,基于存储路径加载浏览器中内置的该ActiveX插件进一步地,可以调用动态链接库加载函数,加载内置的所述ActiveX插件的动态链接库(LoadLibrary)也即是说,浏览器通过调用导出函数 (DllGetClassObject)获取类厂指针。

例如,类厂指针可以是相应ActiveX插件的IUnkown 指针然后,基于类厂指针,创建浏览器中内置的该ActiveX插件并加载之根据本发明的实施方式,所述浏览器中内置的该ActiveX插件是免安装ActiveX插件当计算机系统没有安装相应的插件时,需要把运行过程中需要用到的所有的注册表进行重定向,让其可以正确运行如浏览器加载插件需要访问的注册表包括CLSID和 TypeLib等,若计算机系统没有相应的键值存在,浏览器不会进行后续的创建过程因此,根据本发明的方法,如果确定在该计算机系统中没有安装该ActiveX插件,则在步骤104处, 生成与内置ActiveX插件相关的特定注册表键值,并依据该特定注册表键值加载浏览器中内置的该ActiveX插件根据本发明的实施方式,所述浏览器中内置的该ActiveX插件是免安装ActiveX插件更具体地,依据该特定注册表键值加载浏览器中内置的该ActiveX插件还可以包括将浏览器中内置的该ActiveX插件的存储路径放置于该特定注册表键值下;基于浏览器中内置的该ActiveX插件的该存储路径加载浏览器中内置的该ActiveX插件更具体地,基于浏览器中内置的该ActiveX插件的该存储路径加载浏览器中内置的该ActiveX插件可以包括通过挂钩注册表读取函数,访问该特定注册表键值以将其重定向到浏览器中内置的该ActiveX插件的所述存储路径,从而加载浏览器中内置的该 ActiveX 插件。

为了更进一步地了解当计算机系统没有安装相应的插件时本发明的方法流程,下面参考图2对计算机系统没有安装相应的插件时的上述情况进行进一步地描述。

下载提示
相似文档
正为您匹配相似的精品文档