[发明专利]一种COM组件的多版本并行运行方法和装置有效
申请号: | 201811476646.1 | 申请日: | 2018-12-04 |
公开(公告)号: | CN109614165B | 公开(公告)日: | 2020-05-05 |
发明(设计)人: | 杨国萍 | 申请(专利权)人: | 山东财经大学 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 杭州君度专利代理事务所(特殊普通合伙) 33240 | 代理人: | 王桂名 |
地址: | 250014 山*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及一种在Windows操作系统上实现COM组件多版本并行运行的方法,以及一种实现装置。一种COM组件的多版本并行运行方法,包括如下步骤:a.把虚拟注册数据保存到虚拟注册文件中;b.把COM组件的动态链接库和虚拟注册文件安装到程序目录下;c.把虚拟注册文件导入到一个对主程序运行路径散列运算所得的一个注册表节点;d.初始化程序进程全局信息;e.采用钩子函数拦截操作系统内核层的由ntdll.dll导出的注册表访问函数对于HKEY_CLASSES_ROOT的访问,重定向到步骤c的散列运算所得到的虚拟注册表节点路径。本发明通过在程序进程启动时导入COM组件的虚拟注册数据,以及在访问COM组件时通过注册表重定向到虚拟注册数据,实现了COM组件多个版本并行运行。 | ||
搜索关键词: | 一种 com 组件 版本 并行 运行 方法 装置 | ||
【主权项】:
1.一种COM组件的多版本并行运行方法,其特征在于包括如下步骤:a.预先把COM组件的注册数据采集后处理成虚拟注册数据,把COM组件模块路径设为某一虚拟路径作为占位符,把虚拟注册数据保存到虚拟注册文件中;b.把COM组件的动态链接库和虚拟注册文件安装到程序目录下;c.程序进程启动时,把虚拟注册文件导入到一个对主程序运行路径散列运算所得的一个注册表节点,该节点在HKEY_CURRENT_USER节点下的子节点,把COM组件所在模块的注册路径InprocServer32调整为基于程序主模块绝对路径;d.初始化程序进程全局信息;e.当程序进程需要调用COM组件时,采用钩子函数拦截操作系统内核层的由ntdll.dll导出的注册表访问函数对于HKEY_CLASSES_ROOT的访问,重定向到步骤c的散列运算所得到的虚拟注册表节点路径,这样COM组件在系统中实现了虚拟注册,虽未实际注册但是得以顺利启用,程序正常运行;f.重复步骤a-e,使另一版本的COM组件顺利启用,从而实现COM组件的多版本并行运行。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东财经大学,未经山东财经大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201811476646.1/,转载请声明来源钻瓜专利网。