CN103064704A - 一种基于进程标识的软件窗口全生命周期管理方法 - Google Patents
一种基于进程标识的软件窗口全生命周期管理方法 Download PDFInfo
- Publication number
- CN103064704A CN103064704A CN2012105525774A CN201210552577A CN103064704A CN 103064704 A CN103064704 A CN 103064704A CN 2012105525774 A CN2012105525774 A CN 2012105525774A CN 201210552577 A CN201210552577 A CN 201210552577A CN 103064704 A CN103064704 A CN 103064704A
- Authority
- CN
- China
- Prior art keywords
- window
- handle
- software
- formation
- startqueue
- 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
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 true CN103064704A (zh) | 2013-04-24 |
CN103064704B 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) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105771241A (zh) * | 2014-12-24 | 2016-07-20 | 北京奇虎科技有限公司 | 游戏窗口的匹配处理方法和装置 |
CN105771238A (zh) * | 2014-12-24 | 2016-07-20 | 北京奇虎科技有限公司 | 游戏辅助功能的运行方法和装置 |
CN103853616B (zh) * | 2014-02-20 | 2016-10-26 | 福建升腾资讯有限公司 | 一种实现云计算虚拟桌面自动关闭并释放硬件资源的方法 |
CN106547547A (zh) * | 2016-10-18 | 2017-03-29 | 广州酷狗计算机科技有限公司 | 数据采集方法及装置 |
CN113326098A (zh) * | 2021-06-11 | 2021-08-31 | 成都精灵云科技有限公司 | 支持kvm虚拟化与容器虚拟化的云管平台 |
CN114356435A (zh) * | 2021-11-26 | 2022-04-15 | 中国航空无线电电子研究所 | 一种Qt界面集成方法和装置 |
CN115543152A (zh) * | 2022-11-16 | 2022-12-30 | 北京时代亿信科技股份有限公司 | 确定文件状态的方法及装置 |
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 | 奇智软件(北京)有限公司 | 多进程管理方法与装置 |
Cited By (9)
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 | 北京奇虎科技有限公司 | 游戏辅助功能的运行方法和装置 |
CN106547547A (zh) * | 2016-10-18 | 2017-03-29 | 广州酷狗计算机科技有限公司 | 数据采集方法及装置 |
CN106547547B (zh) * | 2016-10-18 | 2019-12-10 | 广州酷狗计算机科技有限公司 | 数据采集方法及装置 |
CN113326098A (zh) * | 2021-06-11 | 2021-08-31 | 成都精灵云科技有限公司 | 支持kvm虚拟化与容器虚拟化的云管平台 |
CN113326098B (zh) * | 2021-06-11 | 2023-11-14 | 成都精灵云科技有限公司 | 支持kvm虚拟化与容器虚拟化的云管平台 |
CN114356435A (zh) * | 2021-11-26 | 2022-04-15 | 中国航空无线电电子研究所 | 一种Qt界面集成方法和装置 |
CN115543152A (zh) * | 2022-11-16 | 2022-12-30 | 北京时代亿信科技股份有限公司 | 确定文件状态的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103064704B (zh) | 2015-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103064704A (zh) | 一种基于进程标识的软件窗口全生命周期管理方法 | |
CN102902583B (zh) | 在挂起状态和执行状态下管理进程 | |
CN103559514B (zh) | 一种即时的自助发卡方法及终端 | |
WO2014022320A3 (en) | Monitoring, diagnosing and optimizing gas lift operations | |
CN104038373B (zh) | 信息预警与自修复系统及方法 | |
CN107239457A (zh) | 数据归档方法及装置 | |
CN104899274A (zh) | 一种内存数据库高效远程访问方法 | |
WO2011120452A3 (zh) | 更新数据的方法和控制装置 | |
CN103295296A (zh) | 利用嵌入式主板控制门禁系统的方法和嵌入式主板 | |
CN101887539A (zh) | 一种按周期统计员工出勤情况的技术 | |
CN102620948B (zh) | 抽水蓄能机组故障智能分析方法及其系统 | |
CN105306581A (zh) | 一种基于路由器和云盘数据同步的方法 | |
CN102063588A (zh) | 一种计算机终端网络安全防护的控制方法和系统 | |
CN103685233A (zh) | 一种基于Windows内核驱动的木马监测方法 | |
CN105718243A (zh) | Erp系统中数据批量操作的方法和系统 | |
CN103164602A (zh) | 药房贵重、特殊药品管理方法 | |
CN104408629A (zh) | 网络购物监控方法、系统及包含该系统的终端设备 | |
CN104699551B (zh) | 一种数据恢复方法及云端服务器 | |
CN104360899B (zh) | 一种进程管理系统及管理方法 | |
CN104123205B (zh) | 一种检测cpu超频工作状态的方法及装置 | |
CN102737184A (zh) | 一种安全显示自定义信息的方法 | |
CN109655647A (zh) | 一种电能表的异常事件记录方法 | |
CN103886413A (zh) | 一种基于云计算的动物防疫信息监管方法 | |
CN102638365B (zh) | 一种网管海量设备自动发现的实现方法 | |
CN103747085A (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 |