专利名称:用于提供虚拟界面的系统与方法
技术领域:
本发明涉及计算机系统的用户界面,更具体地涉及提供新型虚拟界 面的系统与方法,该系统与方法用于提供独立于操作系统的用户界面。
背景技术:
近来,计算机硬件和软件的迅速发展使计算机在社会的每个领域的 各种应用成为可能。例如,计算机已应用于通用商务、网上银行、多媒 体的回放、在线游戏、数据通信等。通过反复提高中央处理单元的运行 频率,计算机的处理速度越来越高。然而,由于在以中央处理单元实现 快速数据处理时,外围装置的响应速度和处理速度不能达到与中央处理 单元一样快的速度,故计算机系统难以高速运行。为了解决该问题,在 图形处理领域继续进行了技术开发,且从而能够以高速度高质量实现二 维或三维图形图像以及快速的电影图像。然而,由于计算机使用环境愈 加需要处理更大量的图形数据,所以有人开发了能够以更高速度处理图 形数据的技术。随着操作系统技术和应用程序技术的发展,计算机系统 的用户界面已改善得更加方便。计算机系统的操作系统已从早期的基于 文本的用户界面环境发展到目前已普及的并基于图形的图形用户界面
(GUI)。图形用户界面的一个例子是微软(Microsoft)的WINDOWS操作系 统。在诸如WINDOWS操作系统的多任务环境中使用GUI环境更有效。这 是因为,运行于多任务环境中的各种应用程序可显示诸如窗口和其中的 用户界面等各种应用程序屏幕。
同时,运行于多任务环境中的一些应用程序有时以独占模式运行, 在独占模式中程序独占屏幕资源。大多数高速处理大量图形数据的游戏 程序设计为以独占模式运行,以实现高速屏幕显示。然而,如果一个应 用程序在提供多任务环境的操作系统中独占地使用屏幕资源,那么由于 另一个应用程序不能分配到已经被独占的屏幕资源,故该另 个应用程 序无法通过被所述的一个应用程序独占的单个显示屏幕与用户交互。当然,通过使以独占模式执行的相应的应用程序不活动并从而取消独占模 式,可激活另一个应用程序,然而,当相应的应用程序以独占模式执行 时,不能同时给两个程序提供用户界面。
发明内容
为了解决与传统装置有关的上述和其它问题,作出了本发明,且本 发明的目的是提供一种用于提供虚拟界面的系统与方法,其能够独立于 操作系统提供用户界面,而不需从计算机系统中的操作系统分配屏幕资 源。
本发明的另一目的是提供用于提供虚拟界面的系统与方法,其能够 通过显示屏幕输出用户界面,而无需使从操作系统独占地分配屏幕资源 而运行的应用程序不活动。
实现上述目的的本发明一个方面涉及一种用于提供计算机系统的用 户界面的系统,所述计算机系统设有用于显示器的屏幕显示的视频接口。 用于提供虚拟界面的系统包括虚拟界面处理模块,该虚拟界面处理模块 通过独立于操作系统的用于屏幕显示的视频输出通道提供虚拟界面。
在一个实施例中,所述视频输出通道包括设于所述视频接口中的视 频存储器的一般区域。这里,所述虚拟界面处理模块包括虚拟界面屏 幕显示模块,其用于使用覆盖驱动器通过覆盖区域显示虚拟界面屏幕; 以及消息处理模块,其用于通过在所述计算机系统的操作系统中设置全 局钩挂来接收根据事件发生的消息并过滤与所述虚拟界面有关的消息, 并将过滤后的结果值提供给所述虚拟界面屏幕显示模块。
在另一个实施例中,所述视频输出通道包括设于所述视频接口中的 视频存储器的一般区域。这里,所述虚拟界面处理模块包括虚拟界面 屏幕显示模块,其用于使用小端口驱动器通过所述一般区域显示虚拟界 面屏幕;以及消息处理模块,其用于通过在所述计算机系统的操作系统 中设置全局钩挂来接收根据事件发生的消息并过滤与所述虚拟界面有关 的消息,并将过滤后的结果值提供给所述虚拟界面屏幕显示模块。本发明的另一方面涉及一种用于提供计算机系统的用户界面的方 法,所述计算机系统设有用于显示器的屏幕显示的视频接口。本发明的 用于提供虚拟界面的方法包括以下步骤初始化步骤,在该步骤中,设 置操作系统的全局钩挂以通过独立于操作系统的屏幕显示的视频输出通 道输出虚拟界面屏幕;以最高优先权接收根据事件发生的消息并过滤与 所述虚拟界面有关的消息;以及处理过滤后的与所述虚拟界面有关的消 息。
在一个实施例中,所述初始化步骤包括形成覆盖的步骤以及通过视 频存储器中的覆盖区域在显示装置上显示所述虚拟界面屏幕。
在另一个实施例中,所述初始化步骤包括形成小端口的步骤以及通 过视频存储器中的一般区域在显示装置上显示所述虚拟界面屏幕。
从下面结合附图对优选实施例的描述中,可以使本发明的上述与其 它目的、特点及优点更加清楚,在附图中
图l是表示根据本发明的优选实施例的设有虚拟界面的计算机系统 的框图。
图2是表示设有使用覆盖功能的虚拟界面的显示屏幕的图。 图3是用于解释使用覆盖功能的虚拟界面处理模块的工作原理的框图。
图4是表示使用覆盖功能的虚拟界面处理模块的运行步骤的流程图。
图5是表示设有使用小端口功能的虚拟界面的显示屏幕的图。
图6是用于解释使用小端口功能的虚拟界面处理模块的工作原理的 框图。
图7是表示使用小端口功能的虚拟界面处理模块的运行步骤的流程图。
具体实施方式
参照表示本发明的优选实施例的附图以及其说明,可更加充分地认 识到通过本发明的实施例所实现的本发明、其运行优点和目的。本发明 的实施例可以修改成各种形式,且不应认为下面描述的实施例是对本发 明的范围的限制。本实施例仅用于更明确地对本领域的技术人员解释本 发明。而且,没有描述与本发明的主题无关的已知功能和结构。下面, 参照附图详细描述本发明的实施例。
图l是表示根据本发明的优选实施例设有虚拟界面的计算机系统的 框图。
参照图l,示例性的计算机系统包括处理单元100、视频接口200、系 统总线300、系统存储器400以及各种接口500 540和外围装置。各种接口 500 540例如是用于诸如硬盘装置510的不可移除非易失性存储器的接口 500、用于诸如磁盘514和光盘518的可移除非易失性存储器的接口510、 用于诸如键盘522和指点装置524的用户输入的接口520、用于输出到诸如 扬声器532和打印机534的外围装置的接口530、调制解调器542以及用于 连接于局域网546的调制解调器542和用于广域网544的网络接口540。
通常称为显卡的视频接口200包括图形处理单元210、视频存储器220 以及连接于显示器600的输出端口230。图形处理单元210负责视频接口 200的运行控制以及图形数据的计算处理。
硬盘510存储有操作系统421、 一般应用程序422、虚拟界面应用程序 424以及虚拟界面处理模块426。虚拟界面应用程序424是能够通过虚拟界 面处理模块426提供虚拟界面的应用程序,虚拟界面处理模块426是用于 提供虚拟界面的处理模块并通过显示屏幕输出虚拟界面而不需从操作系 统分配屏幕资源。
系统存储器400主要包括作为非易失性存储器的ROM410以及作为易 失性存储器的RAM420。基本输入/输出系统(BIOS)安装于ROM410上,且 当计算机系统启动时,操作系统421被从硬盘510加载到RAM420以便启 动。操作系统421例如是微软的WINDOWS操作系统,并能够执行多任务。 当执行诸如一般应用程序422与覆盖应用程序424中的至少一个应用程序 时,所执行的应用程序被加载到RAM上。本发明的系统与方法使用不与操作系统421直接有关的独立视频输 出通道将虚拟界面屏幕输出到显示器600。 一个实施例使用覆盖功能实现 虚拟界面,而另一个实施例使用小端口功能实现虚拟界面。在使用覆盖 功能的情况下,如图2和图3所示,视频存储器220中的覆盖区域226用作 显示虚拟界面屏幕的独立视频输出通道。在使用小端口功能的情况下, 如图5和6所示,视频存储器220中共用的一般区域222的一部分用作显示 虚拟界面屏幕的独立视频输出通道。
图2是表示设有使用覆盖功能的虚拟界面的显示屏幕的图。
参照图2,在本实施例中使用覆盖功能实现本发明的虚拟界面。视频 存储器220包括一般区域222与覆盖区域226。 一般区域222被分配用作操 作系统421或一般应用程序422的显示屏幕,并存储有一般视频数据224。 在本发明中,覆盖区域226被分配并用作显示虚拟界面屏幕616的区域, 并存储用于输出虚拟界面屏幕的覆盖视频数据228。
当覆盖功能未激活时,视频接口200仅将存储于一般区域222中的一 般视频数据224提供给显示器600,以输出背景屏幕612和一般应用程序屏 幕614。当激活覆盖功能以使用虚拟界面时,视频接口200以存储于覆盖 区域226中的覆盖视频数据228替代存储于一般区域222中的一部分视频 数据,并将其提供给显示器600以输出覆盖于背景屏幕612和一般应用程 序614上的虚拟界面屏幕616。此时,在所显示的所有其它屏幕的上边显 示虚拟界面屏幕616。
虚拟界面使用视频存储器220中的覆盖区域226独立于操作系统421 提供虚拟界面屏幕616。换言之,虚拟界面独立于由操作系统421提供的 背景屏幕612或一般应用程序屏幕614显示虚拟界面屏幕616。虚拟界面屏 幕616包括至少一个屏幕组成模块,诸如虚拟界面背景图像616a、用于数 据输入的输入框616b以及用于屏幕控制的控制框616c。
图3是用于解释使用覆盖功能的虚拟界面处理模块的工作原理的框图。
参照图3,设有使用覆盖功能以提供虚拟界面的虚拟界面处理模块 426。虚拟界面处理模块426与虚拟界面应用程序424—起在计算机系统上执行。虚拟界面应用程序424可包括各种应用程序。具体地,虚拟界面应用程序424和虚拟界面处理模块426从操作系统421来看以不活动的状态运行。 一般应用程序422通过视频驱动器427将一般应用程序屏幕614输出到显示器600,视频驱动器427控制视频存储器220的一般区域224。与之相反,虚拟界面应用程序424通过覆盖驱动器428将虚拟界面屏幕616输出到显示器600,覆盖驱动器428控制视频存储器220的覆盖区域226。
虚拟界面处理模块426负责在显示器600上输出虚拟界面屏幕616的一系列处理步骤。虚拟界面处理模块426设有虚拟界面显示模块426a与消息处理模块426b。虚拟界面显示模块426a根据消息处理模块426b的处理结果和虚拟界面应用程序424的操作将对于显示虚拟界面屏幕616是必要的视频数据228存储在视频存储器200的覆盖区域226中。消息处理模块426b接收由于从来自用户输入接口520或其它接口装置的输入而发生的事件所产生的消息并对该消息进行过滤,从而当消息与虚拟界面有关时可以进行响应处理。
图4是表示使用覆盖功能的虚拟界面处理模块的运行步骤的流程图。
参照图4,在步骤S100中,虚拟界面处理模块426启动操作,并随后在步骤S110中,判断系统上安装的视频接口200是否支持覆盖以及如果支持覆盖的话是否保留有可用的覆盖资源。如果可以形成覆盖,则在步骤S120中形成覆盖。可以使用诸如DirectX的DirectDraw或DirectShow以及OpenGL等支持库实现形成覆盖。
如果视频接口200不支持覆盖功能或尽管视频接口200支持覆盖功能但没有保留的覆盖资源,则进行步骤S130以输出覆盖错误消息,并在步骤S140中结束虚拟界面处理模块426的操作。
在形成覆盖之后,在步骤S150中,虚拟界面处理模块426设置操作系统421的全局钩挂。例如,在WINDOWS操作系统的情况下,可以使用API设置全局钩挂。当设置了全局钩挂时,与系统中发生的所有事件有关的消息被最先考虑由虚拟界面处理模块426接收。在完成使用覆盖的虚拟界面的前述初始化步骤之后,在步骤160中,使用覆盖功能显示虚拟界面屏幕616。之后,在步骤S170中,消息处理模块426b判断是否产生根据事件而发生的消息。当收到该消息时,进入步骤S180进行过滤步骤,以判断所收到的消息是否与虚拟界面有关。如果判断出该消息与虚拟界面有关,则进入步骤S190进行与虚拟界面有关的消息的处理。然而,若不是与虚拟界面有关的消息,则进入S200以将该消息发送给处于激活中的一般应用程序422。
在步骤S190中的进行与虚拟界面有关的消息的处理的步骤中,消息处理模块426b将作为过滤后的结果值输入的消息属性值提供给虚拟界面显示模块426a。虚拟界面显示模块426a接收从消息处理模块426b所提供的消息属性值并允许在虚拟界面屏幕616上显示适当的屏幕。消息属性值还被传送给虚拟界面应用程序424,以便执行虚拟界面应用程序424的必要程序功能。而且,虚拟界面显示模块426a从虚拟界面应用程序424接收在虚拟界面屏幕616上显示的值,并允许在虚拟界面屏幕616上显示适当的屏幕。
例如,当在虚拟界面屏幕616的区域发生指点装置524的输入时,产生根据与该输入有关的事件的消息并且该消息被消息处理模块426b接收。如图2所示,当有指点装置524的输入以选择显示于虚拟界面屏幕616上的输入框616b时,消息处理模块426b将该输入通知给覆盖屏幕显示模块426a。随后,覆盖屏幕显示模块426a虚拟地显示光标以在输入框616b内的相应位置进行文本输入。在此状态中,当用户通过键盘522输入字符键时,消息处理模块426b将其判断为与虚拟界面有关的消息,并将所输入的键盘值传送给虚拟界面显示模块426a。虚拟界面显示模块426a写入用于在覆盖区域226中显示字符图像的视频数据,从而在输入框616b中显示根据输入键盘值的字符图像。此时,优选地,将覆盖区域中存储的视频数据转换为受所有显卡支持的YUV格式并随后进行存储。
图5是表示设有使用小端口功能的虚拟界面的显示屏幕的图。
参照图5,用于实现本发明的虚拟界面的另一个实施例使用了两个视频输出通道用于显示器600的屏幕显示。两个视频输出通道例如包括一般视频端口和视频小端口。在这种使用两个视频输出通道的方式中,视频存储器200中的一般区域222用于显示虚拟界面屏幕616。图6是用于解释使用小端口功能的虚拟界面处理模块的工作原理的框图。
参照图6,如同前述实施例,提供使用小端口功能的虚拟界面的虚拟界面处理模块426设有虚拟界面显示模块426a和消息处理模块426b。虚拟界面处理模块426与虚拟界面应用程序424—起在计算机系统上执行。虚拟界面应用程序424可包括各种应用程序。在本实施例中,如前述实施例中一样,虚拟界面应用程序424与虚拟界面处理模块426从操作系统421来看以不活动的状态运行。 一般应用程序422通过视频驱动器427将一般应用程序屏幕614输出到显示器600,所述视频驱动器427控制视频存储器220的一般区域224。与之相反,虚拟界面应用程序424通过小端口驱动器429将虚拟界面屏幕616输出到显示器600,所述小端口驱动器429控制视频存储器220的覆盖区域226。
虚拟界面处理模块426负责在显示器600上输出虚拟界面屏幕616的一系列处理步骤。虚拟界面显示模块426a根据消息处理模块426b的处理结果和虚拟界面应用程序424的操作将对于显示虚拟界面是必要的视频数据228存储在视频存储器200的一般区域222中,从而刷新虚拟界面屏幕616。与前述实施例一样,消息处理模块426b接收由于来自用户输入接口520或其它接口装置的输入造成的事件的发生以及作为结果的消息,并过滤该消息,从而当消息与虚拟界面有关时可进行响应处理。
图7是表示使用小端口功能的虚拟界面处理模块的运行步骤的流程图。
参照图7,使用小端口的虚拟界面处理模块426的操作具有与前述使用覆盖的情况中的处理步骤实际相同的处理步骤。然而,在用于虚拟界面的初始化步骤中略有不同。
参照图7,在步骤S100中,虚拟界面处理模块426启动操作,并随后在步骤S110'中,判断安装于系统上的视频接口200是否支持小端口以及如果支持小端口的话是否保留了可用资源。如果可以形成小端口,则在步骤S120'中形成小端口 。可使用诸如WINDOWS驱动器开发套件(WINDOWS Driver Development Kit)的开发工具实现形成小端口 。如果视频接口200不支持小端口功能或尽管视频接口200支持小端口功能却没有用于使用小端口的保留的资源,则进入步骤S130'以输出小端口错误消息,并且在步骤S140中,结束虚拟界面处理模块426的操作。
形成小端口之后,在步骤S150中,虚拟界面处理模块426设置操作系统421的全局钩挂。例如,在WINDOWS操作系统的情况下,可以使用API设置全局钩挂。当设置了全局钩挂时,与系统中发生的所有事件有关的消息被最先考虑由虚拟界面处理模块426接收。在完成使用小端口的虚拟界面的前述初始化步骤之后,在步骤160中,使用小端口功能显示虚拟界面屏幕616。之后,根据消息发生的处理步骤与使用覆盖功能的前述实施例的处理步骤相同。
如上所述的本发明的虚拟界面可向显示屏幕提供不活动的应用程序的用户界面,而即使在其它应用程序在具有多任务环境的操作系统中被激活的状态下,也无需使其它已激活的应用程序不活动。具体地,当一个应用程序以独占模式运行且另一个应用程序以不活动的状态执行时,本发明的虚拟界面会非常有用。
例如,当激活在线游戏程序时,该程序独占屏幕资源。因此,为了激活其它应用程序,应当使该在线游戏程序不活动或结束。这种情况下,通过利用本发明的虚拟界面,可以执行处于不活动状态的必要应用程序,而无需使以独占模式运行的应用程序不活动或终止,并可以通过虚拟界面在处于不活动状态的应用程序与用户之间提供界面。
本领域的技术人员在参照几幅附图阅读了上述详细描述之后,无疑会清楚本发明的这些和其它特征和优点。
如上所述,与使用视频存储器中的一般区域并与操作系统直接相关的通常的用户界面不同,本发明的虚拟界面使用覆盖功能或小端口功能独立于操作系统输出虚拟界面屏幕,从而向显示屏幕提供虚拟界面屏幕而不需从操作系统分配屏幕资源。具体地,因为不能从外部监视虚拟界面屏幕,所以使用覆盖的虚拟界面可用于处理诸如密码或ID的等重要信息并因而极其需要安全性的应用程序中。
权利要求
1.一种用于提供虚拟界面的系统,该系统用于提供计算机系统的用户界面,所述计算机系统设有用于显示器的屏幕显示的视频接口,该用于提供虚拟界面的系统包括虚拟界面处理模块,其用于通过独立于操作系统的屏幕显示的视频输出通道提供所述虚拟界面。
2. 如权利要求l所述的用于提供虚拟界面的系统,其中,所述视频 输出通道包括设于所述视频接口中的视频存储器的覆盖区域。
3. 如权利要求2所述的用于提供虚拟界面的系统,其中,所述虚拟 界面处理模块包括虚拟界面屏幕显示模块,其用于使用覆盖驱动器通过所述覆盖区域 显示虚拟界面屏幕;以及消息处理模块,其用于通过在所述计算机系统的所述操作系统中设 置全局钩挂,接收根据事件发生的消息并过滤与所述虚拟界面有关的消 息,并将所述过滤后的结果值提供给所述虚拟界面屏幕显示模块。
4. 如权利要求l所述的用于提供虚拟界面的系统,其中,所述视频 输出通道包括设于所述视频接口中的视频存储器的一般区域。
5. 如权利要求4所述的用于提供虚拟界面的系统,其中,所述虚拟 界面处理模块包括虚拟界面屏幕显示模块,其用于使用小端口驱动器通过所述一般区 域显示虚拟界面屏幕;以及消息处理模块,其用于通过在所述计算机系统的所述操作系统中设 置全局钩挂,接收根据事件发生的消息并过滤与所述虚拟界面有关的消 息,并将所述过滤后的结果值提供给所述虚拟界面屏幕显示模块。
6. 如权利要求l所述的用于提供虚拟界面的系统,其中,通过所述 虚拟界面处理模块使用所述虚拟界面的虚拟界面应用程序运行于不活动状态中。
7. —种用于提供虚拟界面的方法,该方法用于提供计算机系统的用 户界面,所述计算机系统设有用于显示器的屏幕显示的视频接口,该方 法包括以下步骤初始化步骤,在该步骤中,设置操作系统的全局钩挂以通过独立于 操作系统的屏幕显示的视频输出通道输出虚拟界面屏幕;以最高优先权接收根据事件发生的消息并过滤与所述虚拟界面有关 的消息的步骤;以及处理所述过滤后的与所述虚拟界面有关的消息的步骤。
8. 如权利要求7所述的用于提供虚拟界面的方法,其中,所述初始 化步骤包括形成覆盖的步骤,并通过视频存储器中的覆盖区域在显示装 置上显示所述虚拟界面屏幕。
9. 如权利要求7所述的用于提供虚拟界面的方法,其中,所述初始 化步骤包括形成小端口的步骤,并通过视频存储器中的一般区域在显示 装置上显示所述虚拟界面屏幕。
全文摘要
本发明的系统与方法使用不与操作系统直接有关的独立视频输出通道将虚拟界面屏幕输出到显示器。用于实现虚拟界面的一个实施例使用覆盖功能,另一个实施例使用小端口功能。在使用覆盖功能的情况下,视频存储器中的覆盖区域用作显示虚拟界面屏幕的独立视频输出通道。在使用小端口功能的情况下,视频存储器中的一部分共用的一般区域用作显示虚拟界面屏幕的独立视频输出通道。本发明的虚拟界面使用覆盖功能或小端口功能独立于操作系统输出虚拟界面屏幕,从而对显示屏幕提供虚拟界面屏幕,而不需从操作系统分配屏幕资源。
文档编号G06F3/14GK101689098SQ200780053521
公开日2010年3月31日 申请日期2007年9月3日 优先权日2007年6月26日
发明者文昌宣, 表世镇 申请人:文昌宣;表世镇