专利名称:管理窗口的方法和设备的制作方法
技术领域:
本发明涉及改善的数据处理系统,具体来说,涉及用于在数据处理系统中管理窗口的方法、设备和计算机指令。更具体来说,本发明提供了用于管理窗口在后台模式和前台模式之间的移动的方法、设备和计算机指令。
背景技术:
即时消息是一种在线聊天手段,可使用户通过网络数据处理系统实时地相互进行通信和协作。即时消息通常在因特网上使用。即时消息应用程序监视和报告彼此将对方作为在线联系人的用户的状态。此信息通常在一个窗口中呈现给用户。即时消息应用程序也常常被开展业务的用户使用。通过利用即时消息,办公用户可以查看对方是否在线,当所需的联系人在线时,便可以启动与同事或客户的文本会话。
通常,利用即时消息应用程序,用户之间的通信是通过用户选择他们希望与其进行通信的人的姓名来启动的。然后,用户在对话框中键入消息,并按“发送”。这些消息将会立刻出现在另一个所选择的收件人的计算机上。
直到现在,即时消息都是主要为家庭用户而开发的,但家庭用户和办公用户也同样可以使用。即时消息可使某一单位在业务设置中部署和利用此“有需求”(“need-to-have”)技术。
虽然即时消息是一个有用工具,但是,当用户在对其他文档进行处理时将具有消息的窗口弹出容易分散人的注意力,并且令人烦的。例如,如果用户正在使用字处理器应用程序在一个文档中输入,并接收到即时消息,弹出式窗口会改变桌面的焦点。换句话说,字处理文档前台从移到后台,而弹出式窗口移到前台。如果用户在键入信息,此输入常常被重定向到弹出式窗口,而不是输入到该文档。当前,用户可以设置“请勿打扰”或“离开”首选项,以避免这种分心。然而,这种机制需要用户交互才能激活。
此外,对于代表即时消息应用程序中的不同联系人的不同弹出式窗口,也可能会发生这样的焦点变化。结果,用户可能会键入不正确的消息,并将它发送到非希望的联系人。使用“请勿打扰”或“离开”首选项是无效的,因为一旦用户开始向联系人发送消息,此状态就会改变,就不再会防止将弹出式窗口呈现到前台。对于其他窗口式应用程序,也会发生焦点变化。如此,对于将窗口推向前台的任何应用程序,也可能会发生焦点变化。结果,除了即时消息应用程序外,其他窗口式应用程序也可能产生类似的问题。
因此,有用于在数据处理系统中管理诸如弹出式窗口之类的窗口的改善的方法、设备和计算机指令是十分有利的。
发明内容
本发明提供了用于在数据处理系统中管理前台和后台中的窗口的方法、设备和计算机指令。响应接收在前台中呈现弹出式窗口的请求,监视缓冲区中的用户输入。就前台中的应用程序是否为可中断的应用程序作出判断。如果没有用户输入,并且如果识别的应用程序是可中断的应用程序,则在前台呈现弹出式窗口。
现在将参考附图,只作为示例,对本发明进行描述,其中图1是根据本发明的优选实施例的可以在其中实现本发明的数据处理系统的图形表示;图2是图1的可以在其中实现本发明的数据处理系统的方框图;图3是说明根据本发明的优选实施例的在管理窗口时使用的组件的图表;图4是根据本发明的优选实施例的用于处理将窗口移到前台的请求的过程的流程图;
图5是根据本发明的优选实施例的用于处理窗口的过程的流程图;图6是根据本发明的优选实施例的用于执行应用程序活动检查的过程的流程图;以及图7是根据本发明的优选实施例的用于监视用户输入的过程的流程图。
具体实施例方式
现在参考附图,具体来说,参考图1,该图根据本发明的优选实施例描述了其中可以实现本发明的数据处理系统的图形表示。描述了计算机100,该计算机包括系统单元102、视频显示终端104、键盘106、可以包括软盘驱动器及其他类型的永久和可移动存储介质的存储设备108,以及鼠标110。个人计算机100可以包括更多的输入设备,例如,游戏杆、触摸板、触摸屏、跟踪球、麦克风等等。计算机100可以使用任何合适的计算机来实现,如IBM eServer计算机或IntelliStation计算机,它们都是位于纽约Armonk的IBM公司的产品(IntelliStation是IBM Corp的商标)。虽然所描述的表示显示了计算机,但是,本发明的其他实施例也可以以其他类型的数据处理系统(如网络计算机)来实现。优选情况下,计算机100还包括图形用户界面(GUI),该界面可以通过驻留在计算机可读取的介质中的系统软件在计算机100内的操作中实现。
现在参考图2,该图显示了在其中可以实现本发明的数据处理系统的方框图。数据处理系统200是诸如图1中的计算机100的计算机的示例,其中,可以有实现本发明的进程的代码或指令。数据处理系统200使用外围组件互连(PCI)本地总线体系结构。虽然所描述的示例使用了PCI总线,但是也可以使用诸如加速图形端口(AGP)和工业标准体系结构(ISA)之类的其他总线体系结构。处理器202和主存储器204通过PCI桥208连接到PCI本地总线206。PCI桥208还可以包括集成的存储器控制器和处理器202的高速缓冲存储器。到PCI本地总线206的更多的连接可以通过直接组件互连或通过插入式电路板来实现。在所描述的示例中,局域网(LAN)适配器210、小型计算机系统接口SCSI主机总线适配器212和扩展总线接口214通过直接组件连接来连接到PCI本地总线206。相比之下,音频适配器216、图形适配器218和音频/视频适配器219通过插入到扩展槽中的插入式电路板连接到PCI本地总线206。扩展总线接口214为键盘和鼠标适配器220、调制解调器222和附加存储器224提供了连接。SCSI主机总线适配器212为硬盘驱动器226、磁带驱动器228和CD-ROM驱动器230提供了连接。
操作系统在处理器202上运行,用于协调图2中的数据处理系统200内的各个组件,并对它们进行控制。操作系统可以是诸如Microsoft Corporation所推出的Windows XP之类的市场上可买到的操作系统(Windows是Microsofi Corp的商标)。诸如Java之类的面向对象的程序设计系统可以与操作系统一起运行,并提供从在数据处理系统200上执行的Java程序或应用程序对操作系统的调用(“Java”是Sun Microsystems,Inc的商标)。操作系统、面向对象的编程系统和应用程序或程序的指令位于诸如硬盘驱动器226之类的存储设备上,并可以加载到主存储器204中以供处理器202执行。
那些精通本技术的普通人员将认识到,图2中的硬件可以随实现方式不同而不同。除了图2中所描述的硬件之外,还可以使用诸如flash只读存储器(ROM)、等效的非易失性存储器或光盘驱动器之类的其他内部硬件或外围设备,或代替它们。此外,本发明的进程还可以应用于多处理器数据处理系统。
例如,数据处理系统200,如果可选地被配置为网络计算机,可以不必包括SCSI主机总线适配器212、硬盘驱动器226、磁带驱动器228,以及CD-ROM 230。在这种情况下,计算机,准确地说,叫做客户端计算机,包括某种类型的网络通信接口,如LAN适配器210、调制解调器222等等。作为另一个示例,数据处理系统200可以是被配置为不依赖于某种类型的网络通信接口,不管数据处理系统200是否包括某种类型的网络通信接口,都可以启动的独立系统。作为另一个示例,数据处理系统200可以是个人数字助理(PDA),该个人数字助理配置了ROM和/或flash ROM,以提供非易失性存储器,用于存储操作系统文件和/或用户生成的数据。
图2中所描述的示例和上文描述的示例不对本发明的体系结构作出限制。例如,除PDA的形式之外,数据处理系统200还可以是笔记本电脑或手持式计算机。数据处理系统200还可以是kiosk或Web设备。
本发明的进程由处理器202使用计算机实现的指令来执行,指令可以位于诸如主存储器204、存储器224之类的存储器中,也可以位于一个或多个外围设备226-230中。
本发明提供了一种用于在数据处理系统中管理窗口的方法、设备和计算机指令。具体来说,本发明的机制监视诸如键盘缓冲区或某些其他设备的输入缓冲区之类的缓冲系统中的用户输入。此监视是响应将窗口从后台移到后台或在前台呈现窗口的请求而启动的。如果用户正在积极地输入信息,此用户输入作为正在被监视的缓冲区内的活动或输入数据而显示出来。如果活动不存在,那么,可以将窗口移到前台或呈现于前台。如果活动存在,那么,会忽略将窗口移到前台的请求。当活动不再存在时,窗口可以在稍后的时间移到前台。
此外,本发明的机制也可以检查应用程序的列表,以查看前台中的应用程序是否为可以被中断或移到后台模式的应用程序。在这些示例中,检查是否有活动或用户输入存在于缓冲系统中。如果缓冲系统中没有活动并且应用程序不能被中断,则窗口不会被移到前台。如果缓冲系统中没有活动并且前台中的应用程序可以被中断,则窗口可以在稍后的时间移到前台。对于诸如即时消息应用程序之类的应用程序(其中,大量的活动可以导致诸如弹出式窗口之类的许多窗口在不同的时间被移到前台),这些机制特别有用。
如此,本发明的机制提供了基于将窗口移到前台的请求提供了避免焦点中断的方式,这可能不是用户选择的。相对于即时消息应用程序可用的目前可用的“请勿打扰”和“离开”机制,此机制具有优越性。
下面将参考图3,该图描述了说明根据本发明的优选实施例的在管理窗口时使用的组件的图表。此图中说明的不同的组件可以在诸如图2中的数据处理系统200之类的数据处理系统上执行。
在此示例中,操作系统300控制应用程序302、应用程序304和即时消息应用程序306的执行。在这些示例中,诸如应用程序302之类的一个应用程序在执行前台,而诸如应用程序304和应用程序306之类的其他应用程序在后台执行。在执行前台的应用程序是其中应用程序的窗口是可见的并且当前正在执行工作或指令的应用程序。这样的应用程序也是可以在焦点上的应用程序。换句话说,如果一个应用程序正在接受当前的键盘输入,则该应用程序处于焦点上。在后台执行的应用程序是其窗口当前不可见并且不在焦点上的应用程序。如图所示,窗口308与应用程序302关联,窗口310与应用程序304关联,窗口312与即时消息应用程序306关联。在此示例中,窗口312是弹出式窗口。如果由即时消息应用程序306接收到诸如消息314之类的消息,则一个请求被即时消息应用程序306发送到操作系统300以将窗口312移到到前台,这将导致窗口308被移到后台。此请求被插入到请求队列316中,以便让操作系统300进行处理。
在这些示例中,操作系统300包括用于监视缓冲系统318中的用户输入活动的过程或机制。如图所示,缓冲系统318可以包括一个或多个缓冲区。这些缓冲区可以是,键盘缓冲区、声音输入缓冲区,midi键盘缓冲区或鼠标输入缓冲区。
如果没有检测到活动,则本发明的机制可以将窗口312移到前台。在这些示例中,该机制执行另外的检查。在此检查中,识别与前台中的窗口关联的应用程序(应用程序302),并将其与诸如应用程序列表320之类的应用程序的列表进行比较。此列表包含已经被指定为不可中断的应用程序或应该被给予优先级的应用程序的标识。如果在应用程序列表320中发现应用程序302,那么,窗312不会被移到前台。相反,再次在稍晚某个时间再次进行检查,以判断缓冲系统318中是否有用户输入存在,以及前台中的应用程序是否存在于应用程序列表320中。如果都不存在,则可以将窗口312移到前台。
在这些示例中,应用程序列表320是由用户生成的。用户可以设置或复位作为识别在运行时不应该被干扰的应用程序的过滤器的了列表318中的应用程序标题。这样的特点对于诸如全屏幕应用程序之类的应用程序很有用。在某些情况下,这些应用程序类型可能不能从前台和后台之间的切换中恢复。此外,在这些示例中,用户也可以选择或设置计时器以指出在允许窗口被从后台前台移到之前,他们需要缓冲系统包含没有用户输入或活动的时间长度。此外,在这些示例中,用于管理窗口的进程是在操作系统300内实现的。本发明的机制的这些进程可以位于其他组件内,具体情况取决于特定的实施方式。例如,进程可以在即时消息应用程序306内实现。
下面请参看图4,该图描述了根据本发明的优选实施例的用于处理将窗口移到前台的请求的过程的流程图。该过程从接收将窗口移到前台的应用程序请求开始(步骤400)。此前台请求被推到诸如图3中的请求队列316之类的队列上(步骤402),此后,该过程终止。
现在参考图5,该图描述了根据本发明的优选实施例的用于处理窗口的过程的流程图。图5中说明的过程可以在诸如图3中的操作系统300之类的软件组件中实现。
该过程从判断是否接收到了前台请求开始(步骤500)。此步骤可以通过检查诸如图3中的请求队列316之类的请求队列来执行。如果不存在请求,则该过程等待队列上的前台请求(步骤502),然后,该过程返回到步骤500。当在队列上检测到请求时,从队列中弹出事件(步骤504)。换句话说,选择位于队列顶部的事件进行处理。
就当前执行的应用程序是否位于诸如图3中的应用程序列表320之类的列表中作出判断(步骤506)。此步骤可以通过调用一个进程以执行应用程序活动检查来执行。下面将描述的图6中说明的过程是步骤505的比较详细的描述。如果应用程序位于列表上,那么,该进程等待应用程序切换(步骤508)。在触发的应用程序的情况下,当应用程序不再忙时,这样的应用程序可以通知或向请求队列指出。触发的应用程序是可能接收到如应用程序是否可以从前台移到后台的请求的应用程序。在这样的情况下,应用程序将指出它是否忙着,以及是否不能移动,或它是否可以移动。此后,该过程返回到如上所述的步骤506。
如果在步骤506中当前执行的应用程序不在列表中,那么,就是否存在活动用户输入而作出判断(步骤512)。可以通过检查诸如缓冲系统313之类的缓冲系统来检测用户输入。如上所述,对于不同类型的用户输入,此缓冲系统可以包含一个或多个缓冲区。在此示例中,通过检查通过一个进程设置的变量(如下面的图7中描述的那个),可以进行缓冲系统检查。
如果存在活动用户输入,则过程等待输入停止(步骤514)。用户可以选择活动计时器,该计时器指出在输入停止之前,在缓冲系统内没有用户输入必须持续的时间长度。当输入停止时,该过程返回到步骤506,以上文所描述的方式对照应用程序列表检查当前执行的应用程序。
再次参考步骤512,如果没有活动用户存在,则过程打开前台窗口(步骤510),那么,过程返回到如上所述的步骤500。这将打开一个新的窗口,或将应用程序的窗口从后台移到前台。
现在请看图6,该图根据本发明的优选实施例,描述了用于执行应用程序活动检查的过程的流程图。图6中说明的过程是图5中的步骤506的比较详细的描述。
该过程从检查用户“请勿打扰”列表以判断当前执行的应用程序是否位于列表上开始(步骤600)。此列表是诸如图3中的应用程序列表320之类的列表。如果应用程序位于列表上,则返回一个忙的指示(步骤602),此后,该过程终止。
再次参考步骤600,如果应用程序不在列表中,则进行进一步检查,以判断是否触发了应用程序(步骤604)。换句话说,此步骤进行测试,以查看是否触发了前台中的应用程序,以允许应用程序作出当前活动的请求。某些应用程序可能接收到关于它们是否可以从前台移到后台的问题或请求。
如果触发了应用程序,那么,一个请求将会被发送到应用程序(步骤606)。接收到一个响应,并返回一个忙或不忙的指示,具体情况取决于响应(步骤608),此后终止该过程。再次参考步骤604,如果没有触发应用程序,则返回一个不忙指示(步骤610)。
现在参考图7,该图根据本发明的优选实施例,描述了用于监视用户输入的过程的流程图。图7中说明的过程可以在诸如图3中的操作系统300之类的软件组件中实现。在此示例中,该过程是连续地执行以更新图5中的步骤512检查的变量的后台进程。
该过程从在操作系统中设置一个标志开始,以接收用户输入的通知(步骤700)。然后,就用户是否正在输入数据作出判断(步骤702)。此步骤涉及监视诸如图3中的缓冲系统318之类的缓冲系统。
如果用户正在输入数据,那么,将变量设置为当前忙(步骤704)。然后,过程等待用户定义的超时发生(步骤706)。在超时发生之后,过程返回到步骤702。
回到步骤702,如果用户不在输入数据,则过程将变量设置为不忙(步骤708),然后等待检测到用户输入(步骤710)。在检测到用户输入之后,过程从步骤710进入到步骤704。
如此,该过程提供了用于在数据处理系统管理窗口的改善的方法、设备,以及计算机指令。此机制适用于其中窗口可以从后台移到前台或其中窗口可以呈现于前台的任何系统。该机制监视缓冲系统中的用户输入,以及检查当前执行的应用程序,以查看此应用程序是否可以被中断或移到后台。
如此,本发明的机制在应用程序可能不能从移动恢复时避免了将用户的焦点从当前任务移开,并避免将应用程序从前台移到后台。对于异步弹出式窗口,如在即时消息应用程序中使用的窗口,此机制特别有用。
值得注意的是,尽管是在完全运转的数据处理系统的上下文中描述本发明的,但是,那些精通本技术的普通人员将认识到,本发明的进程能够以存储了指令的计算机可读的介质的形式和各种各样的形式进行分发,本发明同样适用,不管实际用于进行分发的承载信号的介质的特定类型是什么。计算机可读的介质的示例包括可记录类型的介质,如软盘、硬盘驱动器、RAM、CD-ROM、DVD-ROM、传输类型的介质,例如使用诸如射频和光波发射的发射形式的数字和模拟通信链路、有线或无线通信链路。计算机可读的介质可以采取编码格式的形式,这些编码在特定数据处理系统中实际使用时被解码。
权利要求
1.一种数据处理系统中的用于管理前台和后台中的窗口的方法,该方法包括响应接收将弹出式窗口从后台移到前台的请求,判断用户输入是否存在于缓冲区中;如果用户输入存在于缓冲区中,则忽略将弹出式窗口从后台移到前台的请求;以及如果用户输入在缓冲区中不存在,则将弹出式窗口从后台移到前台。
2.根据权利要求1所述的方法,进一步包括响应没有用户输入的情况,识别正在执行前台的应用程序以形成识别的应用程序;判断识别的应用程序是否为不可中断的应用程序;以及如果识别的应用程序为不可中断的应用程序,则防止将弹出式窗口从后台移到前台。
3.根据权利要求2所述的方法,其中,判断步骤包括将识别的应用程序与不可中断的应用程序列表进行比较;以及如果识别的应用程序与不可中断的应用程序列表中的应用程序相匹配,则将识别的应用程序识别为不可中断的应用程序。
4.根据权利要求3所述的方法,其中,不可中断的应用程序的列表是用户生成的。
5.根据权利要求1所述的方法,其中,弹出式窗口是异步弹出式窗口。
6.根据权利要求1所述的方法,其中,弹出式窗口用于即时消息应用程序。
7.根据权利要求1所述的方法,其中,缓冲区是键盘缓冲区和鼠标输入缓冲区中的至少一个。
8.根据权利要求1所述的方法,进一步包括如果用户活动存在于缓冲区中,则在用户选择的时间段之后重新启动判断步骤。
9.一种数据处理系统中的用于管理前台和后台中的窗口的数据处理系统,该数据处理系统包括监视装置,响应接收将弹出式窗口从后台移到前台的请求,用于判断用户输入是否存在于缓冲区中;忽略装置,用于如果用户输入存在于缓冲区中,则忽略将弹出式窗口从后台移到前台的请求;以及移动装置,用于如果用户输入在缓冲区中不存在,则将弹出式窗口从后台移到前台。
10.根据权利要求9所述的数据处理系统,进一步包括识别装置,响应没有用户输入的情况,识别正在执行前台的应用程序以形成识别的应用程序;判断装置,用于判断识别的应用程序是否为不可中断的应用程序;以及防止装置,用于如果识别的应用程序为不可中断的应用程序,则防止将弹出式窗口从后台移到前台。
11.根据权利要求10所述的数据处理系统,其中,判断装置包括比较装置,用于将识别的应用程序与不可中断的应用程序列表进行比较;以及识别装置,用于如果识别的应用程序与不可中断的应用程序列表中的应用程序相匹配,则将识别的应用程序识别为不可中断的应用程序。
12.根据权利要求11所述的数据处理系统,其中,不可中断应用程序的列表是用户生成的。
13.根据权利要求9所述的数据处理系统,其中,弹出式窗口是异步弹出式窗口。
14.根据权利要求9所述的数据处理系统,其中,弹出式窗口用于即时消息应用程序。
15.根据权利要求9所述的数据处理系统,其中,缓冲区是键盘缓冲区和鼠标输入缓冲区中的至少一个。
16.一种计算机程序,包括计算机程序代码装置,用于执行权利要求1到权利要求8中的任何一个权利要求所述的步骤。
全文摘要
用于在数据处理系统中管理前台和后台中的窗口的方法、设备和计算机指令。响应接收在前台中呈现弹出式窗口的请求,监视缓冲区中的用户输入。就前台中的应用程序是否为可中断的应用程序作出判断。如果没有用户输入,并且如果识别的应用程序是可中断的应用程序,则在前台呈现弹出式窗口。
文档编号G06F3/033GK1739088SQ200480002428
公开日2006年2月22日 申请日期2004年3月5日 优先权日2003年3月27日
发明者戴维·郎戴尔 申请人:国际商业机器公司