CN102760068A - 一种ActiveX插件加载方法和装置 - Google Patents

一种ActiveX插件加载方法和装置 Download PDF

Info

Publication number
CN102760068A
CN102760068A CN2012101798240A CN201210179824A CN102760068A CN 102760068 A CN102760068 A CN 102760068A CN 2012101798240 A CN2012101798240 A CN 2012101798240A CN 201210179824 A CN201210179824 A CN 201210179824A CN 102760068 A CN102760068 A CN 102760068A
Authority
CN
China
Prior art keywords
unit
activex plug
install
plug
activex
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.)
Granted
Application number
CN2012101798240A
Other languages
English (en)
Other versions
CN102760068B (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.)
3600 Technology Group Co ltd
Original Assignee
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 Qizhi Software Beijing Co Ltd filed Critical Qizhi Software Beijing Co Ltd
Priority to CN201210179824.0A priority Critical patent/CN102760068B/zh
Publication of CN102760068A publication Critical patent/CN102760068A/zh
Application granted granted Critical
Publication of CN102760068B publication Critical patent/CN102760068B/zh
Active - Reinstated legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种ActiveX插件加载方法和装置,涉及计算机技术领域。所述方法包括:依据ActiveX插件的类标识符,判断对应所述类标识符的免安装ActiveX插件是否存在;如果不存在,则向服务器侧请求下载所述类标识符的免安装ActiveX插件;拦截ActiveX插件的加载信息,并加载已存在的或所述下载的免安装ActiveX插件。本发明能有效避免由于计算机安全设置及清理注册表因素,会出现向注册表写入信息失败或者写入的信息被删除,最终导致ActiveX插件安装失败的问题,并且本发明不用向注册表注册信息,减少了系统的信息量,节省了系统的空间。

Description

