一种处理动态库被占用现象的方法技术

技术编号:15128226 阅读:87 留言:0更新日期:2017-04-10 07:28
本发明专利技术涉及一种处理动态库被占用现象的方法,包括以下步骤:调用者加载功能模块,传递参数给功能模块,功能模块根据当前系统释放服务程序并启动服务;服务程序启动命名管道,等待功能模块连接并发送指令;功能模块通过所述命名管道发送查询所述目标动态库的指令给服务程序;服务程序根据目标动态库的路径名称,在所有账户下查找加载该目标动态库的进程,并记录所述进程;服务程序返回查询结果给功能模块;功能模块根据结果和交互处理模式选择提示或者不提示用户接下来的处理过程;功能模块发送处理指令给服务程序;服务程序根据处理指令,选择结束加载目标动态库的进程,或者不做任何处理。本发明专利技术在多账户下仍然可以结束某些目标文件加载进程。

【技术实现步骤摘要】

本专利技术具体涉及一种处理动态库被占用现象的方法,属于程序的安装,升级,或者卸载操作方法领域。
技术介绍
软件的升级过程中经常会碰到升级之后的新版本功能无法正常使用,或者出现其他的异常。这是由于在安装包的升级和卸载应用环境中,需要对已经安装的文件进行覆盖或者删除操作,但是由于某个文件可能正在被用户使用的进程加载,导致无法实现相应的操作。这种情况所导致的结果是某些文件还是旧的版本。这种无法覆盖和删除的操作在多账户下的进程中占用,也不易发现,给用户带来疑惑和不便。另外对于结束占用的进程操作,在vista以上的系统,安装包可能没有权限进行这种操作。尽管可以通过重启的方式来完成删除或者覆盖操作,然而这样导致客户体验不是很好。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种处理动态库被占用现象的方法,解决升级或者卸载时某些文件无法正常替换或者删除的问题。为实现上述目的,本专利技术采用的技术方案如下:一种处理动态库被占用现象的方法,所述方法包括以下步骤:(1)调用者加载功能模块,获取接口函数指针;(2)调用者传递两个参数给功能模块,所述两个参数是:目标动态库的路径名称,静默或者非静默交互处理模式;(3)功能模块根据当前系统释放服务程序并启动服务;(4)服务程序启动命名管道,等待功能模块连接并发送指令;(5)功能模块通过所述命名管道发送查询所述目标动态库的路径名称的r>指令给服务程序;(6)服务程序根据目标动态库的路径名称,在所有账户下查找加载该目标动态库的进程,并记录所述进程;(7)服务程序返回查询目标动态库指令的结果给功能模块;(8)功能模块根据结果和交互处理模式选择提示或者不提示用户接下来的处理过程;(9)功能模块发送处理指令给服务程序;(10)服务程序根据处理指令,选择结束加载目标动态库的进程,或者不做任何处理;(11)服务程序把处理结果返给功能模块;(12)功能模块把处理结果发给调用者;(13)调用者释放功能模块。进一步地,如上所述的处理动态库被占用现象的方法,所述步骤(3)中,如果当前系统是64位系统则启动64位和32位两个服务,如果当前系统是32位系统则启动32位服务。进一步地,如上所述的处理动态库被占用现象的方法,所述步骤(8)中,如果交互处理模式为非静默模式则功能模块将结果显示给用户,如果交互处理模式为静默模式则功能模块不显示结果。进一步地,如上所述的处理动态库被占用现象的方法,所述步骤(9)中,根据在非静默模式下用户选择的处理方式,或者静默模式下的缺省处理方式,得到所述处理指令。本专利技术的有益效果在于:多账户下仍然可以结束某些目标文件加载进程,而且权限合适,不会存在权限不够无法结束目标文件加载进程的情况,两个服务以资源的方式存在于功能模块中,方便安装脚本使用。附图说明图1为本专利技术处理动态库被占用现象的方法流程图。具体实施方式下面结合附图和实施例对本专利技术进行详细的描述。如图1所示,为本专利技术实施例中一种处理动态库被占用现象的方法流程图,由图中可以看出,该方法可以包括以下步骤:步骤S101:调用者加载功能模块,并且传递主要的两个参数给功能模块,参数为动态库路径名称,非静默模式。步骤S201:功能模块根据当前的系统释放服务程序,如果是64位系统那么启动64位和32位两个服务,如果是32位系统启动32位服务,此时服务建立命名管道,并且等待功能模块连接并发送指令。步骤S202:功能模块把调用者传过来的动态库路径名称,通过管道的方式发给64位服务(64位系统),和32位服务,并且让其进行查询工作。步骤S301:服务程序根据管道传过来的动态库进行查询哪些进程加载了指定的动态库。步骤S202:服务程序把查询到的进程名称,通过管道以响应数据的方式返回给功能模块。步骤S103:功能模块把服务程序的响应数据以UI的方式显示给用户,让用户决定接下来是否继续进行结束进程操作,如果取消,通过S102步骤返回。步骤S202:通过管道的方式告知服务让其进行结束进程的操作。步骤S301:服务使用查询到的结果,结束对应的进程。步骤S202:服务通过管道以响应数据的方式返回执行结果,成功还是失败。步骤S102:功能模块将服务执行结果发回调用者。最后调用者结束服务,并且删除释放的服务程序文件,整个调用过程结束。显然,本领域的技术人员可以对本专利技术进行各种改动和变型而不脱离本专利技术的精神和范围。这样,倘若对本专利技术的这些修改和变型属于本专利技术权利要求及其同等技术的范围之内,则本专利技术也意图包含这些改动和变型在内。本文档来自技高网...

