CN102929656B - 使用浏览器中内置ActiveX插件的方法和客户端 - Google Patents

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

Info

Publication number
CN102929656B
CN102929656B CN201210371228.2A CN201210371228A CN102929656B CN 102929656 B CN102929656 B CN 102929656B CN 201210371228 A CN201210371228 A CN 201210371228A CN 102929656 B CN102929656 B CN 102929656B
Authority
CN
China
Prior art keywords
unit
activex plug
browser
built
plug
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210371228.2A
Other languages
English (en)
Other versions
CN102929656A (zh
Inventor
陈志�
李锦伟
贺跃松
付俣
任寰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201210371228.2A priority Critical patent/CN102929656B/zh
Publication of CN102929656A publication Critical patent/CN102929656A/zh
Priority to PCT/CN2013/083077 priority patent/WO2014048240A1/zh
Priority to US14/431,969 priority patent/US9513937B2/en
Application granted granted Critical
Publication of CN102929656B publication Critical patent/CN102929656B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及一种使用浏览器中内置ActiveX插件的方法和客户端。该方法包括:检测到浏览器要加载ActiveX插件;判断在所述浏览器当前所在的计算机系统中是否已经安装所述ActiveX插件;如果确定在所述计算机系统中已安装所述ActiveX插件,则拦截所述ActiveX插件的加载信息,并加载浏览器中内置的所述ActiveX插件;如果确定在所述计算机系统中没有安装所述ActiveX插件,则生成与内置ActiveX插件相关的特定注册表键值,并依据所述特定注册表键值加载浏览器中内置的所述ActiveX插件。

Description

使用浏览器中内置ActiveX插件的方法和客户端
技术领域
本发明涉及计算机技术领域,尤其涉及一种使用浏览器中内置ActiveX插件的方法和客户端。
背景技术
随着互联网的快速发展,基于ActiveX的ActiveX插件也具有越来越广泛的应用。ActiveX插件技术是国际上通用的基于Windows平台的软件技术,许多软件都是采用此种方式开发,例如Flash动画播放插件、MicrosoftMediaPlayer插件、AdobePDF阅读插件等。
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插件。
根据本发明的实施例,该方法还可以包括:调用动态链接库加载函数,加载内置的所述ActiveX插件的动态链接库;通过调用导出函数获取类厂指针;基于所述类厂指针创建浏览器中内置的所述ActiveX插件并加载之。
根据本发明的实施例,在该方法中,生成与内置ActiveX插件相关的特定注册表键值,并依据所述特定注册表键值加载浏览器中内置的所述ActiveX插件包括:将浏览器中内置的所述ActiveX插件的存储路径放置于所述特定注册表键值下;基于浏览器中内置的所述ActiveX插件的所述存储路径加载浏览器中内置的所述ActiveX插件
根据本发明的实施例,在该方法中,基于浏览器中内置的所述ActiveX插件的所述存储路径加载浏览器中内置的所述ActiveX插件包括:通过挂钩注册表读取函数,访问所述特定注册表键值以将其重定向到浏览器中内置的所述ActiveX插件的所述存储路径,从而加载浏览器中内置的所述ActiveX插件。
根据本发明的实施例,在该方法中,基于类标识符获取函数中的程序标识符获取所述类标识符。
根据本发明的另一方面,还提供一种内置有ActiveX插件的客户端,包括:检测模块,被配置成检测浏览器要加载ActiveX插件;判断模块,被配置成判断在所述客户端当前所在的计算机系统中是否已经安装所述ActiveX插件;第一加载模块,被配置成:如果确定在所述计算机系统中已安装所述ActiveX插件,则拦截所述ActiveX插件的加载信息并加载浏览器中内置的所述ActiveX插件;第二加载模块,被配置成:如果确定在所述计算机系统中没有安装所述ActiveX插件,则生成与内置ActiveX插件相关的特定注册表键值,并依据所述特定注册表键值加载浏览器中内置的所述ActiveX插件。
根据本发明的实施例,在该客户端中,判断模块还被配置成基于所述ActiveX插件的类标识符来判断在计算机系统中是否已经安装所述ActiveX插件。
根据本发明的实施例,第一加载模块还包括:路径获取子模块,被配置成通过挂钩所述ActiveX插件的存储路径查询函数并根据所述ActiveX插件的类标识符,获取浏览器中内置的所述ActiveX插件的存储路径;第一加载子模块,被配置成基于所述存储路径加载浏览器中内置的所述ActiveX插件。
根据本发明的实施例,该客户端还包括:动态链接库加载子模块,被配置成调用动态链接库加载函数,加载内置的所述ActiveX插件的动态链接库;获取子模块,被配置成通过调用导出函数获取类厂指针;创建与加载子模块,被配置成基于所述类厂指针创建浏览器中内置的所述ActiveX插件并加载之。
根据本发明的实施例,第二加载模块包括:放置模块,被配置成将浏览器中内置的所述ActiveX插件的存储路径放置于所述特定注册表键值下;第二加载子模块,被配置成基于浏览器中内置的所述ActiveX插件的所述存储路径加载浏览器中内置的所述ActiveX插件。
根据本发明的实施例,第二加载子模块包括:重定向模块,被配置成通过挂钩注册表读取函数,通过访问所述特定注册表键值以将注册表读取函数重定向到浏览器中内置的所述ActiveX插件的所述存储路径,从而所述第一加载子模块加载浏览器中内置的所述ActiveX插件。
根据本发明的实施例,该客户端还包括:类标识符获取模块,被配置成基于类标识符获取函数中的程序标识符获取所述类标识符。
与现有技术相比,根据本发明的技术方案,避免了使用计算机系统安装的ActiveX插件,实现浏览器中内置与调用ActiveX插件,解决了由于安装或调用计算机系统中的ActiveX插件而引起计算机系统不稳定的问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的使用浏览器中内置ActiveX插件的方法的流程图;
图2是根据本发明具体实施例的、在计算机系统没有安装相应的插件时使用浏览器中内置ActiveX插件的方法的流程图;以及
图3是根据本发明实施例的内置有ActiveX插件的客户端300的框图。
具体实施方式
本发明的实施例提供一种在浏览器中内置ActiveX插件的方法和客户端。该方法通过检测浏览器要加载ActiveX插件、判断在计算机系统中是否已经安装所述ActiveX插件、并依据判断结果采用不同的方式最终加载浏览器中内置的所述ActiveX插件,从而实现在浏览器中内置ActiveX插件,从而避免运行计算机系统中的插件,并由此运行计算机系统中的插件所带来的计算机系统不稳定的问题,增强了计算机系统的稳定性。
为使本发明的目的、技术方案和优点更加清楚,以下结合附图及具体实施例,对本发明进行进一步的详细说明。
根据本发明的实施例,提供了一种使用浏览器中内置ActiveX插件的方法和客户端。
参考图1,图1是根据本发明实施例的使用浏览器中内置ActiveX插件的方法的流程图。
在步骤101,检测到浏览器要加载ActiveX插件。
例如,在利用浏览器浏览网页的时候,有时候需要浏览器加载ActiveX插件以便能够正确地显示网页。因此,首先检测浏览器要加载ActiveX插件。
然后,在步骤102,判断在计算机系统中是否已经安装所述ActiveX插件。在检测到浏览器要加载ActiveX插件之后,本发明的方法继而判断在计算机系统中是否安装了该ActiveX插件。通常,可以根据该ActiveX插件的类标识符(CLSID)来判断计算机系统中是否安装了该ActiveX插件。实际上,对于每一个ActiveX插件而言,都存在一个对应的唯一类标识符(CLSID,也称为全局唯一标识符”)。因此,可以利用该类标识符与ActiveX插件之间的对应关系,来检查并判断在计算机系统中是否已经安装该插件。类标识符(CLSID)可以是一个128位的随机数。为了确保它的随机性,避免重复,它的算法例如可以来自两个方面:类标识符的一部分数字来自于计算机系统网卡的序列号;类标识符的另外一部分数字来自于计算机系统的当前时间。
进一步地,类标识符可以基于类标识符获取函数中的程序标识符来获取。具体而言,可以触发调用类标识符获取函数的请求,所述请求中包括与该ActiveX插件对应的程序标识符;然后拦截类标识符获取函数从而获得该程序标识符,然后根据程序标识符获取已记录的与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对计算机系统没有安装相应的插件时的上述情况进行进一步地描述。
如上所述,如图2所示,举例而言,首先,在步骤201处,该方法获取该ActiveX插件需要用到的所有特定注册表键值(不包括与插件无关的键值,因为计算机系统已经存在此注册表值),例如,获取flash插件需要用到的注册表的键值。在步骤202处,将该ActiveX插件完整路径放置于注册表的特定键值下。例如,可以放置在如HKEY_CLASS_ROOT\……\FlashStub路径下,同时对特定的注册表值进行修改。根据本发明的实施例,ActiveX插件的完整路径可以根据需要来创建。然后,在步骤203处,通过挂钩注册表读取函数,例如,所述注册表读取函数可以是RegOpenKeyEx或RegQueryValueEx。在其访问的键值需要重定向时,将其重定向到上面的路径FlashStub下。从而,在步骤204处,访问所述键值,并加载浏览器中内置的该ActiveX插件。也即是该flash插件,最终,虽然计算机系统中并未安装该ActiveX插件,但是通过注册表重定向而实现浏览器中内置该ActiveX插件并调用之从而可以实现透明访问,让浏览器运行在和计算机系统安装有该jflash插件一样的环境中。
在本发明的实施例中,以Flash插件这一浏览器侧的ActiveX插件为例对本发明的一些详细操作进行了示例性的描述,但是应该理解,本发明的技术方案也适用于浏览器侧的任何其他ActiveX插件。
根据本发明的一个实施例,例如,浏览器加载插件需要访问的注册表例如可以是CLSID,那么其中相应的键值如下。
HKEY_CLASSES_ROOT\CLSID\{D27CDB6E-AE6D-11cf-96B8-444553540000}\InprocServer32——该键值表示InprocServer32的键值,浏览器对象标签通过CLSID访问InprocServer32来获取flash插件的安装位置,那么本发明的方法通过挂钩注册表获取函数,将flash插件的位置重定向为浏览器中内置的flash插件的位置;
HKEY_CLASSES_ROOT\CLSID\{D27CDB6E-AE6D-11cf-96B8-444553540000}\ProgID——该键值表示flash插件的ProgID,浏览器javascript代码通过newActivexObject代码创建新的flash对象,需要获取flash的ProgID,那么本发明的方法通过挂钩注册表读取函数,将所述ProgID重定向到上述路径;
HKEY_CLASSES_ROOT\CLSID\{D27CDB6E-AE6D-11cf-96B8-444553540000}\MiscStatus——该键值表示MiscStatus键值,oleobject对象通过读取MiscStatus键值来获得comobject对象的属性,以解析obejct对象,因而同样挂钩注册表读取函数,将其重定向到上述路径以访问其键值;
HKEY_CLASSES_ROOT\CLSID\{D27CDB6E-AE6D-11cf-96B8-444553540000}\ImplementedCategories——该键值是表示active对象的安全属性的键值,同样挂钩注册表读取函数,重定向到上述路径以访问。
图3是根据本发明实施例的内置有ActiveX插件的客户端300的框图。
根据本发明的实施例,内置有ActiveX插件的客户端300可以包括检测模块301、判断模块302、第一加载模块303以及第二加载模块304。
根据本发明的实施例,在利用浏览器浏览网页时,包含在客户端300中的检测模块301可以检测浏览器要加载ActiveX插件。一旦检测到要加载插件,则判断模块302可以判断在计算机系统中是否已经安装该ActiveX插件。通常,可以根据该ActiveX插件的类标识符(CLSID)来判断计算机系统中是否安装了该ActiveX插件。该客户端还可以包括类标识符获取模块(未示出),被配置成基于类标识符获取函数中的程序标识符获取所述类标识符。如何根据程序标识符获取类标识符的方式例如可以如前参考图1所述,为了避免重复将在此省略对其的详细描述。
如果判断模块302确定在该计算机系统中已安装该ActiveX插件,则第一加载模块303可以被配置成拦截该ActiveX插件的加载信息,并加载浏览器中内置的ActiveX插件。如果判断模块302确定在该计算机系统中尚未安装该ActiveX插件,则第二加载模块304可以被配置成生成与内置ActiveX插件相关的特定注册表键值,并依据该特定注册表键值加载浏览器中内置的该ActiveX插件。
第一加载模块303可以包括路径获取子模块和第一加载子模块。路径获取子模块可以被配置成通过挂钩该ActiveX插件的存储路径查询函数并根据该ActiveX插件的类标识符,获取浏览器中内置的该ActiveX插件的存储路径。然后第一加载子模块可以被配置成基于所述存储路径加载浏览器中内置的所述ActiveX插件。
根据本发明的客户端,还可以包括:动态链接库加载子模块(未示出),其可以被配置成调用动态链接库加载函数,加载内置的ActiveX插件的动态链接库;获取子模块(未示出),其可以被配置成通过调用导出函数获取类厂指针;创建与加载子模块(未示出),其可以被配置成基于类厂指针创建浏览器中内置的ActiveX插件并加载之。根据本发明的实施方式,所述浏览器中内置的该ActiveX插件是免安装ActiveX插件。
在本发明的客户端中,第二加载模块304还可以包括放置模块和第二加载子模块,其中放置模块可以被配置成将浏览器中内置的ActiveX插件的存储路径放置于特定注册表键值下,然后第二加载子模块可以被配置成基于浏览器中内置的ActiveX插件的存储路径加载浏览器中内置的该ActiveX插件。根据本发明的实施方式,所述浏览器中内置的该ActiveX插件是免安装ActiveX插件。
进一步地,第二加载子模块可以包括重定向模块,其可以被配置成通过挂钩注册表读取函数,通过访问特定注册表键值以将注册表读取函数重定向到浏览器中内置的ActiveX插件的存储路径,从而第二加载子模块加载浏览器中内置的该ActiveX插件。
在根据本发明的客户端300中所包含的各个模块所实现的功能与参考图1所描述的根据本发明的方法步骤相对应,因此,为了避免重复,将在此省略对其的详细描述。
根据本发明的实施例,第一加载模块和第二加载模块可以合并成单个加载模块(未示出)以加载ActiveX插件。从而,在合并成单个加载模块的示例中,进一步地,第一子加载模块和第二子加载模块也可以合并成单个子加载模块。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的使用浏览器中内置ActiveX插件的客户端中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

Claims (16)

1.一种使用浏览器中内置ActiveX插件的方法,所述方法包括:
检测到浏览器要加载ActiveX插件;
判断在所述浏览器当前所在的计算机系统中是否已经安装所述ActiveX插件;
如果确定在所述计算机系统中已安装所述ActiveX插件,则拦截所述计算机系统中的所述ActiveX插件的加载信息,并加载浏览器中内置的所述ActiveX插件;
如果确定在所述计算机系统中没有安装所述ActiveX插件,则生成与所述浏览器中内置的所述ActiveX插件相关的特定注册表键值,并依据所述特定注册表键值加载所述浏览器中内置的所述ActiveX插件。
2.根据权利要求1所述的方法,其中,基于所述ActiveX插件的类标识符来判断在计算机系统中是否已经安装所述ActiveX插件。
3.根据权利要求1所述的方法,其中,拦截所述ActiveX插件的加载信息并加载浏览器中内置的所述ActiveX插件包括:
通过挂钩所述ActiveX插件的存储路径查询函数并根据所述ActiveX插件的类标识符,获取浏览器中内置的所述ActiveX插件的存储路径;
基于所述存储路径加载浏览器中内置的所述ActiveX插件。
4.根据权利要求3所述的方法,还包括:
调用动态链接库加载函数,加载内置的所述ActiveX插件的动态链接库;
通过调用导出函数获取类厂指针;
基于所述类厂指针创建浏览器中内置的所述ActiveX插件并加载之。
5.根据权利要求1所述的方法,其中,生成与内置ActiveX插件相关的特定注册表键值,并依据所述特定注册表键值加载浏览器中内置的所述ActiveX插件包括:
将浏览器中内置的所述ActiveX插件的存储路径放置于所述特定注册表键值下;
基于浏览器中内置的所述ActiveX插件的所述存储路径加载浏览器中内置的所述ActiveX插件。
6.根据权利要求5所述的方法,其中,基于浏览器中内置的所述ActiveX插件的所述存储路径加载浏览器中内置的所述ActiveX插件包括:
通过挂钩注册表读取函数,访问所述特定注册表键值以将其重定向到浏览器中内置的所述ActiveX插件的所述存储路径,从而加载浏览器中内置的所述ActiveX插件。
7.根据权利要求6所述的方法,进一步包括:浏览器对象标签通过特定注册表键值获取所述ActiveX插件的安装位置,通过挂钩注册表读取函数,从而通过访问所述特定注册表键值将所述ActiveX插件的位置重定向到浏览器中内置的所述ActiveX插件的位置。
8.根据权利要求6所述的方法,进一步包括:通过挂钩注册表读取函数,访问程序标识符的特定注册表键值以将其重定向到浏览器中内置的所述ActiveX插件的位置。
9.根据权利要求2-4任一项所述的方法,其中,基于类标识符获取函数中的程序标识符获取所述类标识符。
10.一种内置有ActiveX插件的客户端,所述客户端包括:
检测模块,被配置成检测浏览器要加载ActiveX插件;
判断模块,被配置成判断在所述客户端当前所在的计算机系统中是否已经安装所述ActiveX插件;
第一加载模块,被配置成:如果确定在所述计算机系统中已安装所述ActiveX插件,则拦截所述计算机系统中的所述ActiveX插件的加载信息并加载浏览器中内置的所述ActiveX插件;
第二加载模块,被配置成:如果确定在所述计算机系统中没有安装所述ActiveX插件,则生成与所述浏览器中内置的所述ActiveX插件相关的特定注册表键值,并依据所述特定注册表键值加载所述浏览器中内置的所述ActiveX插件。
11.根据权利要求10所述的客户端,其中,判断模块还被配置成基于所述ActiveX插件的类标识符来判断在计算机系统中是否已经安装所述ActiveX插件。
12.根据权利要求10所述的客户端,其中,第一加载模块还包括:
路径获取子模块,被配置成通过挂钩所述ActiveX插件的存储路径查询函数并根据所述ActiveX插件的类标识符,获取浏览器中内置的所述ActiveX插件的存储路径;
第一加载子模块,被配置成基于所述存储路径加载浏览器中内置的所述ActiveX插件。
13.根据权利要求12所述的客户端,其中,还包括:
动态链接库加载子模块,被配置成调用动态链接库加载函数,加载内置的所述ActiveX插件的动态链接库;
获取子模块,被配置成通过调用导出函数获取类厂指针;
创建与加载子模块,被配置成基于所述类厂指针创建浏览器中内置的所述ActiveX插件并加载之。
14.根据权利要求10所述的客户端,其中,第二加载模块包括:
放置模块,被配置成将浏览器中内置的所述ActiveX插件的存储路径放置于所述特定注册表键值下;
第二加载子模块,被配置成基于浏览器中内置的所述ActiveX插件的所述存储路径加载浏览器中内置的所述ActiveX插件。
15.根据权利要求14所述的客户端,其中,第二加载子模块包括:
重定向模块,被配置成通过挂钩注册表读取函数,访问所述特定注册表键值以将注册表读取函数重定向到浏览器中内置的所述ActiveX插件的所述存储路径,从而所述第一加载子模块加载浏览器中内置的所述ActiveX插件。
16.根据权利要求11-13任一项所述的客户端,其中,所述客户端还包括:类标识符获取模块,被配置成基于类标识符获取函数中的程序标识符获取所述类标识符。
CN201210371228.2A 2012-09-28 2012-09-28 使用浏览器中内置ActiveX插件的方法和客户端 Active CN102929656B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201210371228.2A CN102929656B (zh) 2012-09-28 2012-09-28 使用浏览器中内置ActiveX插件的方法和客户端
PCT/CN2013/083077 WO2014048240A1 (zh) 2012-09-28 2013-09-06 使用浏览器中内置ActiveX插件的方法和客户端
US14/431,969 US9513937B2 (en) 2012-09-28 2013-09-06 Method and client for using an embedded ActiveX plug-in in a browser

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210371228.2A CN102929656B (zh) 2012-09-28 2012-09-28 使用浏览器中内置ActiveX插件的方法和客户端

Publications (2)

Publication Number Publication Date
CN102929656A CN102929656A (zh) 2013-02-13
CN102929656B true CN102929656B (zh) 2015-11-25

Family

ID=47644468

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210371228.2A Active CN102929656B (zh) 2012-09-28 2012-09-28 使用浏览器中内置ActiveX插件的方法和客户端

Country Status (3)

Country Link
US (1) US9513937B2 (zh)
CN (1) CN102929656B (zh)
WO (1) WO2014048240A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102929656B (zh) * 2012-09-28 2015-11-25 北京奇虎科技有限公司 使用浏览器中内置ActiveX插件的方法和客户端
CN104050410A (zh) * 2013-03-11 2014-09-17 腾讯科技(深圳)有限公司 创建ActiveX控件的方法和装置
CN106254325B (zh) * 2013-03-25 2019-08-02 北京奇虎科技有限公司 网站认证信息的显示方法及浏览器
CN103257881A (zh) * 2013-06-03 2013-08-21 贝壳网际(北京)安全技术有限公司 基于浏览器的插件运行方法、浏览器装置及终端
CN103257882A (zh) * 2013-06-03 2013-08-21 贝壳网际(北京)安全技术有限公司 基于浏览器的插件加载方法、浏览器装置及移动终端
CN104346342A (zh) * 2013-07-24 2015-02-11 腾讯科技(深圳)有限公司 一种加载Flash插件的方法及装置
CN103577227B (zh) * 2013-10-25 2017-01-18 北京奇虎科技有限公司 一种加载插件的方法、浏览器和服务器
CN105653641B (zh) * 2015-12-25 2019-04-12 珠海豹趣科技有限公司 一种浏览器锁定方法及装置
CN106648627B (zh) * 2016-11-30 2020-09-08 武汉斗鱼网络科技有限公司 将直播应用软件移植到火狐浏览器的方法及装置
CN108182090B (zh) * 2016-12-08 2022-01-14 腾讯科技(深圳)有限公司 基于blink内核的Flash插件加载方法及装置
CN108874399B (zh) * 2017-05-11 2022-08-12 龙芯中科技术股份有限公司 安装插件的方法、装置及终端
CN108804056A (zh) * 2018-05-18 2018-11-13 北京票通信息技术有限公司 一种同时支持浏览器和客户端发票打印的方法
CN109697103A (zh) * 2018-08-21 2019-04-30 平安普惠企业管理有限公司 类加载方法、装置、设备及可读存储介质
CN110399131B (zh) * 2019-05-23 2024-04-26 中国平安财产保险股份有限公司 提高应用程序稳定性的方法、装置、计算机设备
CN110837397A (zh) * 2019-09-27 2020-02-25 云深互联(北京)科技有限公司 浏览器插件的配置方法、装置和设备
CN111949280B (zh) * 2020-08-12 2023-11-14 深圳市友华软件科技有限公司 确保预装插件在出厂时正确安装的方法和装置
CN114356433B (zh) * 2021-11-23 2023-12-05 珠海紫讯信息科技有限公司 一种代码注入式浏览器插件自动运行方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004145604A (ja) * 2002-10-24 2004-05-20 Nec Corp ブラウザ端末およびブラウザプログラム
CN101639774A (zh) * 2009-08-31 2010-02-03 腾讯科技(深圳)有限公司 一种浏览器控件的封装方法及装置
CN102682014A (zh) * 2011-03-14 2012-09-19 腾讯科技(深圳)有限公司 在浏览器上实现的开放式插件管理平台及插件管理方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6216152B1 (en) * 1997-10-27 2001-04-10 Sun Microsystems, Inc. Method and apparatus for providing plug in media decoders
US7882501B1 (en) * 1999-08-13 2011-02-01 Oracle America, Inc. System and method for enabling dynamic modifed class reloading in an application server environment
US6880086B2 (en) * 2000-05-20 2005-04-12 Ciena Corporation Signatures for facilitating hot upgrades of modular software components
US7219304B1 (en) * 2000-06-19 2007-05-15 International Business Machines Corporation System and method for developing and administering web applications and services from a workflow, enterprise, and mail-enabled web application server and platform
US7171614B2 (en) * 2002-05-30 2007-01-30 Microsoft Corporation Displaying plug-in derived content in an application's browser-embedded window with callbacks
US20070005685A1 (en) * 2002-09-16 2007-01-04 Wunchun Chau Browser-based payment system
US8528003B2 (en) * 2003-10-27 2013-09-03 Yahoo! Inc. Communication among browser windows
CN100385852C (zh) * 2004-06-22 2008-04-30 腾讯科技(深圳)有限公司 一种网页插件选择下载的实现方法及其装置
US8732794B2 (en) * 2007-08-13 2014-05-20 Trusteer Ltd. Browser plug-in firewall
US20090287559A1 (en) * 2007-12-20 2009-11-19 Michael Chen TabTab
WO2009080034A2 (en) * 2007-12-20 2009-07-02 3Djam Aps System and method for conversion and distribution of graphical objects
EP2263348B1 (en) * 2008-04-07 2018-06-27 Melih Abdulhayoglu Method and system for displaying verification information indicators for a non-secure website
CN101551753B (zh) * 2009-04-08 2012-04-25 腾讯科技(北京)有限公司 控制加载插件的装置及方法
US20110126192A1 (en) * 2009-10-26 2011-05-26 Simon Frost Systems and methods for providing and updating a unified client
CN102929656B (zh) * 2012-09-28 2015-11-25 北京奇虎科技有限公司 使用浏览器中内置ActiveX插件的方法和客户端

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004145604A (ja) * 2002-10-24 2004-05-20 Nec Corp ブラウザ端末およびブラウザプログラム
CN101639774A (zh) * 2009-08-31 2010-02-03 腾讯科技(深圳)有限公司 一种浏览器控件的封装方法及装置
CN102682014A (zh) * 2011-03-14 2012-09-19 腾讯科技(深圳)有限公司 在浏览器上实现的开放式插件管理平台及插件管理方法

Also Published As

Publication number Publication date
US20150242222A1 (en) 2015-08-27
CN102929656A (zh) 2013-02-13
US9513937B2 (en) 2016-12-06
WO2014048240A1 (zh) 2014-04-03

Similar Documents

Publication Publication Date Title
CN102929656B (zh) 使用浏览器中内置ActiveX插件的方法和客户端
CN104375861A (zh) 基于安卓平台的应用程序免安装运行的方法、装置及终端
CN101799855B (zh) 一种基于ActiveX组件模拟的网页木马检测方法
CN107526625B (zh) 一种基于字节码检查的Java智能合约安全检测方法
CN102760068B (zh) 一种ActiveX插件加载方法和装置
CN106406961A (zh) 一种基于浏览器加载、提供应用程序的方法、装置
US8893097B2 (en) Tool configured to build cross-browser toolbar
US20150143348A1 (en) Hybrid dynamic code compiling device, method, and service system thereof
CN111813385B (zh) 一种基于Web应用的页面插件化方法、装置及设备
CN104537308A (zh) 提供应用安全审计功能的系统及方法
US20110099431A1 (en) Relocatable interrupt handler for test generation and execution
CN103226474A (zh) 网页脚本与浏览器程序之间的交互方法、装置及系统
CN113535587B (zh) 目标应用检测方法、装置及计算机设备
CN102938037B (zh) 一种用于浏览器的插件调用方法和插件管理器
CN103617120A (zh) 一种单元测试方法和装置
CN103257881A (zh) 基于浏览器的插件运行方法、浏览器装置及终端
CN114116078A (zh) 基于微前端的应用数据处理方法、装置、设备及介质
CN104598267A (zh) 应用的调起方法及装置
CN103440453A (zh) 浏览器运行环境检测方法、客户端、服务器及系统
CN103544271B (zh) 一种浏览器中加载图片处理窗口的方法和装置
CN102446253B (zh) 一种网页木马检测方法及系统
US20110246967A1 (en) Methods and systems for automation framework extensibility
US9489179B2 (en) Application programming interface tracing mechanism
CN114662022A (zh) 一种应用隔离方法及装置
CN103530155A (zh) 一种用于应用程序的安装方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220707

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.

TR01 Transfer of patent right