一种ActiveX插件加载方法和装置
技术领域
本发明涉及计算机技术领域,特别是涉及一种ActiveX插件加载方法和装置。 
背景技术
ActiveX是一个开放的集成平台,为开发人员、用户和Web生产商提供了一个快速而简便的在Internet和Intranet创建程序集成和内容的方法。使用ActiveX,可轻松方便的在Web页中插入多媒体效果、交互式对象、以及复杂程序,创建用户体验相当的高质量多媒体CD-ROM。基于ActiveX的ActiveX插件也具有越来越广泛的应用。ActiveX插件技术是国际上通用的基于Windows平台的软件技术,许多软件均采用此种方式开发,例如Flash动画播放插件、Microsoft MediaPlayer插件、Adobe PDF阅读插件等。 
ActiveX插件叫做OLE插件或OCX插件,它是一些软件组件或对象,可以将其插入到WEB网页或其它应用程序中。ActiveX插件是当用户浏览到特定的网页时,浏览器会提示用户下载并安装ActiveX插件。ActiveX插件是基于COM技术,每个ActiveX插件都有一个全球唯一的CLSID(class identifier,类标识符)。 
现有技术中,如果某个网页设置了使用某个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插件对应的类标识符包括: 
在类标识符获取函数CLSIDFromProgID头部钩取所述类标识符获取函数CL SIDFromProgID; 
依据所述程序标识符在浏览器的类标识符记录中,查找与所述ActiveX插件对应的类标识符。 
优选的,所述拦截ActiveX插件存储路径查询函数,依据所述类标识符获取已记录的与免安装ActiveX插件对应的存储路径包括: 
在ActiveX插件存储路径查询函数CoGetClassObject头部钩取ActiveX插件存储路径查询函数CoGetClassObject; 
依据所述类标识符,从浏览器的存储路径记录中读取免安装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组件。 
优选的,所述第一钩取模块包括: 
第一钩取子模块,用于在类标识符获取函数CLSIDFromProgID头部钩 取所述类标识符获取函数CLSIDFromProgID; 
第一查找返回子模块,用于依据所述程序标识符在浏览器的类标识符记录中,查找与所述ActiveX插件对应的类标识符。 
优选的,所述第二钩取模块包括: 
第二钩取子模块,用于在ActiveX插件存储路径查询函数CoGetClassObject头部钩取ActiveX插件存储路径查询函数CoGetClassObject; 
第二查找返回子模块,用于依据所述类标识符,从浏览器的存储路径记录中读取免安装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插件加载装置的结构示意图; 
图4是本发明优选的一种ActiveX插件加载装置的结构示意图。 
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。 
本发明的核心思想之一在于:由于浏览器对ActiveX插件加载及调用的处理过程中,必须使用系统的API函数从注册表查询相关信息才能加载及调用,那么本发明即可拦截加载及调用过程中使用的API函数,阻止API函数去注册表查询相关信息,浏览器将预先获取的相应的查询值通知给相应API函数。本发明不需要预先安装ActiveX插件,不需要向注册表注册任何信息,只需获取免安装ActiveX插件存入指定位置,即通过拦截ActiveX插件的加载信息,然后加载所述免安装ActiveX插件,瘦身了系统,降低系统使用空间。 
参照图1,示出了本发明一种ActiveX插件加载方法的流程示意图,具体可以包括: 
步骤110,依据ActiveX插件的类标识符,判断对应所述类标识符的免安装ActiveX插件是否存在; 
在实际中,对应每一种ActiveX插件均存在唯一的类标识符(在Windows系统中称之为Class ID,缩写为CLSID,也称为全局唯一标示符”,CLSID是一个128位的随机数,为了确保它的随机性,避免重复,它的算法主要是从两个方面入手:1.一部分数字来自于系统网卡的序列号,由于每一个网卡的MAC地址都不一样,因此产生的ID也就会有差异。2.另外一部分数字来自于系统的当前时间)。而在浏网页设置时,对于调用ActiveX插件的脚本,需要用到类标识符去加载插件。对于本发明来说,可首先记录各个免安装ActiveX插件对应的类标识符。当一网页的脚本需要通过CLSID去加载免安装ActiveX插件,先将CLSID给网页的脚本。 
而在网页需要加载免安装ActiveX插件之前,需要判断用户端中是否存在免安装ActiveX插件。判断即根据CLSID与免安装ActiveX插件的对应关系去查找用户端中是否存在免安装ActiveX插件。 
其中,优选的,进一步包括: 
步骤O1,触发调用类标识符获取函数的请求,所述请求中包括ActiveX插件对应的程序标识符; 
步骤O2,拦截类标识符获取函数,依据所述程序标识符获取已记录的与所述ActiveX插件对应的类标识符。 
即当网页插件需要通过程序标识符(程序标识符,英文名称ProgID,ProgID是程序员给某个CLSID指定一个易记的名字,其组成为:<program>.<component>.<version>)去获取相应的类标识符时,则通过步骤O1和O2获取。 
优选的,判断对应所述类标识符的免安装ActiveX插件是否存在时包括:根据类标识符与免安装ActiveX插件的对应关系,在指定磁盘存储路径查询相应的免安装ActiveX插件是否已经存在。 
在本发明中,免安装ActiveX插件是存储在指定的磁盘路径的,而浏览器可记录该磁盘路径,当网页的脚本得到免安装ActiveX插件的CLSID后,就可去相应磁盘路径查询该路径下是否存在相应免安装ActiveX插件。 
在本发明中,所述免安装ActiveX插件,其一般是将其中对于不同动态 链接库的调用关系封装在一起,保证免安装ActiveX插件的执行引擎对各中功能模块的调用不需要借助注册表。比如游戏插件,其对应的ActiveX组件执行时需要调用播放器、缓存Cache等,而播放器、缓存Cache等在安装版本文件中需要将播放器、缓存Cache的调用位置告知执行引擎。而对于本发明来说,上述调用关系和调用位置直接封装在免安装ActiveX插件中。 
优选的,判断对应所述类标识符的免安装ActiveX插件是否存在时还包括: 
步骤S111,读取服务器中与客户端相同免安装ActiveX插件的版本标识,并与所述客户端中免安装ActiveX插件的版本标识进行比较,判断所述免安装ActiveX插件是否需要升级; 
步骤S112,当判断所述免安装ActiveX插件需要升级时,从服务器下载新版本的免安装ActiveX插件替换客户端的原版本的免安装ActiveX插件。 
即,步骤S111和步骤S112可保证用户端当前使用的插件升级为最新版本的插件。 
步骤120,如果不存在,则向服务器侧请求下载所述类标识符的免安装ActiveX插件; 
如果不存在与CLSID相应的免安装ActiveX插件,则无法进行后续的加载,因此需要先从服务器侧先下载免安装ActiveX插件。下载时,用户端发送包括CLSID的下载请求至服务器侧,然后服务器侧则根据CLSID找到相应的免安装ActiveX插件提供给用户端下载。 
如果存在免安装ActiveX插件,则转入步骤130。 
步骤130,拦截ActiveX插件的加载信息,并加载已存在的或所述下载的免安装ActiveX插件。 
当下载完毕后,网页的脚本即可根据CLSID加载免安装ActiveX插件。在加载过程中,为了避免加载原本处理过程去注册表读取相应信息,则拦截ActiveX插件的加载信息,并加载已存在或所述下载的免安装ActiveX插件。 
参照图2,示出了本发明一种ActiveX插件加载方法的流程示意图,具 体可以包括: 
步骤210,触发调用类标识符获取函数的请求,所述请求中包括ActiveX插件对应的程序标识符; 
比如用户打开某个网页,而该网页需要用到flash动画插件,就需要触发网页的ActiveX插件应用请求。在实际中,在应用到ActiveX插件的网页在制作时,一般以ActiveX插件对应的程序标识符进行标识,在网页打开时,会发送ActiveX插件应用请求至浏览器,所述请求中包括ActiveX插件对应的程序标识符。 
步骤220,拦截类标识符获取函数,依据所述程序标识符获取已记录的与所述ActiveX插件对应的类标识符; 
在浏览器得到ProgID后,会调用类标识符获取函数去获取CLSID,现有技术中类标识符获取函数是指向注册表,去注册表查询与ProgID关联的CLSID。为了避免类标识符获取函数去注册表查询,本发明则拦截所述类标识符获取函数,从类标识符记录中获取与所述ActiveX插件对应的类标识符,并从浏览器的记录中获取所述类标识符。 
即实际中,本发明的浏览器一般会预先获取各ActiveX插件的ProgID和相应的CLSID,然后将ProgID和对应的CLSID存入类标识符记录,那么当拦截到所述类标识符获取函数时,根据类标识符获取函数的入参信息ProgID从所述类标识符记录中提取相应的CLSID,作为类标识符获取函数的返回值,这样使程序可以正常运行,并且可以进入下一步处理。 
优选的,所述拦截类标识符获取函数,依据所述程序标识符获取已记录的与所述ActiveX插件对应的类标识符包括: 
步骤A1,在类标识符获取函数CLSIDFromProgID头部钩取所述类标识符获取函数CLSIDFromProgID; 
类标识符获取函数CLSIDFromProgID的功能是根据给定的程序标识符ProgID从注册表找出对应的类标识符CLSID。其在windows中的语法为″HRESULT CLSIDFromProgID(LPCOLESTR lpszProgID,LPCLSIDpclsid);″其中,参数lpszProgID的解释为[in]指向类标识符所需的程 序标识符长整型指针,参数pclsid的解释为[out]指向返回的类标识符。 
本发明会在类标识符获取函数CLSIDFromProgID未去注册表进行查询动作之前即对CLSIDFromProgID函数进行hook(Hook是Windows中提供的一种用以替换DOS下“中断”的系统机制,中文译为“挂钩”或“钩子”),阻止其去注册表查询。即在类标识符获取函数CLSIDFromProgID头部钩取所述类标识符获取函数CLSIDFromProgID。使指向注册表中类标识符所需的程序标识符长整型指针变为指向浏览器记录的类标识符所需的程序标识符长整型指针,使指向注册表中返回的类标识符pclsid指向浏览器的类标识符记录。 
步骤A2,依据所述程序标识符在浏览器的类标识符记录中,查找与所述ActiveX插件对应的类标识符。 
在本实施例中,浏览器会记录类标识符与程序标识符的对应关系。为了使程序能正常执行下去,并且可以获得后续使用的CLSID,本发明依据所述程序标识符在类标识符记录中查找类标识符。 
在前述中使指向注册表中类标识符所需的程序标识符长整型指针变为指向浏览器记录的类标识符所需的程序标识符长整型指针,使指向注册表中返回的类标识符pclsid指向类标识符记录中返回的类标识符后,根据ProgID在记录中查找对应的CLSID,然后将CLSID返回。 
步骤230,依据ActiveX插件的类标识符,判断对应所述类标识符的免安装ActiveX插件是否存在;如果不存在,则向服务器侧请求下载所述类标识符的免安装ActiveX插件;如果存在,则进入步骤240。 
在本发明中,会预置ActiveX插件对应的免安装版本的免安装ActiveX插件,并以ActiveX插件的类标识符和程序标识符与免安装ActiveX插件进行对应。那么,即可依据所述类标识符判断是否已经下载对应的免安装ActiveX插件,如果未下载,则下载所述免安装ActiveX插件存储到指定磁盘路径,并记录所述磁盘路径至免安装ActiveX插件存储路径记录。 
实际中,本发明对于浏览器下载的免安装ActiveX插件,可由浏览器进 行管理,记录其存储路径,当hook CoGetClassObjec之后,根据CLSID查询是否已经下载了免安装ActiveX插件。 
优选的,所述判断对应所述类标识符的免安装ActiveX插件是否存在包括: 
步骤S21,根据类标识符与免安装ActiveX插件的对应关系,在指定磁盘存储路径查询相应的免安装ActiveX插件是否已经存在。 
本发明可根据CLSID查找相应的免安装ActiveX插件的存储路径,然后去该存储路径查找是否存在相应的免安装ActiveX插件。该种方式是避免用户删除了存储的免安装ActiveX插件而浏览器未及时获取删除信息的情况。 
如果不存在,则判断为未下载网页需求的免安装ActiveX插件,则下载所述免安装ActiveX插件存储到指定磁盘路径,并记录所述磁盘路径至免安装ActiveX插件存储路径记录。所述指定的磁盘路径可以为浏览器默认的磁盘路径,也可以为用户自选的磁盘路径。 
步骤240,拦截ActiveX插件存储路径查询函数,依据所述类标识符获取已记录的与免安装ActiveX插件对应的存储路径;所述存储路径记录通过记录对所述免安装ActiveX插件的下载行为获得; 
浏览器接收到类标识符CLSID后,会在CLSID的基础上进行下一个函数的调用,即调用免安装ActiveX插件存储路径查询函数,而在windows中ActiveX插件存储路径查询函数是去注册表中根据CLSID查询并获取ActiveX插件存储路径。为了避免免安装ActiveX插件存储路径查询函数去注册表查询相关信息,本发明则拦截ActiveX插件存储路径查询函数,依据所述CLSID,从ActiveX插件存储路径记录中获取免安装ActiveX插件对应的存储路径。 
在本发明中,当浏览器会将免安装ActiveX插件放入指定的存储路径并记录其存储路径,或者将下载的免安装ActiveX插件的存储路径进行记录,也即浏览器会对免安装ActiveX插件的存储路径进行记录管理,其记录中一般以CLSID与相应免安装ActiveX插件存储路径进行对应。当拦截到ActiveX 插件存储路径查询函数时,则依据所述CLSID,从ActiveX插件存储路径记录中获取免安装ActiveX插件对应的存储路径。 
优选的,所述拦截ActiveX插件存储路径查询函数,依据所述类标识符获取已记录的与免安装ActiveX插件对应的存储路径包括: 
步骤B1,在ActiveX插件存储路径查询函数CoGetClassObject头部钩取ActiveX插件存储路径查询函数CoGetClassObject; 
ActiveX插件存储路径查询函数CoGetClassObject是根据CLSID去注册表查询并获取免安装ActiveX插件的磁盘路径,本发明在ActiveX插件存储路径查询函数CoGetClassObject去注册表查询之前就对其进行拦截,即在ActiveX插件存储路径查询函数CoGetClassObject头部钩取所述ActiveX插件存储路径查询函数CoGetClassObject。 
步骤B2,依据所述类标识符,从浏览器的存储路径记录中读取免安装ActiveX插件存储路径。 
在本发明中,存储路径记录一般以CLSID与ActiveX插件存储路径对应关系进行存储,那么即可依据CLSID在存在存储路径记录中查询相应的免安装ActiveX插件的存储路径。 
优选的,所述判断对应所述类标识符的免安装ActiveX插件是否存在时还包括: 
步骤D1,读取服务器中与客户端相同免安装ActiveX插件的版本标识,并与所述客户端中免安装ActiveX插件的版本标识进行比较,判断所述免安装ActiveX插件是否需要升级; 
在本发明中,可以在免安装ActiveX插件中设置升级程序,定时向服务器发送请求,读取服务器的相同免安装ActiveX插件的版本文件,与本机的同一免安装ActiveX插件的版本文件进行比较,判断是否需要升级,如果需要则转入步骤D2。 
另外,本发明也可由浏览器在判断免安装ActiveX插件存在时,向服务器发送请求,读取服务器的相同免安装ActiveX插件的版本文件,与本机的同一免安装ActiveX插件的版本文件进行比较,判断是否需要升级,如果需 要则转入步骤D2。 
具体的判断方式本发明不对其加以限制。 
步骤D2,当判断所述免安装ActiveX插件需要升级时,从服务器下载新版本的免安装ActiveX插件替换客户端的原版本的免安装ActiveX插件。 
步骤250,根据所述存储路径加载所述免安装ActiveX插件。 
在前述拦截ActiveX插件存储路径查询函数CoGetClassObject的基础上,优选的,根据所述存储路径加载所述免安装ActiveX插件包括: 
步骤F1,依据所述存储路径调用动态链接库加载函数加载对应免安装ActiveX插件的动态链接库; 
对于前述得到的免安装ActiveX插件的存储路径,基于该存储路径调用动态链接库加载函数LoadLibrary,加载对应免安装ActiveX插件的动态链接库,即将免安装ActiveX插件的代码载入内存中,以便后续使用。 
步骤F2,依据所述存储路径获取指向所述免安装ActiveX插件存储路径的类厂指针,并调用指向所述免安装ActiveX插件存储路径的类厂指针,获得相应类厂组件; 
在前述拦截插件存储路径查询函数CoGetClassObject的基础上,基于前述得到的免安装ActiveX插件的存储路径,获取指向所述免安装ActiveX插件存储路径的免安装ActiveX插件的类厂指针DllGetClassObject,并调用免安装ActiveX插件的DllGetClassObject获得IClassFactory类厂组件。 
步骤F3,通过所述类厂组件创建对应免安装ActiveX插件的ActiveX组件。 
然后通过IClassFactory类厂组件创建ActiveX组件,浏览器的需要使用免安装ActiveX插件的网页即可使用免安装ActiveX插件。 
步骤250是浏览器通过hook CoGetClassObject,直接LoadLibray加载免安装ActiveX插件,调用DllGetClassObject获得IClassFactory类厂组件,免去通过注册表依据CLSID查询获得Activex插件的存储路径的过程。 
在本实施例中,是针对插件的加载函数进行控制,即对类标识符获取函数和ActiveX插件存储路径查询函数,而对于其他插件引用功能相关的模块 则无法控制,比如播放器,取缓存等,比如对于复杂的游戏插件来说,其加载需要从注册表获取播放器的链接库进行调用,需要从注册表获取取缓存的链接库进行调用,而不同复杂的对其他模块的调用不同,本发明无法对于这些进行处理,因此可将该类插件进行免安装化,即对其各种功能的调用关系进行封装,在免安装ActiveX插件内部将调用关系固定化。那当浏览器需要按照前述以类标识符获取函数和ActiveX插件存储路径查询函数等驱动方式进行加载时可以成功根据固定化的调用关系加载其他功能的模块。 
参照图3,其示出了本发明一种ActiveX插件加载装置的结构示意图,包括: 
存在判断模块310,用于依据ActiveX插件的类标识符,判断对应所述类标识符的免安装ActiveX插件是否存在; 
插件下载模块320,用于如果不存在,则向服务器侧请求下载所述类标识符的免安装ActiveX插件; 
插件加载模块330,用于拦截ActiveX插件的加载信息,并加载已存在的或所述下载的免安装ActiveX插件。 
优选的,还包括: 
触发模块,用于触发调用类标识符获取函数的请求,所述请求中包括ActiveX插件对应的程序标识符; 
第一钩取模块,用于拦截类标识符获取函数,依据所述程序标识符获取已记录的与所述ActiveX插件对应的类标识符。 
优选的,所述存在判断模块包括: 
第一判断子模块,用于根据类标识符与免安装ActiveX插件的对应关系,在指定磁盘存储路径查询相应的免安装ActiveX插件是否已经存在。 
优选的,还包括: 
升级判断下载模块,读取服务器中与客户端相同免安装ActiveX插件的版本标识,并与所述客户端中免安装ActiveX插件的版本标识进行比较,判断所述免安装ActiveX插件是否需要升级; 
下载更新模块,当判断所述免安装ActiveX插件需要升级时,则从服务 器下载新版本的免安装ActiveX插件替换客户端的原版本的免安装ActiveX插件。 
参照图4,其示出了本发明优选的一种ActiveX插件加载装置的结构示意图,包括: 
触发模块410,用于触发调用类标识符获取函数的请求,所述请求中包括ActiveX插件对应的程序标识符; 
第一钩取模块420,用于拦截类标识符获取函数,依据所述程序标识符获取已记录的与所述ActiveX插件对应的类标识符; 
判断下载模块430,用于依据ActiveX插件的类标识符,判断对应所述类标识符的免安装ActiveX插件是否存在;如果不存在,则向服务器侧请求下载所述类标识符的免安装ActiveX插件;如果存在,则进入模块440; 
第二钩取模块440,用于拦截ActiveX插件存储路径查询函数,依据所述类标识符获取已记录的与免安装ActiveX插件对应的存储路径;所述存储路径记录通过记录对所述免安装ActiveX插件的下载行为获得; 
第一加载模块450,用于根据所述存储路径加载所述免安装ActiveX插件。 
所述第一加载模块包括: 
依据所述存储路径调用动态链接库加载函数加载对应免安装ActiveX插件的动态链接库; 
依据所述存储路径获取指向所述免安装ActiveX插件存储路径的类厂指针,并调用指向所述免安装ActiveX插件存储路径的类厂指针,获得相应类厂组件; 
ActiveX组件创建模块,用于通过所述类厂组件创建对应免安装ActiveX插件的ActiveX组件。 
优选的,所述第一钩取模块包括: 
第一钩取子模块,用于在类标识符获取函数CLSIDFromProgID头部钩取所述类标识符获取函数CLSIDFromProgID; 
第一查找返回子模块,用于依据所述程序标识符在浏览器的类标识符记 录中,查找与所述ActiveX插件对应的类标识符。 
优选的,所述第二钩取模块包括: 
第二钩取子模块,用于在ActiveX插件存储路径查询函数CoGetClassObject头部钩取ActiveX插件存储路径查询函数CoGetClassObject; 
第二查找返回子模块,用于依据所述类标识符,从浏览器的存储路径记录中读取免安装ActiveX插件存储路径。 
优选的,所述判断下载模块包括: 
第一判断子模块,用于根据类标识符与免安装ActiveX插件的对应关系,在指定磁盘存储路径查询相应的免安装ActiveX插件是否已经存在。 
优选的,还包括: 
升级判断下载模块,用于读取服务器中与客户端相同免安装ActiveX插件的版本标识,并与所述客户端中免安装ActiveX插件的版本标识进行比较,判断所述免安装ActiveX插件是否需要升级; 
下载更新模块,当判断所述免安装ActiveX插件需要升级时,则从服务器下载新版本的免安装ActiveX插件替换客户端的原版本的免安装ActiveX插件。 
对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。 
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。 
本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本发明优选应用于嵌入式系统中。 
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描 述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。 
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。 
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。 
本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。 
以上对本发明所提供的一种ActiveX插件加载方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。 