【技术保护点】
一种处理动态库被占用现象的方法,其特征在于:所述方法包括以下步骤:(1)调用者加载功能模块,获取接口函数指针;(2)调用者传递两个参数给功能模块,所述两个参数是:目标动态库的路径名称,静默或者非静默交互处理模式;(3)功能模块根据当前系统释放服务程序并启动服务;(4)服务程序启动命名管道,等待功能模块连接并发送指令;(5)功能模块通过所述命名管道发送查询所述目标动态库的路径名称的指令给服务程序;(6)服务程序根据目标动态库的路径名称,在所有账户下查找加载该目标动态库的进程,并记录所述进程;(7)服务程序返回查询目标动态库指令的结果给功能模块;(8)功能模块根据结果和交互处理模式选择提示或者不提示用户接下来的处理过程;(9)功能模块发送处理指令给服务程序;(10)服务程序根据处理指令,选择结束加载目标动态库的进程,或者不做任何处理;(11)服务程序把处理结果返给功能模块;(12)功能模块把处理结果发给调用者;(13)调用者释放功能模块。

【技术特征摘要】
1.一种处理动态库被占用现象的方法,其特征在于:
所述方法包括以下步骤:
(1)调用者加载功能模块,获取接口函数指针;
(2)调用者传递两个参数给功能模块,所述两个参数是:目标动态库的
路径名称,静默或者非静默交互处理模式;
(3)功能模块根据当前系统释放服务程序并启动服务;
(4)服务程序启动命名管道,等待功能模块连接并发送指令;
(5)功能模块通过所述命名管道发送查询所述目标动态库的路径名称的
指令给服务程序;
(6)服务程序根据目标动态库的路径名称,在所有账户下查找加载该目
标动态库的进程,并记录所述进程;
(7)服务程序返回查询目标动态库指令的结果给功能模块;
(8)功能模块根据结果和交互处理模式选择提示或者不提示用户接下来
的处理过程;
(9)功能模块发送处理指令给服务程序;
(10)服务程序根据处理指令,选择结...

【专利技术属性】
技术研发人员:张伟
申请(专利权)人:北京握奇智能科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1