CN103064704B - 一种基于进程标识的软件窗口全生命周期管理方法 - Google Patents

一种基于进程标识的软件窗口全生命周期管理方法 Download PDF

Info

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
Application number
CN201210552577.4A
Other languages
English (en)
Other versions
CN103064704A (zh
Inventor
王晖
杨宝铭
靳婷
李贤玉
张伟
张鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
FOURTH RESEARCH INSTITUTE OF SECOND ARTILLERY EQUIPMENT ACADEMY OF PLA
Original Assignee
FOURTH RESEARCH INSTITUTE OF SECOND ARTILLERY EQUIPMENT ACADEMY OF PLA
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by FOURTH RESEARCH INSTITUTE OF SECOND ARTILLERY EQUIPMENT ACADEMY OF PLA filed Critical FOURTH RESEARCH INSTITUTE OF SECOND ARTILLERY EQUIPMENT ACADEMY OF PLA
Priority to CN201210552577.4A priority Critical patent/CN103064704B/zh
Publication of CN103064704A publication Critical patent/CN103064704A/zh
Application granted granted Critical
Publication of CN103064704B publication Critical patent/CN103064704B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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:清理资源后,进程退出。
CN201210552577.4A 2012-12-19 2012-12-19 一种基于进程标识的软件窗口全生命周期管理方法 Active CN103064704B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101996072A (zh) * 2009-08-21 2011-03-30 联想(北京)有限公司 一种操作系统的窗口管理方法及计算机
CN102662738A (zh) * 2012-03-15 2012-09-12 奇智软件(北京)有限公司 多进程管理方法与装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
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