Claims (16)

1.一种ActiveX插件加载方法,其特征在于,包括:
依据ActiveX插件的类标识符,判断对应所述类标识符的免安装ActiveX插件是否存在;
如果不存在,则向服务器侧请求下载所述类标识符的免安装ActiveX插件;
拦截ActiveX插件的加载信息,并加载已存在的或所述下载的免安装ActiveX插件。
2.根据权利要求1所述的方法,其特征在于,进一步包括:
触发调用类标识符获取函数的请求,所述请求中包括ActiveX插件对应的程序标识符;
拦截类标识符获取函数,依据所述程序标识符获取已记录的与所述ActiveX插件对应的类标识符。
3.根据权利要求1所述的方法,其特征在于,拦截ActiveX插件的加载信息,并加载所述已存在或下载的免安装ActiveX插件包括:
拦截ActiveX插件存储路径查询函数,依据所述类标识符获取已记录的与免安装ActiveX插件对应的存储路径;所述存储路径记录通过记录对所述免安装ActiveX插件的下载行为获得;
根据所述存储路径加载所述免安装ActiveX插件。
4.根据权利要求3所述的方法,其特征在于,根据所述存储路径加载所述免安装ActiveX插件包括:
依据所述存储路径调用动态链接库加载函数加载对应免安装ActiveX插件的动态链接库;
依据所述存储路径获取指向所述免安装ActiveX插件存储路径的类厂指针,并调用指向所述免安装ActiveX插件存储路径的类厂指针,获得相应类厂组件;
通过所述类厂组件创建对应免安装ActiveX插件的ActiveX组件。
5.根据权利要求2所述的方法,其特征在于,所述拦截类标识符获取函数,依据所述程序标识符获取已记录的与所述ActiveX插件对应的类标识符包括:
在类标识符获取函数CLSIDFromProgID头部钩取所述类标识符获取函数CL SIDFromProgID;
依据所述程序标识符在浏览器的类标识符记录中,查找与所述ActiveX插件对应的类标识符。
6.根据权利要求3所述的方法,其特征在于,所述拦截ActiveX插件存储路径查询函数,依据所述类标识符获取已记录的与免安装ActiveX插件对应的存储路径包括:
在ActiveX插件存储路径查询函数CoGetClassObject头部钩取ActiveX插件存储路径查询函数CoGetClassObject;
依据所述类标识符,从浏览器的存储路径记录中读取免安装ActiveX插件存储路径。
7.根据权利要求1所述的方法,其特征在于,所述判断对应所述类标识符的免安装ActiveX插件是否存在包括:
根据类标识符与免安装ActiveX插件的对应关系,在指定磁盘存储路径查询相应的免安装ActiveX插件是否已经存在。
8.根据权利要求1所述的方法,其特征在于,所述判断对应所述类标识符的免安装ActiveX插件是否存在包括:
读取服务器中与客户端相同免安装ActiveX插件的版本标识,并与所述客户端中免安装ActiveX插件的版本标识进行比较,判断所述免安装ActiveX插件是否需要升级;
当判断所述免安装ActiveX插件需要升级时,从服务器下载新版本的免安装ActiveX插件替换客户端的原版本的免安装ActiveX插件。
9.一种ActiveX插件加载装置,其特征在于,包括:
存在判断模块,用于依据ActiveX插件的类标识符,判断对应所述类标识符的免安装ActiveX插件是否存在;
插件下载模块,用于如果不存在,则向服务器侧请求下载所述类标识符的免安装ActiveX插件;
插件加载模块,用于拦截ActiveX插件的加载信息,并加载已存在的或所述下载的免安装ActiveX插件。
10.根据权利要求9所述的装置,其特征在于,进一步包括:
触发模块,用于触发调用类标识符获取函数的请求,所述请求中包括ActiveX插件对应的程序标识符;
第一钩取模块,用于拦截类标识符获取函数,依据所述程序标识符获取已记录的与所述ActiveX插件对应的类标识符。
11.根据权利要求9所述的装置,其特征在于,所述插件加载模块包括:
第二钩取模块,用于拦截ActiveX插件存储路径查询函数,依据所述类标识符获取已记录的与免安装ActiveX插件对应的存储路径;所述存储路径记录通过记录对所述免安装ActiveX插件的下载行为获得;
第一加载模块,用于根据所述存储路径加载所述免安装ActiveX插件。
12.根据权利要求11所述的装置,其特征在于,所述第一加载模块包括:
动态链接库加载子模块,用于依据所述存储路径调用动态链接库加载函数加载对应免安装ActiveX插件的动态链接库;
类厂指针获取模块,用于依据所述存储路径获取指向所述免安装ActiveX插件存储路径的类厂指针,并调用指向所述免安装ActiveX插件存储路径的类厂指针,获得相应类厂组件;
ActiveX组件创建模块,用于通过所述类厂组件创建对应免安装ActiveX插件的ActiveX组件。
13.根据权利要求10所述的装置,其特征在于,所述第一钩取模块包括:
第一钩取子模块,用于在类标识符获取函数CLSIDFromProgID头部钩取所述类标识符获取函数CLSIDFromProgID;
第一查找返回子模块,用于依据所述程序标识符在浏览器的类标识符记录中,查找与所述ActiveX插件对应的类标识符。
14.根据权利要求11所述的装置,其特征在于,所述第二钩取模块包括:
第二钩取子模块,用于在ActiveX插件存储路径查询函数CoGetClassObject头部钩取ActiveX插件存储路径查询函数CoGetClassObject;
第二查找返回子模块,用于依据所述类标识符,从浏览器的存储路径记录中读取免安装ActiveX插件存储路径。
15.根据权利要求9所述的装置,其特征在于,所述存在判断模块包括:
第一判断子模块,用于根据类标识符与免安装ActiveX插件的对应关系,在指定磁盘存储路径查询相应的免安装ActiveX插件是否已经存在。
16.根据权利要求9所述的装置,其特征在于,还包括:
升级判断下载模块,用于读取服务器中与客户端相同免安装ActiveX插件的版本标识,并与所述客户端中免安装ActiveX插件的版本标识进行比较,判断所述免安装ActiveX插件是否需要升级;
下载更新模块,用于当判断所述免安装ActiveX插件需要升级时,从服务器下载新版本的免安装ActiveX插件替换客户端的原版本的免安装ActiveX插件。
CN201210179824.0A 2012-06-01 2012-06-01 一种ActiveX插件加载方法和装置 Active - Reinstated CN102760068B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210179824.0A CN102760068B (zh) 2012-06-01 2012-06-01 一种ActiveX插件加载方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210179824.0A CN102760068B (zh) 2012-06-01 2012-06-01 一种ActiveX插件加载方法和装置

