CN103197842A - 一种应用程序窗口的控制方法及装置 - Google Patents
一种应用程序窗口的控制方法及装置 Download PDFInfo
- Publication number
- CN103197842A CN103197842A CN2013101313988A CN201310131398A CN103197842A CN 103197842 A CN103197842 A CN 103197842A CN 2013101313988 A CN2013101313988 A CN 2013101313988A CN 201310131398 A CN201310131398 A CN 201310131398A CN 103197842 A CN103197842 A CN 103197842A
- Authority
- CN
- China
- Prior art keywords
- window
- application program
- subwindow
- thread
- message
- 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
Images
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本发明的实施方式提供了一种应用程序窗口的控制方法。该方法包括:将运行的至少两个应用程序的相应窗口以子窗口的形式挂接于同一主窗口的不同标签页中;对所述主窗口的标签切换操作进行监测;如果监测到标签切换操作,隐藏标签切换操作前处于显示状态的子窗口,且停止该子窗口中运行的应用程序的窗口画面更新操作;以及,显示切换到的子窗口,且开启该子窗口中运行的应用程序的窗口画面更新操作。通过在监测到窗口切换操作时,停止隐藏的窗口中运行的应用程序的画面更新操作、开启显示的窗口中运行的应用程序的画面更新操作,达到了既不影响用户体验,又能够节省系统资源的目的。此外,本发明的实施方式提供了一种应用程序窗口的控制装置。
Description
技术领域
本发明的实施方式涉及应用程序窗口领域,更具体地,本发明的实施方式涉及一种应用程序窗口的控制方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述可包括可以探究的概念,但不一定是之前已经想到或者已经探究的概念。因此,除非在此指出,否则在本部分中描述的内容对于本申请的说明书和权利要求书而言不是现有技术,并且并不因为包括在本部分中就承认是现有技术。
应用程序在运行过程中,其功能逻辑计算和窗口的画面更新等将占用一定CPU、内存、显存等系统资源。
在某些应用场景下,用户可能会有多个应用程序同时运行的需求。例如,网络游戏应用场景,玩家可能常常需要同时打开多个游戏客户端。在这种情况下,其功能逻辑计算和窗口的画面更新可能会占满系统资源导致客户端无法顺畅的运行。
发明内容
分析用户在多个应用程序同时运行时的行为,在任意时刻,用户的关注焦点往往只是当前正在被操作的应用程序的窗口,而其他非焦点应用程序的窗口的画面很少被用户所关注。然而,恰恰是这些非焦点应用程序的窗口画面的更新,消耗了大量的系统资源。
但是,由于缺乏对运行的多个应用程序的窗口及其画面更新的统一控制,现有技术无法解决如何在不影响用户运行多个应用程序的体验的情况下,减少运行的多个应用程序的窗口画面更新对系统资源占用的问题。
因此在现有技术中,运行的多个应用程序的窗口画面更新对系统资源的占用是非常令人烦恼的问题。
为此,非常需要一种改进的应用程序的窗口的控制方法,以实现在不影响用户运行多个应用程序的体验的情况下,减少运行的多个应用程序的窗口画面更新对系统资源的占用。
在本上下文中,本发明的实施方式期望提供一种应用程序窗口的控制方法及装置。
在本发明实施方式的第一方面中,提供了一种应用程序窗口的控制方法,例如,可以包括:
将运行的至少两个应用程序的相应窗口以子窗口的形式挂接于同一主窗口的不同标签页中;
对所述主窗口的标签切换操作进行监测;
如果监测到标签切换操作,隐藏标签切换操作前处于显示状态的子窗口,且停止该子窗口中运行的应用程序的窗口画面更新操作;以及,
显示切换到的子窗口,且开启该子窗口中运行的应用程序的窗口画面更新操作。
可选地,所述隐藏标签切换操作前处于显示状态的子窗口,且停止该子窗口中运行的应用程序的窗口画面更新操作可以包括:
从保存的子窗口信息中,查询标签切换操作前处于显示状态的子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID,该应用程序对应的进程和/或线程和/或子窗口为第一对象;
根据该第一对象ID,向所述第一对象发送隐藏窗口且停止窗口画面更新操作的消息,使切换操作前处于显示状态的子窗口中运行的应用程序对应的进程和/或线程根据该消息隐藏窗口且停止窗口画面更新操作;
其中所述显示切换到的子窗口,且开启该子窗口中运行的应用程序的窗口画面更新操作可以包括:
从预先保存的子窗口信息中,查询切换到的子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID,该应用程序对应的进程和/或线程和/或子窗口为第二对象;
根据第二对象ID,向所述第二对象发送显示窗口且开启窗口画面更新操作的消息,使切换到的子窗口中运行的应用程序对应的进程和/或线程根据该消息显示窗口且开启窗口画面更新操作。
可选地,所述将运行的至少两个应用程序的相应窗口以子窗口的形式挂接于同一主窗口的不同标签页中具体实现可以为:
如果有应用程序运行的请求,判断是否已存在包含标签页的主窗口;
如果不存在,创建包含标签页的主窗口;
执行挂接步骤,包括:创建与该应用程序对应的进程和/或线程以运行该应用程序,向该应用程序对应的进程和/或线程发送设置该主窗口为父窗口的消息,使该应用程序对应的进程和/或线程根据消息设置该主窗口为父窗口,通过该设置使该应用程序的窗口以子窗口的形式挂接于该主窗口的空闲标签页中,并把该应用程序对应的进程和/或线程和/或子窗口的ID保存于子窗口信息中;
判断是否还有应用程序运行的请求,如果有,返回到执行挂接步骤。
可选地,其中所述判断是否已存在包含标签页的主窗口可以在应用程序运行的请求并非由主窗口中的控件触发时进行判断。
可选地,该方法还可以包括:
如果有针对某一子窗口的分离请求,根据针对该子窗口的分离请求,确定该子窗口所挂接的源主窗口、请求合并到的目标主窗口及该子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID;
判断是否存在所述目标主窗口,如果不存在,创建包含标签页的目标主窗口;
将该子窗口所挂接的标签页从所述源主窗口中删除,同时,根据进程和/或线程和/或子窗口的ID,向该进程和/或线程发送设置目标主窗口为父窗口的消息,使该进程和/或线程根据该消息设置目标主窗口为父窗口,通过该设置使该应用程序的窗口以子窗口的形式挂接于该目标主窗口的空闲标签页中。
可选地,该方法还可以包括:
如果从所述应用程序对应的进程和/或线程接收到高亮提示的消息,确定该应用程序的窗口所挂接的主窗口;
判断该应用程序的窗口所挂接的主窗口是否处于激活状态;
如果否,将该应用程序的窗口所挂接的主窗口设置为高亮显示;
判断该应用程序的窗口所挂接的标签页是否处于激活状态;
如果否,将该应用程序的窗口所挂接的标签页的标签设置为高亮显示。
可选地,该方法还可以包括:
如果从所述应用程序对应的进程和/或线程接收到窗口属性变化的消息,确定该应用程序的窗口所挂接的主窗口;
对该主窗口进行与所述窗口属性变化对应的属性设置。
可选地,该方法还可以包括:
如果从所述应用程序对应的进程和/或线程接收到用户设置的消息,确定该应用程序的窗口所挂接的主窗口;
查找出该主窗口中的其他子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID;
根据该主窗口中的其他子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID,向所述其他子窗口中运行的应用程序对应的进程和/或线程发送该用户设置的消息,使所述其他子窗口中运行的应用程序对应的进程和/或线程根据该消息进行用户设置。
可选地,所述消息可以通过主窗口与其中的子窗口之间的缓存消息队列进行通信;
还设置有超时参数,当所述消息传输时间超过所述超时参数时,根据预设发送规则,重新发送所述消息。
可选地,所述消息为特定消息时,该特定消息可以通过主窗口与其中的子窗口之间的特定缓存消息队列进行阻塞式通信。
可选地,所述消息的格式可以为与消息内容对应的特定格式;
所述特定格式可以由消息头标识;
所述消息在接收后,根据消息头标识,采用与消息头标识对应的解析函数进行解析后,获得消息内容。
在本发明实施方式的第二方面中,提供了一种应用程序窗口的控制装置,例如,可以包括:
创建单元:配置用于将运行的至少两个应用程序的相应窗口以子窗口的形式挂接于同一主窗口的不同标签页中;
监测单元:配置用于对所述主窗口的标签切换操作进行监测;
执行单元:配置用于如果监测到标签切换操作,隐藏标签切换操作前处于显示状态的子窗口,且停止该子窗口中运行的应用程序的窗口画面更新操作;以及,显示切换到的子窗口,且开启该子窗口中运行的应用程序的窗口画面更新操作。
可选地,所述执行单元:可以配置用于从保存的子窗口信息中,查询标签切换操作前处于显示状态的子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID,该应用程序对应的进程和/或线程和/或子窗口为第一对象;根据该第一对象ID,向所述第一对象发送隐藏窗口且停止窗口画面更新操作的消息,使切换操作前处于显示状态的子窗口中运行的应用程序对应的进程和/或线程根据该消息隐藏窗口且停止窗口画面更新操作;从预先保存的子窗口信息中,查询切换到的子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID,该应用程序对应的进程和/或线程和/或子窗口为第二对象;根据第二对象ID,向所述第二对象发送显示窗口且开启窗口画面更新操作的消息,使切换到的子窗口中运行的应用程序对应的进程和/或线程根据该消息显示窗口且开启窗口画面更新操作。
可选地,所述创建单元:可以配置用于如果有应用程序运行的请求,判断是否已存在包含标签页的主窗口;如果不存在,创建包含标签页的主窗口;执行挂接步骤,包括:创建与该应用程序对应的进程和/或线程以运行该应用程序,向该应用程序对应的进程和/或线程发送设置该主窗口为父窗口的消息,使该应用程序对应的进程和/或线程根据消息设置该主窗口为父窗口,通过该设置使该应用程序的窗口以子窗口的形式挂接于该主窗口的空闲标签页中,并把该应用程序对应的进程和/或线程和/或子窗口的ID保存于子窗口信息中;判断是否还有应用程序运行的请求,如果有,返回到执行挂接步骤。
可选地,所述创建单元:可以配置用于在应用程序运行的请求并非由主窗口中的控件触发时,进行是否已存在包含标签页的主窗口的判断。
可选地,该装置还可以包括:
分离合并单元:可以配置用于如果有针对某一子窗口的分离请求,根据针对该子窗口的分离请求,确定该子窗口所挂接的源主窗口、请求合并到的目标主窗口及该子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID;判断是否存在所述目标主窗口,如果不存在,创建包含标签页的目标主窗口;将该子窗口所挂接的标签页从所述源主窗口中删除,同时,根据进程和/或线程和/或子窗口的ID,向该进程和/或线程发送设置目标主窗口为父窗口的消息,使该进程和/或线程根据该消息设置目标主窗口为父窗口,通过该设置使该应用程序的窗口以子窗口的形式挂接于该目标主窗口的空闲标签页中。
可选地,该装置还可以包括:
高亮显示单元:可以配置用于如果从所述应用程序对应的进程和/或线程接收到高亮提示的消息,确定该应用程序的窗口所挂接的主窗口;判断该应用程序的窗口所挂接的主窗口是否处于激活状态;如果否,将该应用程序的窗口所挂接的主窗口设置为高亮显示;判断该应用程序的窗口所挂接的标签页是否处于激活状态;如果否,将该应用程序的窗口所挂接的标签页的标签设置为高亮显示。
可选地,该装置还可以包括:
窗口属性设置单元:可以配置用于如果从所述应用程序对应的进程和/或线程接收到窗口属性变化的消息,确定该应用程序的窗口所挂接的主窗口;对该主窗口进行与所述窗口属性变化对应的属性设置。
可选地,该装置还可以包括:
用户设置单元:可以配置用于如果从所述应用程序对应的进程和/或线程接收到用户设置的消息,确定该应用程序的窗口所挂接的主窗口;查找出该主窗口中的其他子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID;根据该主窗口的其他子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID,向所述其他子窗口中运行的应用程序对应的进程和/或线程发送该用户设置的消息,使所述其他子窗口中运行的应用程序对应的进程和/或线程根据该消息进行用户设置。
根据本发明实施方式的一种应用程序窗口的控制方法及装置,利用了包含标签页的窗口,将运行的至少两个应用程序的相应窗口以子窗口的形式挂接于同一主窗口的不同标签页中,可以在当前时刻仅显示正在被操作的应用程序的窗口,但是,在当前时刻仅显示正在被操作的应用程序的窗口并不能解决系统资源被大量占用的问题,因此,本发明提出在监测到窗口切换操作时,停止隐藏的窗口中运行的应用程序的画面更新操作、开启显示的窗口中运行的应用程序的画面更新操作,对于用户来说,由于其仅关注当前正在被操作的应用程序的窗口,不会感觉到对隐藏的窗口画面更新操作停止的变化,达到了既不影响用户体验,又能够节省系统资源的目的;而且,由于节省了如CPU、GPU(图形处理器)等系统资源,还为提高处于显示状态的应用程序的窗口的画面效果、更高的显示分辨率提供了空间。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了适于实现本发明实施方式的示例性计算系统100的框图;
图2示意性地示出了现有技术中运行的多个应用程序的窗口示意图;
图3示意性地示出了本发明对运行的多个应用程序的窗口统一控制示意图;
图4示意性地示出了根据本发明一实施例的方法流程图;
图5示意性地示出了根据本发明又一实施例的消息交互示意图;
图6示意性地示出了根据本发明再一实施例的消息交互示意图;
图7示意性地示出了根据本发明一实施例的装置结构图;
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
图1示出了适于实现本发明实施方式的示例性计算系统100的框图。如图1所示,计算系统100可以包括:中央处理单元(CPU)101、随机存取存储器(RAM)102、只读存储器(ROM)103、系统总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和显示器114。这些设备中,与系统总线104耦合的有CPU 101、RAM 102、ROM 103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及显示器114与显示控制器109耦合。应当理解,图1所述的结构框图仅仅是为了示例的目的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况增加或减少某些设备。
本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举示例)例如可以包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络(包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法的流程图和设备(或系统)的框图描述本发明的实施方式。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置的产品。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
根据本发明的实施方式,提出了一种应用程序窗口的控制方法和装置。
在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
本发明人发现,用户关注的焦点往往仅是当前正在被操作的应用程序的窗口,如果利用包含标签页的窗口,可以仅显示当前正在被操作的应用程序的窗口、隐藏非焦点应用程序的窗口,但是包含标签页的窗口的显示/隐藏的切换并不能解决减少系统资源占用的问题,因此本发明人提出,在监测到标签切换操作时,停止隐藏的窗口中运行的应用程序的画面更新操作、开启显示的窗口中运行的应用程序的画面更新操作,可以在用户无感的情况下,停止非焦点应用程序的窗口画面更新操作,达到节省资源的目的。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
首先参考图2,为现有技术运行的多个应用程序的相应窗口,该运行的多个应用程序的相应窗口的画面更新操作占用了大量的系统资源,应用本发明方法实施例,可以将运行的多个应用程序的相应窗口进行统一控制,挂接于如图3所示的包含标签页的窗口,对显示的应用程序的窗口开启画面更新操作,对隐藏的应用程序的窗口停止画面更新操作,可以在不影响用户体验的情况下,减少运行的应用程序的窗口画面更新操作对系统资源的占用。
示例性方法
下面结合图3的应用场景,参考图4来描述根据本发明示例性实施方式的应用程序窗口的控制方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
参见图4,为本发明提供的一种应用程序窗口的控制方法流程图,如图所示,该方法可以包括:
S401、将运行的至少两个应用程序的相应窗口以子窗口的形式挂接于同一主窗口的不同标签页中;
S402、对所述主窗口的标签切换操作进行监测;
S403、如果监测到标签切换操作,隐藏标签切换操作前处于显示状态的子窗口,且停止该子窗口中运行的应用程序的窗口画面更新操作;以及,
S404、显示切换到的子窗口,且开启该子窗口中运行的应用程序的窗口画面更新操作。
应用上述实施例方法,由于将运行的至少两个应用程序的相应窗口以子窗口的形式挂接于同一主窗口的不同标签页中,可以在当前时刻仅显示正在被操作的应用程序的窗口,而且,监测到窗口切换操作时,停止隐藏的窗口中运行的应用程序的画面更新操作、开启显示的窗口中运行的应用程序的画面更新操作,对于用户来说,由于其仅关注当前正在被操作的应用程序的窗口,不会感觉到对隐藏的窗口画面更新操作停止的变化,因此,可以在不影响用户运行多个应用程序的体验的情况下,节省系统资源。
下面,以下述实施方式为例对本发明方法的具体实现进行详细说明:
例如,步骤S401将运行的至少两个应用程序的相应窗口以子窗口的形式挂接于同一主窗口的不同标签页中的具体实现可以为:
如果有应用程序运行的请求,判断是否已存在包含标签页的主窗口;
如果不存在,创建包含标签页的主窗口;
执行挂接步骤,包括:创建与该应用程序对应的进程和/或线程以运行该应用程序,向该应用程序对应的进程和/或线程发送设置该主窗口为父窗口的消息,使该应用程序对应的进程和/或线程根据消息设置该主窗口为父窗口,通过该设置使该应用程序的窗口以子窗口的形式挂接于该主窗口的空闲标签页中,并把该应用程序对应的进程和/或线程和/或子窗口的ID保存于子窗口信息中;
判断是否还有应用程序运行的请求,如果有,返回到执行挂接步骤。
在该具体实现方式中,根据应用程序的运行请求,创建对应的进程和/或线程,相当于在运行方面,采取了运行的多个应用程序分别对应独立的进程和/或线程的运行机制。通过向该应用程序对应的进程和/或线程发送相应消息实现子窗口的挂接,相当于在通信方面,采取了主进程与运行的多个应用程序对应的独立的进程和/或线程的通信的机制。因此,不仅运行机制稳定性较好,而且通信机制简单高效。
考虑到采取多进程方式更能够使运行的各个应用程序以及窗口的资源、逻辑独立,可以防止单个应用程序运行的崩溃而导致其他应用程序的运行受到影响,因此,根据应用程序的运行请求,创建对应的进程而非线程的方式为更加优选方式。
还需要说明的是,所述判断是否已存在包含标签页的主窗口可以在应用程序运行的请求并非由主窗口中的控件触发时进行判断。例如:
在本发明具体实施时,应用程序运行的请求的触发至少可以包括以下两种示例性方式:
方式一:由应用程序执行文件被点击触发应用程序运行的请求,由于该应用程序运行请求被触发事件不与包含标签页的主窗口相关,不能确定是否已存在包含标签页的主窗口,因此,需要进行是否已存在包含标签页的主窗口的判断;
方式二:由主窗口中的特定控件被点击触发应用程序运行的请求,由于该应用程序运行请求被触发事件与已存在的包含标签页的主窗口相关,可以确定已存在包含标签页的主窗口,因此,无需进行是否已存在包含标签页的主窗口的判断。
例如,本发明步骤S402所述对主窗口的标签切换操作进行监测,可以根据标签切换操作的实现方式采取相应的监测手段,例如:主窗口的标签切换操作可以由鼠标对标签页的点击触发,也可以由按下功能热键的状态触发,相应地,对主窗口的标签切换操作进行监测可以包括对鼠标对标签页的点击的监测、对按下功能热键的状态的监测。具体监测的手段根据标签切换操作的实现方式进行设定。
再例如,本发明步骤S403所述隐藏标签切换操作前处于显示状态的子窗口,且停止该子窗口中运行的应用程序的窗口画面更新操作可以包括:
从保存的子窗口信息中,查询标签切换操作前处于显示状态的子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID,该应用程序对应的进程和/或线程和/或子窗口为第一对象;
根据该第一对象ID,向所述第一对象发送隐藏窗口且停止窗口画面更新操作的消息,使切换操作前处于显示状态的子窗口中运行的应用程序对应的进程和/或线程根据该消息隐藏窗口且停止窗口画面更新操作;
步骤S404所述显示切换到的子窗口,且开启该子窗口中运行的应用程序的窗口画面更新操作可以包括:
从预先保存的子窗口信息中,查询切换到的子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID,该应用程序对应的进程和/或线程和/或子窗口为第二对象;
根据第二对象ID,向所述第二对象发送显示窗口且开启窗口画面更新操作的消息,使切换到的子窗口中运行的应用程序对应的进程和/或线程根据该消息显示窗口且开启窗口画面更新操作。
在该实施例中,监测到标签切换操作后,通过与相应子窗口中的应用程序的进程和/或线程发送相应的控制消息实现对窗口隐藏、显示、窗口画面更新操作关闭与开启切换的控制。可见,在运行方面,同样采取了运行的多个应用程序分别对应独立的进程和/或线程的运行机制,在通信方面,同样采取了主进程与运行的多个应用程序对应的独立的进程和/或线程的通信的机制,因此,具有运行机制稳定性好,通信机制简单高效的优点。当然,在本发明中并不限制其他隐藏窗口、显示窗口、关闭或开启窗口画面更新操作的控制方法,上述实施例仅为示意性说明。
在本发明另一实施例中,还可以将所述运行的至少两个应用程序的相应窗口,从挂接于同一主窗口分离为挂接于不同的主窗口。相当于可以根据用户实际需求,达到分组显示的效果。例如,具体实现可以包括:
如果有针对某一子窗口的分离请求,根据针对该子窗口的分离请求,确定该子窗口所挂接的源主窗口、请求合并到的目标主窗口及该子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID;
判断是否存在所述目标主窗口,如果不存在,创建包含标签页的目标主窗口;
将该子窗口所挂接的标签页从所述源主窗口中删除,同时,根据进程和/或线程和/或子窗口的ID,向该进程和/或线程发送设置目标主窗口为父窗口的消息,使该进程和/或线程根据该消息设置目标主窗口为父窗口,通过该设置使该应用程序的窗口以子窗口的形式挂接于该目标主窗口的空闲标签页中。
需要说明的是,在将该子窗口所挂接的标签页从所述源主窗口中删除之后,还可以向所述源主窗口的另一子窗口中运行的应用程序对应的进程和/或线程发送显示窗口及开启窗口画面更新操作的消息,使该另一子窗口中运行的应用程序对应的进程和/或线程根据该消息显示窗口且开启窗口画面更新操作;
和/或者,
所述向该进程和/或线程发送设置目标主窗口为父窗口的消息,还可以包括显示窗口及开启窗口画面更新操作的消息,使该进程和/或线程根据该消息在目标主窗口中显示子窗口及开启窗口画面更新操作,同时,向目标主窗口中之前显示的子窗口中运行的应用程序对应的进程和/或线程发送隐藏窗口及停止窗口画面更新操作的消息,使目标主窗口中之前显示的子窗口中运行的应用程序对应的进程和/或线程根据该消息隐藏窗口及停止窗口画面更新操作。
在该实施例中:
所述针对某一子窗口的分离请求可以由用户对标签页的拖拽操作触发,也可以由用户对标签页的功能菜单的分离选项的点击操作触发,或者其他触发形式,在本发明中并不限制。因此,是否有子窗口的分离请求可以根据子窗口的分离请求的触发操作相应进行监测获知。所述根据针对该子窗口的分离请求,确定该子窗口所挂接的源主窗口、请求合并到的目标主窗口,可以通过对子窗口的分离请求触发操作进行监测确定。例如:
如果监测到用户对标签页的拖拽操作触发子窗口的分离请求,则可以确定被拖拽的标签页所在主窗口为该子窗口所挂接的源主窗口,再判断被拖拽的标签页被拖拽到的位置,如果拖拽到已存在的另一主窗口位置区域,则可以确定请求合并到的目标主窗口为该已存在的另一主窗口,如果拖拽到的位置不是任何主窗口的位置区域,则可以确定请求合并到的目标主窗口目前不存在。
或者,
如果监测到用户对标签页的功能菜单的分离选项的点击操作触发子窗口的分离请求,则可以确定被点击的标签页所在主窗口为该子窗口所挂接的源主窗口,再提取分离选项中被选中的参数,根据该参数确定请求合并到的目标主窗口,例如,该参数可以为目标主窗口的标识,或者,为新建目标主窗口选项。
当然,还可以通过其他方式确定源主窗口及目标主窗口,在本发明中并不进行限制。
在本发明中,由于可能存在多个主窗口,仅有一主窗口处于激活状态,且主窗口中仅显示切换到的标签页的子窗口,其他子窗口被隐藏,仅以标签页的标签显示,因此,当被隐藏的子窗口中运行的应用程序对应的进程和/或线程在执行到重要逻辑事件时,可能产生高亮方式提示用户的需求,为满足这一需求,本发明还可以包括:
如果从所述应用程序对应的进程和/或线程接收到高亮提示的消息,确定该应用程序的窗口所挂接的主窗口;
判断该应用程序的窗口所挂接的主窗口是否处于激活状态;
如果否,将该应用程序的窗口所挂接的主窗口设置为高亮显示;
判断该应用程序的窗口所挂接的标签页是否处于激活状态;
如果否,将该应用程序的窗口所挂接的标签页的标签设置为高亮显示。
另外,考虑到主窗口应该与子窗口的变化相适配,例如,窗口尺寸等,因此,本发明还提出:
如果从所述应用程序对应的进程和/或线程接收到窗口属性变化的消息,确定该应用程序的窗口所挂接的主窗口;对该主窗口进行与所述窗口属性变化对应的属性设置。
或者,某一子窗口中运行的应用程序对应的进程和/或线程进行的用户设置同样需要应用到主窗口的其他子窗口中,例如:用户对游戏分辨率的设置不仅在当前被操作的窗口生效,还应在主窗口的其他子窗口中生效,因此,本发明还提出:
如果从所述应用程序对应的进程和/或线程接收到用户设置的消息,确定该应用程序的窗口所挂接的主窗口;
查找出该主窗口中的其他子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID;
根据该主窗口中的其他子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID,向所述其他子窗口中运行的应用程序对应的进程和/或线程发送该用户设置的消息,使所述其他子窗口中运行的应用程序对应的进程和/或线程根据该消息进行用户设置。
为了使本发明的具体实施方式更加易于理解,下面结合图5和图6所示的消息交互示意图,对消息交互过程进行详细说明。例如,如图5及图6所示的主进程501为应用本发明方法的执行主体,子窗口中运行的应用程序可以由对应的进程和/或线程502运行。主进程501可以根据应用程序对应的进程和/或线程和/或子窗口的ID,向应用程序对应的进程和/或线程502发送消息。例如,主进程发送消息的具体实现可以是以下两种方式的任意一种或者组合:
发送方式一:参见图5,可以根据应用程序对应的进程和/或线程的ID,由主进程501经由进程间的缓存消息队列直接向应用程序的进程和/或线程502发送消息;
需要说明的是,应用程序对应的进程和/或线程的ID,在该进程和/或线程被创建时,由操作系统分配,可以在操作系统分配ID时,对该应用程序对应的进程和/或线程的ID进行记录,例如,可以将该应用程序对应的进程和/或线程的ID与该应用程序对应的子窗口ID,对应地记录到子窗口信息503中;
和/或者,
发送方式二:参见图6,可以根据应用程序对应的子窗口的ID,由主进程501向应用程序对应的子窗口的主窗口504发送消息,消息中携带目标子窗口ID、由主窗口504自带的窗口通信机制,根据消息携带的目标子窗口ID经由主窗口与子窗口之间的缓存消息队列向应用程序对应的子窗口发送消息,在消息到达子窗口时,由子窗口自带的窗口通信机制将消息发送到在其中运行的应用程序对应的进程和/或线程502。
同理,例如,主进程从应用程序对应的进程和/或线程接收消息,可以是以下两种方式的任意一种或者组合:
接收方式一:参见图5,主进程501可以经由进程间的缓存消息队列直接接收应用程序对应的进程和/或线程502发送的消息;
和/或者,
接收方式二:参见图6,主进程501可以通过主窗口504从应用程序对应的进程和/或线程502接收消息;
在该接收方式中,应用程序对应的进程和/或线程502可以首先通过窗口自带的窗口通信机制将消息经由子窗口与主窗口之间的缓存消息队列发送到主窗口504,再由主窗口504发送到主进程501。
上述消息交互过程的说明仅为本发明的可选实施方式,在实际应用中,还可以采用其他的多进程/线程通信机制方式,例如:socket通信、LPC、共享内存加事件通知等方式。考虑到本发明主要对窗口及窗口画面更新进行控制,交互需求往往都是窗口之间的消息交互,因此,采用上述发送、接收方式二,使所述消息通过主窗口与其中的子窗口之间的缓存消息队列进行通信,不仅研发效率较高,而且通信效率也相对较高,为优选实施方式。
并且,还可以设置有超时参数,当所述消息传输时间超过所述超时参数时,根据预设发送规则,重新发送消息。
其中,所述预设发送规则,可以根据实施需要进行设定,例如,预设发送规则可以为:预设可重新发送的消息类型,如果所述消息传输时间超过超时参数且符合可重新发送的消息类型,则重新发送所述消息,否则拒绝重新发送;或者,预设发送规则可以为:预设过度超时时长,如果所述消息传输时间超过超时参数,且未超出预设过度超时时长,则重新发送所述消息,否则拒绝重新发送;或者还可以有其他根据实施需要设定的预设发送规则,在本发明中并不进行限制。
再具体地,例如可以采用SendMessageTimeout函数发送消息,通过设定该函数的超时参数来防止目标窗口未能响应消息而带来的阻塞。当然,也可以使用其他函数发送消息,例如,传统的SendMessage或者PostMessage等,在本发明中并不限制。考虑到窗口画面更新对帧率、效率要求较高,不适于采取完全阻塞的交互机制,因此,采用SendMessageTimeout函数发送消息为优选方式。
而且,在所述消息为特定消息时,该特定消息可以通过主窗口与其中的子窗口之间的特定缓存消息队列进行阻塞式通信。该特定缓存消息队列的阻塞式通信,主要用于针对应用程序的某些特定功能,即必须在确定接收方通信操作完成才可结束该次通信的功能需求。
在本发明中,所述消息的格式可以为与消息内容对应的特定格式;所述特定格式可以由消息头标识;所述消息在接收后,可以根据消息头标识,采用与消息头标识对应的解析函数进行解析后,获得消息内容。
例如,所述消息可以为WM_COPYDATA类型的数据包,可以在数据包上定义与消息内容对应的特定格式,由数据包的消息头标识特定格式,进行功能的区分,通信双方可以根据消息头标识的特定格式进行解析。通过对消息的特定格式的预设,可以在接收端预先保存特定格式与解析函数的映射关系。在接收消息后,可以根据消息头的标识将数据包分发到对应的解析函数进行处理。可见,由消息头标识特定格式,根据消息头标识,采用与消息头标识对应的解析函数进行解析获得消息内容,不仅实现过程简单高效,而且可扩展性很强。
还需要说明的是,本文所述的包含标签页的窗口可以采取Win32提供的包含标签页的窗口实现,也可以采取例如WebKit提供的包含标签页的窗口实现,或者其他技术实现,在本发明中并不进行限制。
示例性装置
在介绍了本发明示例性实施方式的方法之后,接下来,参考图7来描述本发明示例性实施方式的一种应用程序窗口的控制装置。
参见图7,为本发明提供的一种应用程序窗口的控制装置结构示意图,如图所示,该装置可以包括:
创建单元701:可以配置用于将运行的至少两个应用程序的相应窗口以子窗口的形式挂接于同一主窗口的不同标签页中;
监测单元702:可以配置用于对所述主窗口的标签切换操作进行监测;
执行单元703:可以配置用于如果监测到标签切换操作,隐藏标签切换操作前处于显示状态的子窗口,且停止该子窗口中运行的应用程序的窗口画面更新操作;以及,显示切换到的子窗口,且开启该子窗口中运行的应用程序的窗口画面更新操作。
实施该装置实施例,由于创建单元701将运行的至少两个应用程序的相应窗口以子窗口的形式挂接于同一主窗口的不同标签页中,可以在当前时刻仅显示正在被操作的应用程序的窗口,而且,监测单元702可以用于监测窗口切换操作,在监测到窗口切换操作时,由执行单元703停止隐藏的窗口中运行的应用程序的画面更新操作、开启显示的窗口中运行的应用程序的画面更新操作,对于用户来说,由于其仅关注当前正在被操作的应用程序的窗口,不会感觉到对隐藏的窗口画面更新操作停止的变化,因此,可以在不影响用户运行多个应用程序的体验的情况下,节省系统资源。
下面,对本发明装置的具体实现进行详细说明:
例如,该装置的执行单元703:具体可以配置用于从保存的子窗口信息中,查询标签切换操作前处于显示状态的子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID,该应用程序对应的进程和/或线程和/或子窗口为第一对象;根据该第一对象ID,向所述第一对象发送隐藏窗口且停止窗口画面更新操作的消息,使切换操作前处于显示状态的子窗口中运行的应用程序对应的进程和/或线程根据该消息隐藏窗口且停止窗口画面更新操作;从预先保存的子窗口信息中,查询切换到的子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID,该应用程序对应的进程和/或线程和/或子窗口为第二对象;根据第二对象ID,向所述第二对象发送显示窗口且开启窗口画面更新操作的消息,使切换到的子窗口中运行的应用程序对应的进程和/或线程根据该消息显示窗口且开启窗口画面更新操作。
再例如,该装置的创建单元701:可以配置用于如果有应用程序运行的请求,判断是否已存在包含标签页的主窗口;如果不存在,创建包含标签页的主窗口;执行挂接步骤,包括:创建与该应用程序对应的进程和/或线程以运行该应用程序,向该应用程序对应的进程和/或线程发送设置该主窗口为父窗口的消息,使该应用程序对应的进程和/或线程根据消息设置该主窗口为父窗口,通过该设置使该应用程序的窗口以子窗口的形式挂接于该主窗口的空闲标签页中,并把该应用程序对应的进程和/或线程和/或子窗口的ID保存于子窗口信息中;判断是否还有应用程序运行的请求,如果有,返回到执行挂接步骤。
具体地,其中所述创建单元701:可以配置用于在应用程序运行的请求并非由主窗口中的控件触发时,进行是否已存在包含标签页的主窗口的判断。
例如,该装置还可以包括:分离合并单元704:可以配置用于如果有针对某一子窗口的分离请求,根据针对该子窗口的分离请求,确定该子窗口所挂接的源主窗口、请求合并到的目标主窗口及该子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID;判断是否存在所述目标主窗口,如果不存在,创建包含标签页的目标主窗口;将该子窗口所挂接的标签页从所述源主窗口中删除,同时,根据进程和/或线程和/或子窗口的ID,向该进程和/或线程发送设置目标主窗口为父窗口的消息,使该进程和/或线程根据该消息设置目标主窗口为父窗口,通过该设置使该应用程序的窗口以子窗口的形式挂接于该目标主窗口的空闲标签页中。
和/或者,
该装置还可以包括:高亮显示单元705:可以配置用于如果从所述应用程序对应的进程和/或线程接收到高亮提示的消息,确定该应用程序的窗口所挂接的主窗口;判断该应用程序的窗口所挂接的主窗口是否处于激活状态;如果否,将该应用程序的窗口所挂接的主窗口设置为高亮显示;判断该应用程序的窗口所挂接的标签页是否处于激活状态;如果否,将该应用程序的窗口所挂接的标签页的标签设置为高亮显示。
和/或者,
该装置还可以包括:窗口属性设置单元706:可以配置用于如果从所述应用程序对应的进程和/或线程接收到窗口属性变化的消息,确定该应用程序的窗口所挂接的主窗口;对该主窗口进行与所述窗口属性变化对应的属性设置。
和/或者,
该装置还可以包括:用户设置单元707:可以配置用于如果从所述应用程序对应的进程和/或线程接收到用户设置的消息,确定该应用程序的窗口所挂接的主窗口;查找出该主窗口中的其他子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID;根据该主窗口的其他子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID,向所述其他子窗口中运行的应用程序对应的进程和/或线程发送该用户设置的消息,使所述其他子窗口中运行的应用程序对应的进程和/或线程根据该消息进行用户设置。
应当注意,尽管在上文详细描述中提及了一种应用程序的窗口控制装置的若干单元,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
申请文件中提及的动词“包括”、“包含”及其词形变化的使用不排除除了申请文件中记载的那些元素或步骤之外的元素或步骤的存在。元素前的冠词“一”或“一个”不排除多个这种元素的存在。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。
Claims (19)
1.一种应用程序窗口的控制方法,包括:
将运行的至少两个应用程序的相应窗口以子窗口的形式挂接于同一主窗口的不同标签页中;
对所述主窗口的标签切换操作进行监测;
如果监测到标签切换操作,隐藏标签切换操作前处于显示状态的子窗口,且停止该子窗口中运行的应用程序的窗口画面更新操作;以及,
显示切换到的子窗口,且开启该子窗口中运行的应用程序的窗口画面更新操作。
2.根据权利要求1所述的方法,其中,所述隐藏标签切换操作前处于显示状态的子窗口,且停止该子窗口中运行的应用程序的窗口画面更新操作包括:
从保存的子窗口信息中,查询标签切换操作前处于显示状态的子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID,该应用程序对应的进程和/或线程和/或子窗口为第一对象;
根据该第一对象ID,向所述第一对象发送隐藏窗口且停止窗口画面更新操作的消息,使切换操作前处于显示状态的子窗口中运行的应用程序对应的进程和/或线程根据该消息隐藏窗口且停止窗口画面更新操作;
所述显示切换到的子窗口,且开启该子窗口中运行的应用程序的窗口画面更新操作包括:
从预先保存的子窗口信息中,查询切换到的子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID,该应用程序对应的进程和/或线程和/或子窗口为第二对象;
根据第二对象ID,向所述第二对象发送显示窗口且开启窗口画面更新操作的消息,使切换到的子窗口中运行的应用程序对应的进程和/或线程根据该消息显示窗口且开启窗口画面更新操作。
3.根据权利要求1所述的方法,其中,所述将运行的至少两个应用程序的相应窗口以子窗口的形式挂接于同一主窗口的不同标签页中具体实现为:
如果有应用程序运行的请求,判断是否已存在包含标签页的主窗口;
如果不存在,创建包含标签页的主窗口;
执行挂接步骤,包括:创建与该应用程序对应的进程和/或线程以运行该应用程序,向该应用程序对应的进程和/或线程发送设置该主窗口为父窗口的消息,使该应用程序对应的进程和/或线程根据消息设置该主窗口为父窗口,通过该设置使该应用程序的窗口以子窗口的形式挂接于该主窗口的空闲标签页中,并把该应用程序对应的进程和/或线程和/或子窗口的ID保存于子窗口信息中;
判断是否还有应用程序运行的请求,如果有,返回到执行挂接步骤。
4.根据权利要求3所述的方法,其中,所述判断是否已存在包含标签页的主窗口具体在应用程序运行的请求并非由主窗口中的控件触发时进行判断。
5.根据权利要求1所述的方法,还包括:
如果有针对某一子窗口的分离请求,根据针对该子窗口的分离请求,确定该子窗口所挂接的源主窗口、请求合并到的目标主窗口及该子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID;
判断是否存在所述目标主窗口,如果不存在,创建包含标签页的目标主窗口;
将该子窗口所挂接的标签页从所述源主窗口中删除,同时,根据进程和/或线程和/或子窗口的ID,向该进程和/或线程发送设置目标主窗口为父窗口的消息,使该进程和/或线程根据该消息设置目标主窗口为父窗口,通过该设置使该应用程序的窗口以子窗口的形式挂接于该目标主窗口的空闲标签页中。
6.根据权利要求1所述的方法,还包括:
如果从所述应用程序对应的进程和/或线程接收到高亮提示的消息,确定该应用程序的窗口所挂接的主窗口;
判断该应用程序的窗口所挂接的主窗口是否处于激活状态;
如果否,将该应用程序的窗口所挂接的主窗口设置为高亮显示;
判断该应用程序的窗口所挂接的标签页是否处于激活状态;
如果否,将该应用程序的窗口所挂接的标签页的标签设置为高亮显示。
7.根据权利要求1所述的方法,还包括:
如果从所述应用程序对应的进程和/或线程接收到窗口属性变化的消息,确定该应用程序的窗口所挂接的主窗口;
对该主窗口进行与所述窗口属性变化对应的属性设置。
8.根据权利要求1所述的方法,还包括:
如果从所述应用程序对应的进程和/或线程接收到用户设置的消息,确定该应用程序的窗口所挂接的主窗口;
查找出该主窗口中的其他子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID;
根据该主窗口中的其他子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID,向所述其他子窗口中运行的应用程序对应的进程和/或线程发送该用户设置的消息,使所述其他子窗口中运行的应用程序对应的进程和/或线程根据该消息进行用户设置。
9.根据权利要求2-8任意一项所述的方法,其中,所述消息具体通过主窗口与其中的子窗口之间的缓存消息队列进行通信;
还设置有超时参数,当所述消息传输时间超过所述超时参数时,根据预设发送规则,重新发送所述消息。
10.根据权利要求9所述的方法,其中,所述消息为特定消息时,该特定消息具体通过主窗口与其中的子窗口之间的特定缓存消息队列进行阻塞式通信。
11.根据权利要求2-8任意一项所述的方法,其中,所述消息的格式具体为与消息内容对应的特定格式;
所述特定格式具体由消息头标识;
所述消息在接收后,根据消息头标识,采用与消息头标识对应的解析函数进行解析后,获得消息内容。
12.一种应用程序窗口的控制装置,包括:
创建单元:配置用于将运行的至少两个应用程序的相应窗口以子窗口的形式挂接于同一主窗口的不同标签页中;
监测单元:配置用于对所述主窗口的标签切换操作进行监测;
执行单元:配置用于如果监测到标签切换操作,隐藏标签切换操作前处于显示状态的子窗口,且停止该子窗口中运行的应用程序的窗口画面更新操作;以及,显示切换到的子窗口,且开启该子窗口中运行的应用程序的窗口画面更新操作。
13.根据权利要求12所述的装置,其中,所述执行单元:具体配置用于从保存的子窗口信息中,查询标签切换操作前处于显示状态的子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID,该应用程序对应的进程和/或线程和/或子窗口为第一对象;根据该第一对象ID,向所述第一对象发送隐藏窗口且停止窗口画面更新操作的消息,使切换操作前处于显示状态的子窗口中运行的应用程序对应的进程和/或线程根据该消息隐藏窗口且停止窗口画面更新操作;从预先保存的子窗口信息中,查询切换到的子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID,该应用程序对应的进程和/或线程和/或子窗口为第二对象;根据第二对象ID,向所述第二对象发送显示窗口且开启窗口画面更新操作的消息,使切换到的子窗口中运行的应用程序对应的进程和/或线程根据该消息显示窗口且开启窗口画面更新操作。
14.根据权利要求12所述的装置,其中,所述创建单元:配置用于如果有应用程序运行的请求,判断是否已存在包含标签页的主窗口;如果不存在,创建包含标签页的主窗口;执行挂接步骤,包括:创建与该应用程序对应的进程和/或线程以运行该应用程序,向该应用程序对应的进程和/或线程发送设置该主窗口为父窗口的消息,使该应用程序对应的进程和/或线程根据消息设置该主窗口为父窗口,通过该设置使该应用程序的窗口以子窗口的形式挂接于该主窗口的空闲标签页中,并把该应用程序对应的进程和/或线程和/或子窗口的ID保存于子窗口信息中;判断是否还有应用程序运行的请求,如果有,返回到执行挂接步骤。
15.根据权利要求14所述的装置,其中,所述创建单元:配置用于在应用程序运行的请求并非由主窗口中的控件触发时,进行是否已存在包含标签页的主窗口的判断。
16.根据权利要求12所述的装置,还包括:
分离合并单元:配置用于如果有针对某一子窗口的分离请求,根据针对该子窗口的分离请求,确定该子窗口所挂接的源主窗口、请求合并到的目标主窗口及该子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID;判断是否存在所述目标主窗口,如果不存在,创建包含标签页的目标主窗口;将该子窗口所挂接的标签页从所述源主窗口中删除,同时,根据进程和/或线程和/或子窗口的ID,向该进程和/或线程发送设置目标主窗口为父窗口的消息,使该进程和/或线程根据该消息设置目标主窗口为父窗口,通过该设置使该应用程序的窗口以子窗口的形式挂接于该目标主窗口的空闲标签页中。
17.根据权利要求12所述的装置,还包括:
高亮显示单元:配置用于如果从所述应用程序对应的进程和/或线程接收到高亮提示的消息,确定该应用程序的窗口所挂接的主窗口;判断该应用程序的窗口所挂接的主窗口是否处于激活状态;如果否,将该应用程序的窗口所挂接的主窗口设置为高亮显示;判断该应用程序的窗口所挂接的标签页是否处于激活状态;如果否,将该应用程序的窗口所挂接的标签页的标签设置为高亮显示。
18.根据权利要求12所述的装置,还包括:
窗口属性设置单元:配置用于如果从所述应用程序对应的进程和/或线程接收到窗口属性变化的消息,确定该应用程序的窗口所挂接的主窗口;对该主窗口进行与所述窗口属性变化对应的属性设置。
19.根据权利要求12所述的装置,还包括:
用户设置单元:配置用于如果从所述应用程序对应的进程和/或线程接收到用户设置的消息,确定该应用程序的窗口所挂接的主窗口;查找出该主窗口中的其他子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID;根据该主窗口的其他子窗口中运行的应用程序对应的进程和/或线程和/或子窗口的ID,向所述其他子窗口中运行的应用程序对应的进程和/或线程发送该用户设置的消息,使所述其他子窗口中运行的应用程序对应的进程和/或线程根据该消息进行用户设置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310131398.8A CN103197842B (zh) | 2013-04-15 | 2013-04-15 | 一种应用程序窗口的控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310131398.8A CN103197842B (zh) | 2013-04-15 | 2013-04-15 | 一种应用程序窗口的控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103197842A true CN103197842A (zh) | 2013-07-10 |
CN103197842B CN103197842B (zh) | 2016-08-31 |
Family
ID=48720478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310131398.8A Active CN103197842B (zh) | 2013-04-15 | 2013-04-15 | 一种应用程序窗口的控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103197842B (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103488512A (zh) * | 2013-09-29 | 2014-01-01 | 广州创维平面显示科技有限公司 | 程序界面显示处理方法及装置 |
CN104123063A (zh) * | 2014-06-16 | 2014-10-29 | 联想(北京)有限公司 | 信息处理方法及电子设备 |
WO2016058293A1 (zh) * | 2014-10-14 | 2016-04-21 | 惠州Tcl移动通信有限公司 | 一种微件widget显示应用的方法及移动终端 |
CN106293325A (zh) * | 2016-07-26 | 2017-01-04 | 网易(杭州)网络有限公司 | 自动寻窗的方法和装置 |
CN106468994A (zh) * | 2016-08-31 | 2017-03-01 | 北京奇艺世纪科技有限公司 | 一种应用程序的处理方法和装置 |
WO2017167176A1 (zh) * | 2016-04-01 | 2017-10-05 | 腾讯科技(深圳)有限公司 | 应用程序中窗口的控制方法和装置 |
CN107787482A (zh) * | 2015-09-18 | 2018-03-09 | 谷歌有限责任公司 | 非活动窗口的管理 |
CN105516782B (zh) * | 2015-12-10 | 2018-08-14 | 四川长虹电器股份有限公司 | Android系统智能电视悬浮界面互斥功能的实现方法及系统 |
CN109074276A (zh) * | 2016-03-29 | 2018-12-21 | 微软技术许可有限责任公司 | 系统任务切换器中的选项卡 |
CN109254820A (zh) * | 2018-09-05 | 2019-01-22 | Oppo广东移动通信有限公司 | 窗口关闭方法、装置、终端及计算机可读存储介质 |
CN109388468A (zh) * | 2018-10-09 | 2019-02-26 | 威创集团股份有限公司 | 多程序窗口管理方法及装置 |
CN109710343A (zh) * | 2017-10-25 | 2019-05-03 | 北京众纳鑫海网络技术有限公司 | 计算机桌面的窗口切换方法、装置、设备以及存储介质 |
CN110765208A (zh) * | 2019-10-22 | 2020-02-07 | 成都知道创宇信息技术有限公司 | 一种数据同步方法、装置、电子设备及存储介质 |
CN111045775A (zh) * | 2019-12-10 | 2020-04-21 | 北京恒泰实达科技股份有限公司 | 一种在大屏可视化系统中高效集成第三方应用程序的方法 |
CN111191164A (zh) * | 2019-11-29 | 2020-05-22 | 泰康保险集团股份有限公司 | 一种窗口显示控制方法和装置 |
CN114546226A (zh) * | 2020-11-27 | 2022-05-27 | 北京中关村科金技术有限公司 | 窗口元素抓取方法、装置以及存储介质 |
WO2022166645A1 (zh) * | 2021-02-07 | 2022-08-11 | Oppo广东移动通信有限公司 | 应用切换方法、装置、终端及存储介质 |
CN115174483A (zh) * | 2022-04-25 | 2022-10-11 | 平安付科技服务有限公司 | 基于时间窗口的限流方法、装置、服务器和存储介质 |
CN115934210A (zh) * | 2023-03-14 | 2023-04-07 | 中航金网(北京)电子商务有限公司 | 多窗口共享对象存储实例的方法、装置及电子设备 |
CN116107845A (zh) * | 2023-04-12 | 2023-05-12 | 浙江保融科技股份有限公司 | 一种窗口对象的监测和处理方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101477476A (zh) * | 2008-01-02 | 2009-07-08 | 联想(北京)有限公司 | 多操作系统之间切换显示的控制方法和计算机系统 |
CN101587489A (zh) * | 2009-06-12 | 2009-11-25 | 北京搜狗科技发展有限公司 | 一种浏览器展现页面特定资源的方法及系统 |
CN101739196A (zh) * | 2008-11-25 | 2010-06-16 | 富士施乐株式会社 | 工作空间管理方法及工作空间管理系统 |
CN102467383A (zh) * | 2010-11-17 | 2012-05-23 | 康佳集团股份有限公司 | 一种在嵌入式系统图形界面实现标签页窗口的方法 |
CN102830972A (zh) * | 2012-08-14 | 2012-12-19 | 管重 | 互联网浏览器的多网页浏览装置 |
-
2013
- 2013-04-15 CN CN201310131398.8A patent/CN103197842B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101477476A (zh) * | 2008-01-02 | 2009-07-08 | 联想(北京)有限公司 | 多操作系统之间切换显示的控制方法和计算机系统 |
CN101739196A (zh) * | 2008-11-25 | 2010-06-16 | 富士施乐株式会社 | 工作空间管理方法及工作空间管理系统 |
CN101587489A (zh) * | 2009-06-12 | 2009-11-25 | 北京搜狗科技发展有限公司 | 一种浏览器展现页面特定资源的方法及系统 |
CN102467383A (zh) * | 2010-11-17 | 2012-05-23 | 康佳集团股份有限公司 | 一种在嵌入式系统图形界面实现标签页窗口的方法 |
CN102830972A (zh) * | 2012-08-14 | 2012-12-19 | 管重 | 互联网浏览器的多网页浏览装置 |
Cited By (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103488512A (zh) * | 2013-09-29 | 2014-01-01 | 广州创维平面显示科技有限公司 | 程序界面显示处理方法及装置 |
CN103488512B (zh) * | 2013-09-29 | 2017-06-20 | 广州创维平面显示科技有限公司 | 程序界面显示处理方法及装置 |
CN104123063A (zh) * | 2014-06-16 | 2014-10-29 | 联想(北京)有限公司 | 信息处理方法及电子设备 |
CN104123063B (zh) * | 2014-06-16 | 2017-09-22 | 联想(北京)有限公司 | 信息处理方法及电子设备 |
WO2016058293A1 (zh) * | 2014-10-14 | 2016-04-21 | 惠州Tcl移动通信有限公司 | 一种微件widget显示应用的方法及移动终端 |
CN107787482A (zh) * | 2015-09-18 | 2018-03-09 | 谷歌有限责任公司 | 非活动窗口的管理 |
CN105516782B (zh) * | 2015-12-10 | 2018-08-14 | 四川长虹电器股份有限公司 | Android系统智能电视悬浮界面互斥功能的实现方法及系统 |
CN109074276A (zh) * | 2016-03-29 | 2018-12-21 | 微软技术许可有限责任公司 | 系统任务切换器中的选项卡 |
CN109074276B (zh) * | 2016-03-29 | 2022-01-11 | 微软技术许可有限责任公司 | 系统任务切换器中的选项卡 |
WO2017167176A1 (zh) * | 2016-04-01 | 2017-10-05 | 腾讯科技(深圳)有限公司 | 应用程序中窗口的控制方法和装置 |
US10795695B2 (en) | 2016-04-01 | 2020-10-06 | Tencent Technology (Shenzhen) Company Limited | Control method and apparatus for window in application program |
CN106293325A (zh) * | 2016-07-26 | 2017-01-04 | 网易(杭州)网络有限公司 | 自动寻窗的方法和装置 |
CN106293325B (zh) * | 2016-07-26 | 2019-09-03 | 网易(杭州)网络有限公司 | 自动寻窗的方法和装置 |
CN106468994A (zh) * | 2016-08-31 | 2017-03-01 | 北京奇艺世纪科技有限公司 | 一种应用程序的处理方法和装置 |
CN109710343B (zh) * | 2017-10-25 | 2023-01-17 | 北京众纳鑫海网络技术有限公司 | 计算机桌面的窗口切换方法、装置、设备以及存储介质 |
CN109710343A (zh) * | 2017-10-25 | 2019-05-03 | 北京众纳鑫海网络技术有限公司 | 计算机桌面的窗口切换方法、装置、设备以及存储介质 |
CN109254820A (zh) * | 2018-09-05 | 2019-01-22 | Oppo广东移动通信有限公司 | 窗口关闭方法、装置、终端及计算机可读存储介质 |
CN109388468B (zh) * | 2018-10-09 | 2020-11-24 | 威创集团股份有限公司 | 多程序窗口管理方法及装置 |
CN109388468A (zh) * | 2018-10-09 | 2019-02-26 | 威创集团股份有限公司 | 多程序窗口管理方法及装置 |
CN110765208A (zh) * | 2019-10-22 | 2020-02-07 | 成都知道创宇信息技术有限公司 | 一种数据同步方法、装置、电子设备及存储介质 |
CN110765208B (zh) * | 2019-10-22 | 2022-09-20 | 成都知道创宇信息技术有限公司 | 一种数据同步方法、装置、电子设备及存储介质 |
CN111191164A (zh) * | 2019-11-29 | 2020-05-22 | 泰康保险集团股份有限公司 | 一种窗口显示控制方法和装置 |
CN111191164B (zh) * | 2019-11-29 | 2023-08-22 | 泰康保险集团股份有限公司 | 一种窗口显示控制方法和装置 |
CN111045775A (zh) * | 2019-12-10 | 2020-04-21 | 北京恒泰实达科技股份有限公司 | 一种在大屏可视化系统中高效集成第三方应用程序的方法 |
CN111045775B (zh) * | 2019-12-10 | 2023-10-27 | 北京恒泰实达科技股份有限公司 | 一种在大屏可视化系统中高效集成第三方应用程序的方法 |
CN114546226A (zh) * | 2020-11-27 | 2022-05-27 | 北京中关村科金技术有限公司 | 窗口元素抓取方法、装置以及存储介质 |
CN114546226B (zh) * | 2020-11-27 | 2024-05-07 | 北京中关村科金技术有限公司 | 窗口元素抓取方法、装置以及存储介质 |
WO2022166645A1 (zh) * | 2021-02-07 | 2022-08-11 | Oppo广东移动通信有限公司 | 应用切换方法、装置、终端及存储介质 |
CN115174483A (zh) * | 2022-04-25 | 2022-10-11 | 平安付科技服务有限公司 | 基于时间窗口的限流方法、装置、服务器和存储介质 |
CN115174483B (zh) * | 2022-04-25 | 2023-10-13 | 平安付科技服务有限公司 | 基于时间窗口的限流方法、装置、服务器和存储介质 |
CN115934210A (zh) * | 2023-03-14 | 2023-04-07 | 中航金网(北京)电子商务有限公司 | 多窗口共享对象存储实例的方法、装置及电子设备 |
CN115934210B (zh) * | 2023-03-14 | 2023-06-02 | 中航金网(北京)电子商务有限公司 | 多窗口共享对象存储实例的方法、装置及电子设备 |
CN116107845A (zh) * | 2023-04-12 | 2023-05-12 | 浙江保融科技股份有限公司 | 一种窗口对象的监测和处理方法 |
CN116107845B (zh) * | 2023-04-12 | 2023-07-14 | 浙江保融科技股份有限公司 | 一种窗口对象的监测和处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103197842B (zh) | 2016-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103197842A (zh) | 一种应用程序窗口的控制方法及装置 | |
US9921903B2 (en) | Smart error recovery for database applications | |
CN107291456B (zh) | 一种多屏显示的控制方法及系统 | |
KR101148828B1 (ko) | 홈 네트워크 기능을 갖는 웹 페이지 제공 시스템 및 홈네트워크 디바이스 제어방법 | |
US8838808B2 (en) | Asynchronous communication in web applications | |
US20150067536A1 (en) | Gesture-based Content Sharing Between Devices | |
US8782127B2 (en) | Notification based web applications | |
US20050193143A1 (en) | Framework for user interaction with multiple network devices | |
US8788627B2 (en) | Interactive web application framework | |
CN104704448A (zh) | 本地和远程计算环境之间的反向无缝集成 | |
JP2009509243A (ja) | 告知領域におけるネットワーク接続性及び無線状態 | |
JP2010079874A (ja) | Usbインタフェースを使用する遠隔デスクトップ制御システム及びその方法 | |
US10178170B2 (en) | Browser-based virtual media administration | |
JP5963991B1 (ja) | ユーザインタフェース実行装置およびユーザインタフェース設計装置 | |
US7188149B2 (en) | Storage operating data control system | |
JP4637140B2 (ja) | 計算機システム | |
CN105389096A (zh) | 基于浏览器的数据交互方法及装置 | |
WO2023246486A1 (zh) | 一种创建连接器的方法及装置 | |
KR101541664B1 (ko) | 휴대형 컴퓨팅 디바이스에서 병렬 리소스 요청들을 관리하는 방법 및 시스템 | |
KR20130133779A (ko) | 네트워크 내에서의 소프트웨어 애플리케이션의 원격 실행 | |
KR20110122996A (ko) | 어플리케이션 실행 장치, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록 매체 | |
Codd-Downey et al. | Rcon: Dynamic mobile interfaces for command and control of ros-enabled robots | |
JP6354854B2 (ja) | 情報処理システム、情報処理方法、情報処理装置およびその制御方法と制御プログラム | |
KR100839331B1 (ko) | 원격 컨텐츠 공유 서비스를 지원하는 UPnP AV프레임워크 기반의 통합 홈 엔터테인먼트 시스템 및 그제어방법 및 그 제어방법을 기록한 기록매체 | |
US7467217B2 (en) | Reflective driver |
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 |