CN103064704B - 一种基于进程标识的软件窗口全生命周期管理方法 - Google Patents
一种基于进程标识的软件窗口全生命周期管理方法 Download PDFInfo
- Publication number
- CN103064704B CN103064704B CN201210552577.4A CN201210552577A CN103064704B CN 103064704 B CN103064704 B CN 103064704B CN 201210552577 A CN201210552577 A CN 201210552577A CN 103064704 B CN103064704 B CN 103064704B
- Authority
- CN
- China
- Prior art keywords
- window
- handle
- software
- queue
- business software
- 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
Links
Landscapes
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明属于计算机软件技术领域,特别涉及一种对软件窗口进行管理的方法。其技术方案是:一种基于进程标识的软件窗口全生命周期管理方法,在启动业务软件后,记录进程句柄,并以其为特征获取进程主窗口的句柄,通过监视进程的句柄捕获到进程退出的时机,通过进程主窗口句柄对窗口进行激活、最大化、最小化、关闭等操作,无需受控窗口提供其具体窗口信息,更无需向业务软件进程植入代码,因而相对于现有技术具有更好的适应性。
Description
技术领域
本发明属于计算机软件技术领域,特别涉及一种对软件窗口进行管理的方法。
背景技术
在计算机应用中,经常涉及到系统中多个独立的业务软件的交叉使用。因而需要对系统中各类业务软件窗口进行统一管理,尤其是对运行态的业务软件窗口进行跟踪及控制。关于软件窗口的管理和控制,通常的方法是采用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步骤继续遍历;
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:清理资源后,进程退出。
Claims (1)
1.一种基于进程标识的软件窗口全生命周期管理方法,设系统集成的多个业务软件分别为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:清理资源后,进程退出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210552577.4A CN103064704B (zh) | 2012-12-19 | 2012-12-19 | 一种基于进程标识的软件窗口全生命周期管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210552577.4A CN103064704B (zh) | 2012-12-19 | 2012-12-19 | 一种基于进程标识的软件窗口全生命周期管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103064704A CN103064704A (zh) | 2013-04-24 |
CN103064704B true CN103064704B (zh) | 2015-11-25 |
Family
ID=48107341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210552577.4A Active CN103064704B (zh) | 2012-12-19 | 2012-12-19 | 一种基于进程标识的软件窗口全生命周期管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103064704B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103853616B (zh) * | 2014-02-20 | 2016-10-26 | 福建升腾资讯有限公司 | 一种实现云计算虚拟桌面自动关闭并释放硬件资源的方法 |
CN105771241A (zh) * | 2014-12-24 | 2016-07-20 | 北京奇虎科技有限公司 | 游戏窗口的匹配处理方法和装置 |
CN105771238A (zh) * | 2014-12-24 | 2016-07-20 | 北京奇虎科技有限公司 | 游戏辅助功能的运行方法和装置 |
CN106547547B (zh) * | 2016-10-18 | 2019-12-10 | 广州酷狗计算机科技有限公司 | 数据采集方法及装置 |
CN113326098B (zh) * | 2021-06-11 | 2023-11-14 | 成都精灵云科技有限公司 | 支持kvm虚拟化与容器虚拟化的云管平台 |
CN114356435A (zh) * | 2021-11-26 | 2022-04-15 | 中国航空无线电电子研究所 | 一种Qt界面集成方法和装置 |
CN115543152B (zh) * | 2022-11-16 | 2023-04-14 | 北京时代亿信科技股份有限公司 | 确定文件状态的方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996072A (zh) * | 2009-08-21 | 2011-03-30 | 联想(北京)有限公司 | 一种操作系统的窗口管理方法及计算机 |
CN102662738A (zh) * | 2012-03-15 | 2012-09-12 | 奇智软件(北京)有限公司 | 多进程管理方法与装置 |
-
2012
- 2012-12-19 CN CN201210552577.4A patent/CN103064704B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996072A (zh) * | 2009-08-21 | 2011-03-30 | 联想(北京)有限公司 | 一种操作系统的窗口管理方法及计算机 |
CN102662738A (zh) * | 2012-03-15 | 2012-09-12 | 奇智软件(北京)有限公司 | 多进程管理方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103064704A (zh) | 2013-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103064704B (zh) | 一种基于进程标识的软件窗口全生命周期管理方法 | |
US9665081B2 (en) | Intelligent power utilization system and method for parks | |
CN104038373B (zh) | 信息预警与自修复系统及方法 | |
CN103617098B (zh) | 基于数据变化的智能备份方法及智能备份系统 | |
CN103163841A (zh) | 自动化设备远程监控系统及方法 | |
WO2019137206A1 (zh) | 一种油气管道scada系统 | |
CN103645924A (zh) | 嵌入式设备程序参数管理方法及装置 | |
CN103163842A (zh) | 自动化设备远程监控系统及方法 | |
CN104360923A (zh) | 批量应用进程的监控方法及监控系统 | |
CN103678389A (zh) | 清理垃圾文件的方法和装置 | |
CN104375898B (zh) | 一种移动终端cpu占用率优化方法 | |
CN102833120B (zh) | 一种快速自动化测试中处理网管服务器异常的方法及系统 | |
CN107878366A (zh) | 一种用于控制新能源汽车控制器工作状态的方法及装置 | |
CN104898645A (zh) | 一种卫星故障检测隔离恢复策略及策略动态调整方法 | |
CN106847285A (zh) | 一种机器人及其语音识别方法 | |
CN104899274A (zh) | 一种内存数据库高效远程访问方法 | |
CN102620948B (zh) | 抽水蓄能机组故障智能分析方法及其系统 | |
CN103092866A (zh) | 数据监控方法及监控装置 | |
CN101295271B (zh) | 软件看门狗自我恢复方法 | |
CN103763843A (zh) | 智能灯泡恢复出厂设置的方法 | |
CN103617521A (zh) | 用于电力营销的业务督办方法 | |
KR20160087280A (ko) | 스마트 워터 그리드 기반 통합 운영 서비스 제공 방법 및 시스템 | |
CN103281371A (zh) | 基于4g移动网络的抽油机远程控制系统及方法 | |
CN104660992B (zh) | 视频掉线重连系统和方法 | |
CN109726365B (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 |