Publications (2)

Publication Number Publication Date
CN102760068A true CN102760068A (zh) 2012-10-31
CN102760068B CN102760068B (zh) 2015-07-22

Family

ID=47054534

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210179824.0A Active - Reinstated CN102760068B (zh) 2012-06-01 2012-06-01 一种ActiveX插件加载方法和装置

Country Status (1)

Country Link
CN (1) CN102760068B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999339A (zh) * 2012-11-22 2013-03-27 用友软件股份有限公司 Com组件调用装置和com组件调用方法
CN103077194A (zh) * 2012-12-25 2013-05-01 北京奇虎科技有限公司 浏览器活动对象的创建方法、装置及浏览器
CN103235722A (zh) * 2013-04-19 2013-08-07 南京莱斯信息技术股份有限公司 一种ActiveX控件框架技术实现方法
CN103257881A (zh) * 2013-06-03 2013-08-21 贝壳网际(北京)安全技术有限公司 基于浏览器的插件运行方法、浏览器装置及终端
CN103257882A (zh) * 2013-06-03 2013-08-21 贝壳网际(北京)安全技术有限公司 基于浏览器的插件加载方法、浏览器装置及移动终端
CN103914291A (zh) * 2013-01-05 2014-07-09 李俊涛 一种在浏览器中显示普通桌面程序的方法
CN104346342A (zh) * 2013-07-24 2015-02-11 腾讯科技(深圳)有限公司 一种加载Flash插件的方法及装置
CN104717301A (zh) * 2015-03-27 2015-06-17 北京奇虎科技有限公司 插件下载方法及装置
CN105204883A (zh) * 2014-06-26 2015-12-30 优视科技有限公司 一种插件加载处理方法及装置
CN105912362A (zh) * 2016-04-11 2016-08-31 北京金山安全软件有限公司 一种加载插件的方法、装置及电子设备
CN107562489A (zh) * 2017-08-22 2018-01-09 上海斐讯数据通信技术有限公司 一种基于网页管理模块管理插件的方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101493766A (zh) * 2009-02-24 2009-07-29 浪潮集团山东通用软件有限公司 一种解决active x组件版本冲突的轻量级虚拟化方法
JP4433667B2 (ja) * 2002-10-24 2010-03-17 日本電気株式会社 ブラウザ端末およびプログラム
CN102141922A (zh) * 2010-01-29 2011-08-03 腾讯科技(深圳)有限公司 一种微内核插件化程序应用系统及其实现方法
CN102411508A (zh) * 2011-10-27 2012-04-11 深圳市茁壮网络股份有限公司 插件管理方法、插件控制器及插件管理器和机顶盒

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4433667B2 (ja) * 2002-10-24 2010-03-17 日本電気株式会社 ブラウザ端末およびプログラム
CN101493766A (zh) * 2009-02-24 2009-07-29 浪潮集团山东通用软件有限公司 一种解决active x组件版本冲突的轻量级虚拟化方法
CN102141922A (zh) * 2010-01-29 2011-08-03 腾讯科技(深圳)有限公司 一种微内核插件化程序应用系统及其实现方法
CN102411508A (zh) * 2011-10-27 2012-04-11 深圳市茁壮网络股份有限公司 插件管理方法、插件控制器及插件管理器和机顶盒

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
谢启东: ""用免注册COM来避免DLL Hell"", 《HTTP://BLOG.CSDN.NET/XIEQIDONG/ARTICLE/DETAILS/2471999》, 23 May 2008 (2008-05-23), pages 1 - 4 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999339A (zh) * 2012-11-22 2013-03-27 用友软件股份有限公司 Com组件调用装置和com组件调用方法
CN103077194B (zh) * 2012-12-25 2016-10-05 北京奇虎科技有限公司 浏览器活动对象的创建方法、装置及浏览器
CN103077194A (zh) * 2012-12-25 2013-05-01 北京奇虎科技有限公司 浏览器活动对象的创建方法、装置及浏览器
CN103914291A (zh) * 2013-01-05 2014-07-09 李俊涛 一种在浏览器中显示普通桌面程序的方法
CN103914291B (zh) * 2013-01-05 2019-04-23 苏州小溪网络科技有限公司 一种在浏览器中显示普通桌面程序的方法
CN103235722A (zh) * 2013-04-19 2013-08-07 南京莱斯信息技术股份有限公司 一种ActiveX控件框架技术实现方法
CN103235722B (zh) * 2013-04-19 2016-08-24 南京莱斯信息技术股份有限公司 一种ActiveX控件框架技术实现方法
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插件的方法及装置
CN105204883A (zh) * 2014-06-26 2015-12-30 优视科技有限公司 一种插件加载处理方法及装置
CN105204883B (zh) * 2014-06-26 2019-03-15 优视科技有限公司 一种插件加载处理方法及装置
CN104717301A (zh) * 2015-03-27 2015-06-17 北京奇虎科技有限公司 插件下载方法及装置
CN105912362A (zh) * 2016-04-11 2016-08-31 北京金山安全软件有限公司 一种加载插件的方法、装置及电子设备
CN105912362B (zh) * 2016-04-11 2019-02-26 珠海豹趣科技有限公司 一种加载插件的方法、装置及电子设备
CN107562489A (zh) * 2017-08-22 2018-01-09 上海斐讯数据通信技术有限公司 一种基于网页管理模块管理插件的方法及系统

