[发明专利]一种基于进程标识的软件窗口全生命周期管理方法有效
| 申请号: | 201210552577.4 | 申请日: | 2012-12-19 |
| 公开(公告)号: | CN103064704A | 公开(公告)日: | 2013-04-24 |
| 发明(设计)人: | 王晖;杨宝铭;靳婷;李贤玉;张伟;张鑫 | 申请(专利权)人: | 中国人民解放军第二炮兵装备研究院第四研究所 |
| 主分类号: | G06F9/445 | 分类号: | G06F9/445 |
| 代理公司: | 中国人民解放军第二炮兵专利服务中心 11040 | 代理人: | 肖进 |
| 地址: | 100085 *** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 进程 标识 软件 窗口 生命周期 管理 方法 | ||
技术领域
本发明属于计算机软件技术领域,特别涉及一种对软件窗口进行管理的方法。
背景技术
在计算机应用中,经常涉及到系统中多个独立的业务软件的交叉使用。因而需要对系统中各类业务软件窗口进行统一管理,尤其是对运行态的业务软件窗口进行跟踪及控制。关于软件窗口的管理和控制,通常的方法是采用windows消息拦截机制,捕获窗口在创建、激活、销毁时激发的消息,在恰当的时机调用相应的操作维护窗口的管理信息。这种方法固然有其优势,但受控窗口必须提供其具体的窗口信息,如此一来,业务软件窗口信息的任何修改,都将影响窗口集成管理的正确性,而各业务软件往往由多个软件供应商分别开发,发生以上修改将不可避免;另外,该方法或需向业务软件进程植入代码,这种代码植入的方式存在安全风险并难于控制和调试。
发明内容
本发明的目的是:提供一种面向Windows操作系统,对各类业务软件具有更好适应性的软件窗口全生命周期管理方法。
本发明的技术方案是:一种基于进程标识的软件窗口全生命周期管理方法,设系统集成的多个业务软件分别为A,B,...,Z,则:
a.当其中一个业务软件A启动时,顺序执行以下步骤:
a1.业务应用软件A如果启动成功,其所在的进程AProcess的句柄为AHandle,否则,控制权返回至人机界面,等待用户操作;
a2.采用进程句柄匹配的算法,对当前桌面的顶层窗口进行遍历;
a2.1.获取当前桌面的顶层窗口集合;
a2.2.遍历顶层窗口集合,将该窗口所在的进程句柄与AHandle进行匹配;
a2.3.如果:两句柄相等,则该窗口即是AProcess的主窗口;
a2.4.否则:转至a2.1步骤继续遍历;
a3.获取AProcess的主窗口句柄AWndHandle,将其放入StartQueue队列中保存;
a3.1.如果队列中包含句柄AWndHandle,将其删除;
a3.2.将句柄压入StartQueue队列首部;
a4.启动一个工作线程MonitorAThread,对AHandle进行监控;
a5.使用AWndHandle控制管理窗口的激活、关闭、最大化、最小化;
a6.启动其它业务软件时,执行与a1~a5相同步骤;
b.当其中一个业务软件A正常或异常退出时,顺序执行以下步骤:
b1.正常关闭进程AProcess;若为异常退出,则从b2步骤开始执行;
b2.监控进程句柄AHandle的工作线程MonitorAThread被激发;
b2.1.在StartQueue队列中查找AWndHandle,将其删除;
b2.2.获取StartQueue队列顶部的窗口句柄,将该句柄设为BWndHandle,将窗口激活;
b2.3.清理资源后,线程MonitorAThread退出;
b3.关闭其它业务软件时,执行与b1~b2.3.相同步骤;
c.当关闭整个系统时:
c1:依次遍历StartQueue队列中各个元素;
c2:通过各个元素中存储的窗口句柄,关闭各个业务软件窗口;
c3:清理资源后,进程退出。
本发明在启动业务软件后,记录进程句柄,并以其为特征获取进程主窗口的句柄,通过监视进程的句柄捕获到进程退出的时机,通过进程主窗口句柄对窗口进行激活、最大化、最小化、关闭等操作,无需受控窗口提供其具体窗口信息,更无需向业务软件进程植入代码,因而相对于现有技术具有更好的适应性。
具体实施方式
一种基于进程标识的软件窗口全生命周期管理方法,设系统集成的多个业务软件分别为A,B,...,Z,则:
a.当其中一个业务软件A启动时,顺序执行以下步骤:
a1.业务应用软件A如果启动成功,其所在的进程AProcess的句柄为AHandle,否则,控制权返回至人机界面,等待用户操作;
a2.采用进程句柄匹配的算法,对当前桌面的顶层窗口进行遍历;
a2.1.获取当前桌面的顶层窗口集合;
a2.2.遍历顶层窗口集合,将该窗口所在的进程句柄与AHandle进行匹配;
a2.3.如果:两句柄相等,则该窗口即是AProcess的主窗口;
a2.4.否则:转至a2.1步骤继续遍历;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军第二炮兵装备研究院第四研究所,未经中国人民解放军第二炮兵装备研究院第四研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210552577.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种HART调制解调器及其数据传输方法
- 下一篇:轮毂自动注油机