Also Published As

Publication number Publication date
CN102760068B (zh) 2015-07-22

Similar Documents

Publication Publication Date Title
CN102760068B (zh) 一种ActiveX插件加载方法和装置
CN108027722B (zh) 在编译和部署中动态更新应用
US10242023B2 (en) Programming model for synchronizing browser caches across devices and web services
CN104793946B (zh) 基于云计算平台的应用部署方法和系统
CN104598809B (zh) 程序的监控方法及其防御方法以及相关装置
US6698016B1 (en) Method for injecting code into another process
CN105068852A (zh) 云计算环境下实现Java类在线热更新的系统与方法
WO2017087801A1 (en) Dynamic update of an application in compilation and deployment
CN106569856A (zh) 一种应用视图资源文件的加载方法和装置
JP2002101120A (ja) 通信方法および情報処理装置
CN102331945A (zh) 基于电子商店的应用程序管理方法
CN111724133A (zh) 一种创建项目的方法及装置
CN113760339A (zh) 漏洞修复方法和装置
CN103281297A (zh) 企业信息安全管理系统与方法
US9841982B2 (en) Locating import class files at alternate locations than specified in classpath information
CN112395437B (zh) 一种3d模型的加载方法、装置、电子设备及存储介质
CN111880804A (zh) 应用程序代码的处理方法及装置
WO2022028046A1 (zh) 图片配置方法、装置、系统和存储介质
US7703108B2 (en) Native code isolation in a multi-tasking Java virtual machine
CN103514089B (zh) 软件管理器的软件安装检测方法和系统
CN114490103A (zh) 一种操作系统接口调用方法、装置以及电子设备
US10140155B2 (en) Dynamically provisioning, managing, and executing tasks
Wenxuan et al. Fast boot and fast shutdown of Android on the embedded system
CN115061707A (zh) 一种跨网段应用部署方法及终端
CN114265778A (zh) 一种接口模拟测试方法、插件,终端设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
ASS Succession or assignment of patent right

Owner name: BEIJING QIHU TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: QIZHI SOFTWARE (BEIJING) CO., LTD.

Effective date: 20121025

Owner name: QIZHI SOFTWARE (BEIJING) CO., LTD.

Effective date: 20121025

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100016 CHAOYANG, BEIJING TO: 100088 XICHENG, BEIJING

TA01 Transfer of patent application right

Effective date of registration: 20121025

Address after: 100088 Beijing city Xicheng District xinjiekouwai Street 28, block D room 112 (Desheng Park)

Applicant after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Applicant after: Qizhi software (Beijing) Co.,Ltd.

Address before: The 4 layer 100016 unit of Beijing city Chaoyang District Jiuxianqiao Road No. 14 Building C

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

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150722

Termination date: 20190601

RR01 Reinstatement of patent right
RR01 Reinstatement of patent right

Former decision: termination of patent right due to unpaid annual fee

Former decision publication date: 20200522

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220818

Address after: No. 9-3-401, No. 39, Gaoxin 6th Road, Binhai Science and Technology Park, High-tech Zone, Binhai New District, Tianjin 300000

Patentee after: 3600 Technology Group 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.