CN1692333A - 键控事件控制设备 - Google Patents
键控事件控制设备 Download PDFInfo
- Publication number
- CN1692333A CN1692333A CNA2003801004512A CN200380100451A CN1692333A CN 1692333 A CN1692333 A CN 1692333A CN A2003801004512 A CNA2003801004512 A CN A2003801004512A CN 200380100451 A CN200380100451 A CN 200380100451A CN 1692333 A CN1692333 A CN 1692333A
- Authority
- CN
- China
- Prior art keywords
- incident
- keying
- key
- opertaing device
- acceptor
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/543—Local
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/545—Gui
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Input From Keyboards Or The Like (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
抓取接受部(14)接收抓取窗(10)的请求在聚焦窗(34)上抓取所需键控事件。抓取请求部(16)保持若干键控事件请求组,每组包括多个在确定响应于用户的操作结果的键控事件前发出的键控事件,它请求视窗系统(32)通知所有属于包含抓取窗(10)期望获取的键控事件的键控事件请求组的键控事件。结果,在按照键操作方式的由多种功能指定的键操作结果以各个功能的不同的虚拟键控事件予以发出的情况下,能防止因抓取窗(10)通过视窗系统(32)抓取一特定键控事件而造成的故障。
Description
技术领域
本发明一键控事件控制设备,尤其涉及一种改变提供特定键控事件的目的地并滤除键控事件的键控事件控制设备。
背景技术
在诸如Xwindow SystemTM(麻省理工学院的注册商标)的视窗系统中,即一种管理键状态和通知状态变化的普通机构中,当按照键操作使移位键或控制键等修改键与另一键组合时,就发出虚拟键控事件(例如参见“Xwindowhandbook”,ASCII公司,1990,Oliver Jones,Ryo NISHIMURA监制,AkemiMIURA翻译(下称“非专利文档1”))。
在处理多视窗的视窗系统上作事件管理的一种技术,是一种多窗事件管理设备,作为通知事件的目的地,通过一般管理窗控制信息而自动切换聚焦窗(例如参见日本专利待公开公报No.2-139626(下称“专利文档1”))。
但非专利文档1和专利文档1所描述的技术并未考虑到下列情况:键的功能指定的变化基于按钮的时段,例如短按(所谓的“点击”)或长按(所谓的“保持”),或者基于操作键的方式,例如半按或全按。
一例基于按键时段如短按或长按的改变键功能指定的机理,是一种按照键操作根据是短按还是长按来通知不同事件的机理(如参见日本专利待公开公报No.2000-353357(下称“专利文档2”))。
在按照键操作根据短按或长按来指定不同功能的情况中,有时渴望一旦断定了长按就抑制短按事件,但有时即便断定了长按后仍要求通知短按事件。在先按下一键准备作某一操作,之后又在断定长按准备作下一操作的场合中,即使确定了长按也必须通知短事件。一例这样的情况是,按下一键时,开始卷动,在确定长按时,卷速增大(如参见日本专利待公开公报No.2003-162356)。
在此情况下,即使在确定了相应的虚拟键接着完成一系列键操作之前,通知键状态变化的供键设备也得在键操作中通知该相应键或虚拟键的状态。例如,此时的顺序对图21指定的键的长按和短按指定虚拟键“长按键”与虚拟键“短按键”,这里假定该键作长按。首先,按键时,供键设备通知“短按”虚拟键的状态变化。在该键按下时,由于仍处于键操作中,故短按键或长按键都不能被明确地确定。之后,一旦该键被按下一定时段,由此确定为长按操作,该法就通知“长按”虚拟键的状态变化。按照上述方法,在确定一次键操作前,各应用程序都接收虚拟键控事件通知。因而按照此法,一连串接收的虚拟键控事件都在应用程序一侧接受复杂的判断,以便确定哪一键控事件已被确定,并作相应的处理。
至于抓取键控事件,广为流行的Xwindow System实施法如下所述。当按下抓取目标的键时,对其提供键控事件的目的地从有效的应用程序切换到请求抓取的应用程序,而在键松开时,提供路径则回复正常(如参见前述的非专利文档1)。
还有一种情况,用户执行的处理不仅针对一特定的应用程序,还针对所有现有的应用程序。在一特例中,所有应用程序都关闭、减小或增大由它们显示的显示屏。此时,因一般使用的视窗系统没有向所有视窗提供键控事件的机理,故设置了管理视窗的视窗管理器,把通用的操作请求通知该视窗管理器,后者收到上述请求后操作所有视窗。但鉴于视窗管理的特性,准备由常用视窗管理器诸如FVWM对所有视窗执行的操作,限于视窗自身的操作,如增大或减小视窗(如参见David Fries等人的“The Official FVWM Homepage”,2002年7月20日,搜自2002年9月9日,<URL:http://www.fvwm.org>”)。
作为一种补充,有一种输入设备,当对多个视窗准备同时输入文本字符时,它通过查询字符视窗对应表对相应的视窗输出各自的输入字符,该对应表描述了输入字符与准备输入字符的目的窗之间的对应关系(如参见日本专利待公开公报No.8-50542)。
但前述常规技术的第一个问题在于,当向用户指定的应用程序或成为键控事件提供目的地的应用程序(下称“有效应用程序”)和作为先前提供受体的应用程序(下称“抓取应用程序”)二者提供通过一连串键操作发出的作为键控事件抓取结果的多个键控事件时,对各应用程序只通知一部分系列键操作,由此不能准确地取定该功能,使系统执行不希望的操作。
例如,在对一指定键指定“长按”与“短按”虚拟键,而应用程序A是有效应用程序、应用程序B为抓取应用程序的场合中,图22示出了“长按”虚拟键的顺序,其中假定该键被长按。首先,按下该键时,向应用程序A通知“短按”虚拟键的按下事件,接着向应用程序B通知“长按”虚拟键的按下事件。之后,该键松开时,就向应用程序A通知“短按”虚拟键松开事件,向应用程序B通知“长按”虚拟键松开事件。虽然一旦收到了所有四个虚拟键控事件系列就证明该键操作为长按,但是应用程序A只收到“短按”虚拟键控事件的通知;因此,尽管用户未作短按操作,但仍将执行对应于短按的处理。
上述问题是可以设法解决的,其中对某个键指定“长按”与“短按”虚拟键,其方法是按该键时不发出按下事件,因为不能确定用户的操作结果,而在确定了键操作结果时,在键松开时只发出对应于操作结果的“长按”或“短按”虚拟键松开事件。但因该法对支持长按的任一键不发出键按下事件,将在不支持长按操作的键与支持长按操作的键之间发出不同类型的键控事件。这样会造成一个问题,每次更改支持长按操作的键时,也必须更改处理与之有关的键控事件的任一应用程序。为此,即使对不支持长按操作的键也不发出键按下事件,但此法会对每一键的键控事件带来延迟,有损于用户方的可操作性。
第二个问题在于,当在Xwindow System等常用视窗系统中要抓取一专用键时,一旦该键被按下直到被松开时,键控事件的提供目的地就被切换到先前的提供受体。因此,根据虚拟供键次序,即使不是抓取目标的那些键控事件也被供给先前的提供受体。
如在图23所示的顺序中,假定给定的键被长按,对该键指定“长按”与“短按”虚拟键,应用程序A为有效应用程序,应用程序B是抓取“短按”虚拟键的抓取应用程序。由于对应用程序B准备提供从“长按”虚拟键按下事件到“长按”虚拟键松开事件的键控事件,若按“短按”虚拟键按下事件、“长按”虚拟键按下事件、“短按”虚拟键松开事件和“长按”虚拟键松开事件的次序发出虚拟键控事件,会连“短按”虚拟键松开事件也被送给应用程序B。这表明不向应用程序A通知键松开。
为避免因抓取可能不执行任何抓取而造成键控事件的错误提供,从而使键控事件总被提供给有效的应用程序,一种可行的方法是该有效应用程序使提供的键控事件经受复杂的判断,以便切换处理或通知给其它应用程序。但存在一个问题,若渴望以统一的方式在整个系统上对一次特定的键操作作特定的处理,将对可能变为支持上述改进的有效应用程序的每一应用程序是必要的,由此增大了开发花费。另在引入一条不支持上述改进的应用程序,例如第三方开发的公开时,与上述改进相关的任何键操作将证明对这种应用程序无效。例如,在整个系统响应于方式键的长按而通常转换到方式模式时,每条应用程序都要响应于该方式键的长按通知处理方式模式转换。再者,在一段下载的不含上述处理说明的公开软件上,方式键长按将无效,或作不同的处理。
第三个问题在于,在Xwindow system等常用视窗系统中,为防止抓取冲突,只允许第一个提出请求的视窗变成指定键的先前提供受体。换言之,多个视窗不能同时抓取同一键的键控事件。
还有第四个问题,在用户希望用前述由视窗管理器负责管理控制的常规技术对所有视窗作通用处理时,不能对所有视窗执行不是有关视窗自身操作的任何处理,例如取消刚才前一次操作和恢复前一状态的处理或者数据保存处理。
前述有关针对多个视窗的输入设备的常规技术(如参见专利文档2),只关注文本输入;再者,被通知的文本输入只按字符-视窗相依表供给多个视窗。因而在用户的键操作处理中产生多个键控事件时,所有产生的键控事件被各自提供给相应的视窗,造成系统执行不希望操作的第一个问题。
发明内容
本发明旨在解决至少前述的第一与第二问题(其某些变型还可解决第三与第四问题),目的是提供一种键控事件控制设备,在有多视窗的环境中,它对作为先前提供受体的视窗或聚焦视窗提供根据在用户的键操作处理器件出现的多个键控事件确定的键控事件。
本发明的键控事件控制设备包括:抓取接受部,用于接受来自第一受体程序(如前述的抓取应用程序)抓取一期望的键控事件而不是第二受体程序(如前述的有效应用程序)的请求,第二受体程序是来自供键设备(如前述的供键设备)的键控事件的惯常受体;和抓取请求部,用于保持至少一个键控事件请求组,该请求组包括多个可在对应于用户键操作结果的键控事件被确定前发出的键控事件,并请求供键设备向键控事件控制设备通知所有属于至少一个含所需键控事件的键控事件请求组中一个的键控事件。
根据本发明,单台键控事件控制设备一般获取所有通过一连串键操作发出的涉及多个键的事件,由此可防止因提供在聚焦窗与先前提供受体视窗之间被分裂而造成的故障。
根据本发明诸变型,可取得以下效果。
能防止抓取不足抓取目标的键控事件的问题和多个视窗不能抓取同一键控事件的问题,这些问题是由一般使用的视窗系统先前键获取机理设计造成的。
如上所述,即使在键功能按键操作变化的环境中,应用程序也能抓取键控事件。因此在渴望以统一方式在整个系统上对特定键操作作特定处理时,若把抓取该键控事件的一条应用程序改称支持这样做就够了,不必专门处理其它现有的应用程序。所以,即使在一条应用程序诸如一段下载的公开软件上,可对整个系统作同一的处理。
通过对所有视窗广播一特定事件,用户能在所有视窗上一般执行处理不被视窗管理器支持的视窗操作以外的处理。
而且对现有系统应用本发明时,只要另添键控事件控制设备,无须更改视窗系统,故能利用常用的视窗系统,减少了软件开发规模、开发成本和开发步骤数。
附图简介
图1是本发明实施例1的键控事件控制设备示例配置框图。
图2是本发明的示例键控事件请求组。
图3是本发明的另一示例键控事件请求组。
图4是本发明的示例键控事件确定组。
图5是本发明的另一示例键控事件确定组。
图6是本发明的键控事件确定组示例数据结构。
图7是本发明的键控事件保持部示例数据结构。
图8是本发明实施例1的键控事件抓取请求过程流的流程图。
图9是本发明实施例1的键控事件滤除过程流的流程图。
图10是本发明实施例2的键控事件控制设备示例配置框图。
图11是本发明实施例2的键控事件滤除过程流的流程图。
图23示出本发明实施例2的键控事件滤除过程一特例。
图13示出本发明实施例2的键控事件滤除过程另一特例。
图14示出本发明实施例2的键控事件滤除过程又一特例。
图15是本发明实施例3的键控事件控制设备示例配置框图。
图16是本发明实施例3的键控事件滤除过程流的流程图。
图17是本发明实施例4的键控事件控制设备示例配置框图。
图18是本发明实施例4的键控事件抓取请求过程流的流程图。
图19是本发明实施例4的键控事件提供过程流的流程图。
图20是本发明实施例5的键控事件控制设备示例配置框图。
图21是支持“长按”与“短按”虚拟键时常规技术的处理顺序图。
图22是出现短按处理故障时常规技术的处理顺序图。
图23时出现错误提供不是抓取目标的键控事件时常规视窗系统的处理顺序图。
实现本发明的较佳方式
下面参照附图描述本发明的实施例。
虽然诸实施例描述把视窗系统用作供键设备,但是本发明也适用于应用视窗系统以外的供键设备的情况,如在实时OS中在任务间通信期间通知键状态变化的机理。提供键目标不限于视窗,可以是任何程序(包括应用程序、子窗等)。
实施例1
作为本发明实施例1,图1示出键控事件控制设备执行键控事件抓取请求处理和键控事件滤除处理的情况。
图1是本发明实施例1的键控事件控制设备示例配置框图。
作为一例供键设备,视窗系统32具有向预定视窗提供键控事件的功能。虽然视窗系统32一般向聚焦视窗提供键控事件,但是也向特定视窗提供专用键。聚焦视窗是被用户或应用程序指定键控事件提供目的地的视窗。
本例中,虽然视窗系统32一般向聚焦视窗34提供键控事件,但某些键控事件通过键控事件控制设备12由视窗系统32通知给抓取窗10。这里的抓取窗10一是被要求从键控事件控制设备12里抓取特定键控事件的视窗,可以是聚焦窗34。
图1的键控事件控制设备12包括抓取接受部14、抓取请求部16、键控事件提供部18、键控事件转换部20、提供的键控事件判断部22、键控事件保持部24、键控事件删除部26、保持的内容清除部28和键控事件获取部30。
先描述键控事件抓取请求处理。
抓取接受部14接受抓取窗10的抓取请求(包括指示要抓取键控事件的信息),存贮该请求,并通知抓取请求部16已接受抓取请求。
抓取请求部16先保持键控事件请求组36,后者包括多个图2示例的键控事件。抓取请求部16可保持多个键控事件请求组。若被抓取接受部14通知为抓取目标的键控事件属于抓取请求部16保持的任一键控事件请求组,抓取请求部16就请求视窗系统32抓取所有属于该键控事件请求组的键控事件。
每个键控事件请求组包括多个在对应于用户的操作结果的键控事件被确定之前发出的键控事件。
例如,若对键X存在分别通知长按(所谓的“保持”)操作和短按(所谓的“点击”)操作的长按键控事件与短按键控事件,而且若用户具有长按键X,则在用户按下键X时,视窗系统32就发出X短按键按下事件。之后,在过了一定时段后确定长按时,视窗系统32则发出X长按键按下事件。然后,当用户放开(即松开)键X时,视窗系统32便发出X短按键松开事件和X长按键松开事件。这样,在用户的长按键操作期间也发出短按键控事件。抓取请求部16保持所有上述四个在长按键操作中发出的作为键控事件请求组36的键控事件,如图2所示。若抓取窗10对包括在该键控事件请求组36内的上述四个键控事件的任一个提出抓取请求,抓取请求部16就请求视窗系统32抓取所有包含在键控事件请求组36里的上述四个键控事件。
对另一种情况,在两个键A和B同时按下时发出虚拟键控事件的情况下,该虚拟键不同于在键A或B单独按下时发出的虚拟键,抓取请求部16保持四个在同时按下操作(A按、A松、B按、B松)键控事件请求组37期间发出的键控事件,如图3所示。若抓取这四个键控事件中的任一个,则抓取请求部16请求视窗系统32抓取所有上述四个包含在键控事件请求组37里的键控事件。
抓取请求部16可同时保持图2所示的键控事件请求组36和图3所示的键控事件请求组37。
一旦键控事件控制设备12请求视窗系统32抓取特定的键控事件,视窗系统33就在以后向键控事件控制设备12通知这类特定的键控事件,并向聚焦窗34通知任何其它的键控事件。结果,键控事件控制设备12将一般获取所有在特定键操作期间发出的键控事件,从而防止因在聚焦窗与作为先前提供受体(抓取窗)的视窗之间以分裂方式提供键操作期间发出一连串键控事件而造成的任何故障。
接着描述键控事件滤除处理。
键控事件获取部30获取视窗系统32通知的键控事件,并把该键控事件通知提供的键控事件判断部22,同时通知键控事件删除部26和保持的内容清除部28已获取一键控事件。键控事件获取部30可用指示已获取一键控事件的某一事件作这种通知,或用获取的键控事件本身作通知。
提供的键控事件判断部22接收来自键控事件获取部30的该键控事件,把该键控事件存贮到键控事件保持部24,并确定要提供的键控事件。当明确确定了要提供的键控事件时,提供的键控事件判断部22向键控事件转换部20通知该确定的键控事件,并清除贮存在键控事件保持部24里的这一确定的键控事件,只有在不明确地确定要提供的键控事件时,提供的键控事件判断部22才把接收自键控事件获取部30的键控事件存贮到键控事件保持部24。键控事件保持部24的详情将在后面描述。
在确定要提供的键控事件时,提供的键控事件判断部22把先前设备的键控事件确定组用作确定的判断依据。键控事件确定组包括多个键控事件,用于确定无法只根据单个键控事件确定的键操作。例如,若可对给定的键X作短按与长按操作,在视窗系统32刚发出X短按的键按下事件时,就无法明确地确定用户的键操作是短按操作还是长按操作。换言之,在得到了X短按的键按下事件和X短按的键松开事件二者时,用户的键操作只能被断定为短按操作。因此,在提供的键控事件判断部22中,由X短按的键按下事件和X短按的键松开事件组成的这一对被预先保持为一键控事件确定组38,如图4所示。对于长按操作,只要单独发出X长按的键按下事件,就能把用户的键操作定位长按操作,因而针对长按操作的键控事件确定组就不需要了。可在提供的键控事件判断部22中设置多个键控事件确定组。
作为另一例键控事件确定组,在同时按下A与B两个键时发出虚拟键控事件(X按下)的场合中,该虚拟键控事件不同于键A或B单独按下时发出的虚拟键控事件,在提供的键控事件判断部22中设置了如图5中(a)~(d)所示的四个键控事件确定组39a~39d。此时,键控事件转换部20把由A键按下事件和B键按下事件组成的对转换为X键按下事件,把由A键松开事件和B键松开事件组成的对转换成X键松开事件。由A键按下事件和A键松开事件组成的对和由B键按下事件和B键松开事件组成的对都不转换。
图6示出设置在提供的键控事件判断部12中的键控事件确定组的示例数据结构。设置管理信息40含一被设置的多个键控事件确定组数据44的一系列地址42a~42d,每一键控事件确定组数据44包含键控事件信息48的地址46a~46d,指示有关属于该组的各别键控事件的信息。像规定键控事件的信息那样,键控事件信息48包含指示事件种类例如按下或松开的键控事件种类50和指示该事件对应加你的键码52。键控事件信息48可以是能规定键控事件的任一信息。不把键控事件种类50和键码52描述成键控事件信息48,而是对各键控事件指定一ID,该ID可描述为键控事件信息48。至于键控事件确定组的设置方法,可在系统开发时静态地配用键控事件确定组,或按任意时序动态地设置,具体按应用要求。设置的键控事件确定组的组元就是只根据单一键控事件不能确定键操作结果的键控事件,故包括所有确定键操作必需的键控事件。
键控事件保持部24暂时保持至少单独单个键控事件不能确定键操作结果的键控事件,并被构成存贮器件,诸如能暂时保持被保持键控事件的存储器。图7示出一示例的保持在键控事件保持部24中的数据的数据结构。在被保持数据54中,保持了被保持事件数据58的地址56a~56e的清单。各事件数据58含有指示事件种类如按下或松开的键控事件种类60、出现事件时识别聚焦窗的窗标识符62、事件发生事件64和指示事件对应键的键码66。但该事件数据58取决于通知事件的视窗系统32的技术规范,故可从中消除任一不必要的前述键控事件种类60、窗标识符62、事件发生时间64和键码66。而且,事件数据58可包含屏上出现该事件的坐标、在多屏情况下规定某一屏的屏标识符等。
在对键控事件保持部24只存贮单按单个键控事件不能确定键操作结果的键控事件时,准备由键控事件保持部24保持的键控事件限于包含在被设置于提供的键控事件判断部22里的任一键控事件确定组中的键控事件。
键控事件转换部20把提供的键控事件判断部22所确定的键控事件转换成其它键控事件。转换键控事件的方法包括:把多个键控事件组合在一起以转换成另一键控事件;把单个键控事件转换成多个键控事件;把单个键控事件转换成另一键控事件等。在RIGHT键按下事件和UP键按下事件被确定为要提供的键控事件时,多键组合例如可以是把这两个键控事件转换成UPPER RIGHT键按下事件。单个键控事件转换成多个键控事件与上例相反,如把UPPER RIGHT键按下事件转换成RIGHT键按下事件和UP键按下事件。单个键控事件转换成另一键控事件可以是例如把RIGHT键按下事件转换成UP键按下事件。这类转换可通过在上例的键控事件转换部20中预先设置转换规则,并运用键控事件转换部20把提供的键控事件判断部22所确定的键控事件转换成要提供的键控事件而实现,转换要遵循转换规则。键控事件转换部20不必转换所有键控事件。对于非转换目标的键控事件,键控事件转换部20把它们通知给键控事件提供部18而不作任何转换。
键控事件提供部18向抓取窗10通知由键控事件转换部20告知的键控事件。例如把键控事件写到抓取窗10的事件队列,可实现事件提供。
根据键控事件获取部30的通知,键控事件删除部26被键控事件控制设备12获取的特定键控事件触发时,删除保持在键控事件保持部24里的特定键控事件。
如在被获取的键控事件a触发时准备删除键控事件6的情况下,当键控事件获取部30通知获取了键控事件a时,键控事件删除部26就删除键控事件保持部24里的键控事件6(若保持在里面的话)。若键控事件b未保持在键控事件保持部24中,则键控事件删除部26不作删除。还能指定多个要删除的键控事件,如在获取键控事件a时,删除键控事件b与c。
当获取了一特定键控事件而必须消除前一键控事件时,就设置这类键控事件删除规则。如在根据某一键的短按与长按准备分别通知短键按下事件和长键按下事件的情况下,在获取了长按键按下事件时,就必须消除先前刚通知的短按键按下事件。因此设置了一项规则,指明在被长按键按下事件触发时就删除短按键按下事件。同样要设置一项规则,指明在获取了长按键松开事件就删除短按键松开事件。在存在松开与键按下事件种类的情况下,通过在获取了键按下事件时删除保持在键控事件保持部24中的键松开事件,可防止因前一次键操作发出的松开事件保留在键控事件保持部24里而造成的故障。
若键控事件控制设备12在一定时段内未获得任何键控事件,保持的内容清除部28就删除所有保持在键控事件保持部24里的键控事件。保持的内容清除部28有一测量一直未获得键控事件的时间量的计时器,并被构成根据键控事件获取部30的通知,键控事件控制设备12每次获取一键控事件时就使该计时器复位,而在计时器的时间超过预设的预定值时,就清除保持在键控事件保持部24里的内容。
下面描述一特例。在响应于某键的短按与长按分别通知短按的键控事件和长按的键控事件时,单用短按的键按下事件无法确定键操作,因为以后会作长按操作。短按操作只能在保证了短按的键按下事件和短按的键松开事件二者时才被确定,因此在提供的键控事件判断部22中设置了一种有两个组元的键控事件确定,两组元即是短按的键按下事件和短按的键松开事件。提供的键控事件判断部22把键控事件保持部24保持的键控事件与设置的键控事件确定组作比较,若属于一指定键控事件确定组的所有键控事件都保持在键控事件保持部24,就确定这些键控事件未准备提供的键控事件。
如在有三个键控事件a、b、c并把键控事件a与b组成的对X和键控事件a与c组成的对Y设置成键控事件确定组的场合中,在只把键控事件a保持在键控事件保持部24里时,提供的键控事件判断部22不作任何处理。之后,当把键控事件b另行保持在键控事件保持部24里时,就都保持了属于键控事件确定组X的键控事件a和b。因此,键控事件a和b被确定为准备提供的键控事件;这些键控事件a和b从键控事件保持部24中被删除,而被通知到键控事件转换部20。同样地,若在保持着键控事件a时将键控事件c加到保持的内容里,就全部保持了属于键控事件确定组y的键控事件a和c,因而把键控事件a和c确定为准备提供的键控事件。若在保持了键控事件b和c时把键控事件a加到保持的内容里,则运用下列方法确定准备提供的属于键控事件确定组x或y的键控事件:形成一个由键控事件b和c中准备先保持的一个和键控事件a组成的对,或者对键控事件确定组指定优先权。
在有四个键控事件a~d而且把键控事件a和b组成的对X和键控事件a和c组成的对y定为键控事件确定组的情况下,把作为对x和y的组元的键控事件a、b、c保持在键控事件保持部24里,但键控事件d通过键控事件转换部20被通知给键控事件提供部18,不保持在键控事件保持部24里。
作为前述要解决的问题,若必须对抓取窗10立即通知键状态变化,可通过去激属于希望立即被获取的键控事件确定组的键控事件而实现。参照上例,若希望立即获取键控事件b,通过去激键控事件确定组x,可通过键控事件转换部20向键控事件提供部18通知键控事件b,不必把它保持在键控事件保持部24里,并由键控事件提供部18通知给抓取窗10。
下面参照图8的流程图描述本发明实施例1的键控事件抓取请求处理的流程。
首先,抓取接受部14接受抓取窗10请求要抓取的键控事件,存贮这一请求,并通知抓取请求部16已接受了请求(s10)。
然后,抓取请求部16获取请求抓取的该键控事件的种类,检查该键控事件是否包含在被保持在抓取请求部16里的任一键控事件请求组内(s12)。若键控事件包含在任一键控事件请求组内(s12,yes),抓取请求部16就请求视窗系统32抓取内含该键控事件的键控事件请求组的所有组元(s14);反之,若该键控事件不包含在任一键控事件请求组内(s302,NO),则抓取请求部16请求视窗系统32只抓取该键控事件(s16)。
接着参照图9的流程图描述实施例1的键控事件滤除处理的流程。
首先,键控事件获取部30从视窗系统32中获取一键控事件,把获取的键控事件通知给提供的键控事件判断部22,并通知保持的内容清除部28和键控事件删除部26已获取一键控事件(S18)。然后,保持的内容清除部28使计时器复位(S20)。若获取了触发删除的键控事件,键控事件删除部26就检查要被删除的键控事件是否保持在键控事件保持部24内(S22),若保持了(S22,YES),则键控事件删除部26从键控事件保持部24中删除要被删去的该键控事件(S24)。
然后,提供的键控事件判断部22检查获取的键控事件是否单独导致操作的确定,或换言之,在通知另一键控事件之前是否无法确定键操作(S26)。该确定基于获取的键控事件是否包含在被设置在提供的键控事件判断部22里的任一键控事件确定组内。若获取的键控事件不包含在任一键控事件确定组内(S26,YES),处理就进到S38;反之,若获取的键控事件包含在任一键控事件确定组内(S26,NO),则把该获取的键控事件保持在键控事件保持部24里(S28)。接着,提供的键控事件判断部22在设置的诸键控事件确定组中间检查是否存在其所有组元键控事件都被保持在键控事件保持部24的对(键控事件确定组)(S30)。若存在这样的对,就把所有属于该对的键控事件定为要提供的键控事件,并对键控事件转换部20通知这些要提供的键控事件(S32)。之后,键控事件转换部20检查是否有转换这些要提供的键控事件的规则(S34),若找到这种规则,就按该规则转换这些要提供的键控事件(S36)。
键控事件提供部18向抓取窗10提供:
被步骤S26的检查断定为不包含在任一键控事件确定组里的键控事件;若在步骤S36转换,准备提供的转换的键控事件;若不作步骤S36的转换,在S32被断定为要提供的键控事件(S38)。
虽然图9的流程图为未示出,但是若测量视窗系统32不向键控事件控制设备12通知键控事件的时间量的计时器的计时值超出一预定值,保持的内容清除部28就清除保持在键控事件保持部24里的内容。
如上所述,因键控事件控制设备12在必要时暂时保持视窗系统32在键控制器件发出的键控事件,并在确定了该键操作后向抓取窗10通知键控事件,故能防止由键操作期间发出的键控事件造成的故障。
在必须向抓取窗10立即通知键状态变化时,可通过去激设置在提供的键控事件判断部22里的键控事件确定组而实现。
保持的内容清除部28和键控事件转换部20若无必要,可以省掉。
还能实现一种相当于键控事件删除部26的功能,故不必设置键控事件删除部26。此时,可对每一段包括键控事件确定组的键控事件信息48增设一可提供/不可提供标志,在保持了所有属于一键控事件确定组的键控事件时,用于指定要提供和不要提供的键控事件。然后,当属于键控事件确定组102的所有键控事件被保持在键控事件保持部24里时(S30,YES),提供的键控事件判断部22就在S32只把可提供/不可提供标志指示“可提供”的键控事件定为要提供的键控事件,并从键控事件保持部24中删除那些指示为『“不可提供”的键控事件。因此,不必设置键控事件删除部26,能抑制键操作期间产生的键控事件,而只提供限定键操作结果的键控事件。
第二实施例
作为本发明的实施例2,将描述一种键控事件滤除处理与实施例1不同的示例键控事件控制设备。
图10是本发明实施例2的键控事件控制设备的示例配置框图,图中与图1所示同类的组成元件采用同样的标号并不再对其描述。
图10的键控事件控制设备68包括抓取接受部14、抓取请求部16、键控事件提供部18、键控事件生成部70、键按下事件废弃部72、键松开事件废弃部74和键控事件获取部30。
抓取接受部14、抓取请求部16、键控事件提供部18和键控事件获取部30与实施例1相似,不再描述。
键松开事件废弃部74内部存贮了要废弃的目标,根据键控事件获取部30通知的键控事件中间废弃任一与废弃目标相符的键松开事件。而且,当键松开事件废弃部74废弃每个键松开事件时,它就把该键控事件定为不再是废弃目标。在初始状态,键松开事件废弃部74中不存在废弃目标。当键控事件获取部30通知键按下事件时(比如“L键按下事件”),若存在要发出的键按下事件(比如“S键按下事件”),按下时间短于发出L键按下事件的按下时间,则把作为S键按下事件的配对物的S键松开事件定为废弃目标。
现在描述键松开事件废弃部74的一示例处理。假定按下指定键x时产生键按下事件x0;在保持按下事件T1后产生键按下事件x1;在保持按下事件T2(T1<T2)后产生键按下事件x2;在松开键x时产生键松开事件x0;在键x按下时间T1或更长后松开键x时产生键松开事件x1;在键x按下时间T2或更长后松开时产生键松开事件x2,这样键松开事件废弃部74在获取了键按下事件x0时不作处理,因为不存在可以短于它的按下时间产生的键控事件。在获取键按下事件x1时,由于存在可在按下时间短于键按下事件x1的按下时间产生的键按下事件(键按下事件x0),键松开事件废弃部74就把相应的键松开事件x0定为废弃目标。当获取了键按下事件x2时,由于存在可以按下时间短于键按下事件x2的按下时间产生的键按下事件(键按下事件x0和键按下事件x1),故键松开事件废弃部74就把其相应的键松开事件x0和x1定为废弃目标。之后,当获取键松开事件x0时,若键松开事件x0已被定为废弃目标,键松开事件废弃部74就废弃键松开事件x0,之后不再把键松开事件x0定为废弃目标。同样地,当获取键松开事件x1时,若键松开事件x1已被定为废弃目标,它就被废弃,之后不再把它定为废弃目标。
在从键松开事件废弃部74里获取了不是在指定键按下最长时间后松开而发出的键松开事件的任一键松开事件后,键控事件生成部70就生成一对应于该键松开事件的键按下事件,并把它通知给键控事件提供部18。参照上例,对键x,当它被按下最长时间后松开时所发出的键松开事件就是键松开事件x2。因此,键控事件生成部70在获取键松开事件x0时产生键按下事件x0,而在获取键松开事件x1时产生键按下事件x1。这对任何其它键都一样;例如,若键y的松开事件是键松开事件y0~y4,而且键松开事件y4在该键按下最长时间后松开时产生,则响应于获取的键松开事件y0~y3,键控事件生成部70将分别产生键按下事件y0~y3。
键按下事件废弃部72废弃任何不是在各键按下最长时间发出的键按下事件的键按下事件。参照上述,对键x,在它按下最长时间时发出的键按下事件是键按下事件x2,因而在获取键按下事件x0和x1时,键按下事件废弃部72就把它们都废弃。这对任何其它键都一样;例如,若键y的按下事件是键按下事件y0~y4,而且键按下事件y4在被按下最长时间时产生,则键按下事件y0~y3被获取时,键按下事件废弃部72就将它们都废弃。
下面参照图11的流程图描述本发明实施例2的键控事件控制设备的键控事件滤除处理流程,图中与图9相似的步骤都采用同样的标号。
首先,键控事件获取部30从视窗系统32中获取一键控事件,并把该获取的键控事件通知键松开事件废弃部74(S18);后者检查该获取的键控事件是否为键按下事件(S40),若是键按下事件(S40,YES),它就自动设置一废弃目标,即作为能以按下时间短于该键按下事件的按下时间产生的键按下事件配对物的键松开事件,并向键按下事件废弃部72通知获取的键按下事件(S42);于是键按下事件废弃部72检查键松开事件废弃部74通知的键按下事件是否为在该键按下最长时间时产生的键按下事件(S44),若键按下事件不是在按下最长时间时产生的键按下事件(S44,NO),就被废弃(S46);若键按下事件是在按下最长时间时产生的键按下事件(S44,YES),则把该键按下事件通知给键控事件提供部18。
另一方面,若键控事件获取部30获取的键控事件是键松开事件(S40,NO),键松开事件废弃部74就检查获取的键松开事件是否被定为废弃目标(S48);若被定为废弃目标(S48,YES),键松开事件废弃部74就废弃该键松开事件(S50),之后不再把它定为废弃目标(S52);反之,若获取的键松开事件不悖定为废弃目标(S48,NO),则键松开事件废弃部74把获取的键松开事件通知给键控事件生成部70,于是后者检查键松开事件废弃部74通知的该键松开事件是否为在键按下最长时间时产生的键松开事件(S54),若是的话(S54,YES),就向键控事件提供部18只通知键松开事件废弃部74所通知的键控事件;若不是(S54,NO),则键控事件生成部20产生一键按下事件,把同一键的按下通知为对应于被通知的键松开事件,并向键控事件提供部18通知由键松开事件废弃部74所通知的键控事件和产生的键按下事件(S56)。
最后,键控事件提供部18向抓取窗10提供由键控事件生成部70或键按下事件废弃部72通知的键控事件(S38)。
通过上述处理,例如在对应于一指定键的短按(10)、中按(1)和长按(2)而发出键按下事件和键松开事件的情况下,若键被长按,就向键控事件提供部18只通知指示长按的键控事件(按下2,松开2),如图12所示;若键被中按,便向键控事件提供部18只通知指示中按的键控事件(按下1,松开1),如图13所示;若键被短按,则向2提供部18只通知指示短按的键控事件(按下0,松开0),如图14所示。
这样,在有两种键控事件即松开和按下,而且它们对不同的键根据键按下长度被通知为事件的情况下,键控事件控制设备抑制了在键操作期间发出的键控事件,并在确定键操作时通知被确定的键控事件,因而能防止因在键操作期间发出的键控事件而造成的故障。
在必须立即通知键状态变化时,可不用键控事件控制设备12而实现,让抓取窗10从视窗系统32中直接获取键控事件。
实施例3
作为本发明的实施例3,描述一键控事件滤除处理与实施例1和2不同的示例键控事件控制设备。
图15是本发明实施例3的键控事件控制设备的示例配置框图,图中与图1中相似的元件应用同样的标号并不再描述、
图15的键控事件控制设备包括抓取接受部14、抓取请求部16、键控事件提供部18、键控事件保持部24、键按下事件处理部78、键松开事件处理部80和键控事件获取部82。
抓取接受部14、抓取请求部16、键控事件提供部18和保持部24都与实施例1相似,不再描述。
键控事件获取部82获取视窗系统32通知的键控事件,根据键控事件的种类,把它传给键按下事件处理部7或键松开事件处理部80。键按下事件处理部78把长按的键按下事件传到键控事件提供部18,把短按的键按下事件传到键控事件保持部24;键松开事件处理部80把长按的键松开事件传到键控事件提供部18。在收到短按的键松开事件时,若键按下事件保持在键控事件保持部24中,键松开事件处理部80就将该键按下事件与收到的短按的键松开事件都传到键控事件提供部18。
下面参照图16描述本发明实施例3的键控事件控制设备的键控事件滤除处理流程,图中与图9相似的步骤都采用同样的标号。
首先,键控事件获取部82获取视窗系统32里的键控事件(S18),若获取的键控事件是键按下事件,就把它传到键按下事件处理部78,若是键松开事件,则把它传到键松开事件处理部80(S58)。
若该键控事件被传到键按下事件处理部78,后者判断从键控事件获取部30传来的该键控事件是否为长按的键按下事件(S60),若不是(S60,NO),就把该键控事件存贮到键控事件保持部24(S66);反之,若传来的键控事件是长按的键按下事件(S60,YES),则删除存贮在键控事件保持部24里的键按下事件(S62),把长按的键按下事件传到键控事件提供部18,后者把传来的键控事件供给抓取窗10(S64)。
若该键控事件传到键松开事件处理部80,后者就判断从键控事件获取部82传来的键控事件是否为长按的键松开事件(S68);若不是(S68,NO),则检查键控事件保持部24中是否保持了键按下事件(S72),若保持了键按下事件(S72,YES),把该键按下事件从键控事件保持部24里检出并传到键控事件提供部18,而且还把键控事件获取部82传来的该键松开事件传到键控事件提供部18,后者向抓取窗10提供传来的键控事件(S76)。反之,若键控事件保持部24里不保持键按下事件(S72,NO),就废弃键控事件获取部82传来的该键松开事件(S74)。若键控事件获取部82传来的键控事件是长按的键松开事件,则把该键控事件传到键控事件提供部18,后者向抓取窗10提供该传来的键控事件(S70)。
因此,在有两种键控事件即松开与按下,而且根据键按下长度把它们通知为不同键控事件的情况下,键控事件控制设备抑制了键操作期间发出的键控事件,在确定键操作时通知被确定的键控事件,由此防止了因键操作期间发出键控事件而造成的故障。
实施例4
现在描述本发明实施例4的示例键控事件控制设备。
图7是本发明实施例4的键控事件控制设备的示例配置框图,图中与图1相似的元件用同样的标号指出且不再描述。
通过键控事件控制设备96,向抓取窗10、聚焦窗34、另一视窗84或其它键控事件控制设备83a、83b通知由视窗系统32通知的输入键控事件。在有多个抓取窗的情况下,为对各抓取窗设置键控事件控制设备96的诸属性(如键控事件确定组和要抓取的键控事件),各抓取窗使用一个键控事件控制设备。另一视窗84既非抓取窗,也不是聚焦窗。其它键控事件控制设备83a、83b是除了键控事件控制设备96之外的键控事件控制设备,分别被抓取窗10以外的抓取窗使用。抓取窗10可以是聚焦窗34。
图17的键控事件控制设备96包括抓取接受部14、传递请求部86、搜索部88、抓取请求部16、键控事件分配的提供部90、键控事件传递部92、广播部94、键控事件转换部20、提供的键控事件判断部22、键控事件保持部24、键控事件删除部26、保持的内容清除部28和键控事件获取部30。
抓取接受部14、抓取请求部16、键控事件转换部20、提供的键控事件判断部22、键控事件保持部24、键控事件删除部26、保持的内容清除部28和键控事件获取部30与实施例1的相似,不再描述。
抓取请求部16保持所有在对应于用户操作结果的键控事件被确定为键控事件请求组之前发出的多个键控事件。若作为抓取接受部14通知的抓取目标的键控事件属于任一键控事件请求组,抓取请求部16就请求视窗磁通32抓取所有属于该键控事件请求组的键控事件。若根据来自视窗系统32的回复,发现请求抓取的该键控事件已被任一其它键控事件控制设备抓取,则抓取请求部16向搜索部88通知这一情况。
收到抓取请求部16通知的向视窗系统32的抓取请求失败时,因为抓取窗10请求的键控事件已被任一其它键控事件控制设备抓取了,搜索部88就在多个其它键控事件控制设备中间搜索已成功抓取由抓取窗10请求的键控事件的键控事件控制设备。一例特定的这种搜索法可以是在共享存储器等内存贮其抓取请求已获成功的键控事件控制设备的标识符并对其共享存储器作查询的方法,或在搜索时向所有键控事件控制设备播发搜索请求并获取回复的方法等。
传递请求部86请求如搜索部88发现已抓取成功的键控事件控制设备(这里假定为其它键控事件控制设备83a)让抓取窗10请求抓取的键控事件传递给键控事件控制设备96的键控事件获取部30。利用视窗系统提供的事件传输功能(如在XWindow System场合中的XSend Event)、共享存储器等,可实现该传递请求的通知。
广播部94保持准备广播的键控事件种类,当从键控事件转换部20获取要广播的键控事件时,就向所有现有的视窗广播该键控事件。
收到来自其它键控事件控制设备83b的传递请求部的传递请求后,键控事件传递部92就存贮请求的键控事件和提出该请求的键控事件控制设备的标识符,并在获取了请求的键控事件后,把该键控事件传递给提出请求的键控事件控制设备83b。
键控事件分配的提供部90向抓取窗10和聚焦窗34提供被提供的键控事件判断部22断定为要提供的键控事件(或者,若要提供的键控事件被键控事件转换部20转换,就是转换后的键控事件)。键控事件分配的提供部90向抓取窗10通知抓取接受部14从抓取窗10接收了请求的键控事件,并向聚焦窗34通知任何其它键控事件。视窗系统的聚焦窗获取功能例如在XWindow System场合中的XGet Window Focus,可执行聚焦窗判断。
接着参照图18的流程图描述本发明实施例4的键控事件抓取请求处理流程,图中与图8相似的步骤用同样的标号指示并不再描述。
步骤S10、S 12、S14和S16与实施例1的相似。
在步骤S14或S16请求视窗系统32抓取键控事件后,抓取请求部16检查抓取请求的结果(S78),若抓取请求因该请求的键控事件已被另一键控事件控制设备抓取而告失败(S78,YES),抓取请求部16就通知搜索部88失败。响应于该通知,搜索部88搜索已抓取请求的键控事件的键控事件控制设备(S80)。
最后,传递请求部86向搜索部88找到的该键控事件控制设备(这里假设是另一键控事件控制设备83a)通知传递请求,以便传递抓取窗10提出抓取请求的键控事件,由此结束处理(S82)。
下面描述实施例4的键控事件获取处理。在实施例4中,图6步骤S11的处理与实施例1的处理不同。在键控事件获取后直到确定要提供的键控事件的处理,与图6的S101~S110相似而不再描述。
图19示出实施例4的键控事件提供处理的流程图。首先,广播部94检查接收自键控事件转换部20的要提供的键控事件,判断它是否包含在要广播的内存的键控事件种类中间(S84)。若要提供的键控事件包含在要广播的键控事件中间(S84,YES),广播部94就向所有视窗系统32示出的视窗提供要提供的键控事件,从而结束处理(S86)。
反之,若要提供的键控事件不包含在要广播的键控事件中间(S84,NO),广播部94就向键控事件传递部92通知要提供的键控事件。收到通知后,键控事件传递部92检查另一键控事件控制设备是否对收到的要提供的键控事件提出了传递请求(S88),若提出了传递请求(S88,YES),键控事件传递部92就把要提供的键控事件传递给提出了传递请求的键控事件控制设备(这里假定是另一键控事件控制设备83b),并向键控事件分配的提供部90通知该要提供的键控事件(S90)。接着,键控事件分配的提供部90检查接收自键控事件传递部92的要提供的键控事件是否包含在抓取窗10所请求的键控事件种类中间(S92)。若请求要提供的键控事件被抓取窗10抓取(S92,YES),键控事件分配的提供部90就把要提供的键控事件传递给抓取窗10(S94)。反之,若要提供的键控事件未被请求被抓取窗10抓取(S92,NO),则键控事件分配的提供部90向聚焦窗34提供要提供的键控事件(S96)。
如上所述,通过在诸键控事件控制设备间传递键控事件,多个视窗可同时抓取同一键控事件。
若无必要,可省略广播部94、搜索部88和传递请求部86。
本例中与实施例1描述的键控事件滤除处理相关的元件(即键控事件转换部20、提供的键控事件判断部22、键控事件保持部24、键控事件删除部26和保持的内容清除部28)可用实施例2所述的元件代替(即键控事件生成部70、键按下事件废弃部72和键松开事件废弃部74)。
实施例5
现描述本发明实施例5的示例键控事件控制设备。
图20是本发明实施例5的键控事件控制设备的示例配置框图,图中与图1和17相似的元件用同样的标号指示并不再描述。
实施例与同实施例3的差异在于,设置的键控事件分配的提供部90用来取代键控事件提供部18。键控事件分配的提供部90询问抓取接受部14由键松开事件处理部78或键按下事件处理部80传来的键控事件是否请求被抓取窗10抓取,若请求要抓取,就向抓取窗10提供该键控事件;反之,若传来的键控事件不请求抓取窗10抓取,则把该键控事件供给聚焦窗34。
上述实施例1~5的键控事件控制设备可用计算机和程序构成,计算机包括计算单元和硬盘与RAM之类的存贮设备,程序让计算机执行上述诸流程图中各个步骤的处理。程序可预先存贮在存贮设备上,或经通信网提供给计算单元,或经任一记录媒体如CD-R或DVD提供给计算单元。
工业适用性
根据本发明,例如在只将预定的一个个视窗系统发出的键控事件先行供给特定视窗的情况下,能防止出现故障。
Claims (13)
1.一种键控事件控制设备,用于获取指示来自供键设备通知键状态变化的键操作结果的键控事件,并把获取的键控事件供给预定的受体程序,其特征在于包括:
抓取接受部1)用于接收来自第一受体程序而不是第二受体程序的抓取所需键控事件的请求,所述第二受体程序是来自供键设备的一般键控事件受体;和
抓取请求部,用于保持至少一个键控事件请求组,所述请求组包括多个在确定对应于用户键操作结果的键控事件前发出的键控事件,并请求供键设备向键控事件控制设备通知所有属于至少一个包含所需键控事件的键控事件请求组的键控事件。
2.如权利要求1所述的键控事件控制设备,其特征在于还包括一键控事件分配的提供部,用于向第一受体程序提供所需的键控事件,向第二受体程序提供任一其它键控事件。
3.如权利要求1所述的键控事件控制设备,其特征在于还包括:
搜索部,若抓取请求部请求供键设备通知的键控事件已被供键设备指定为先通知给另一键控事件控制设备,就搜索其它键控事件控制设备:
传递请求部,用于请求被搜索部发现的其它键控事件控制设备传递键控事件;和
键控事件传递部,若被另一键控事件控制设备请求传递一指定键控事件,就向其它键控事件控制设备传递该指定键控事件。
4.如权利要求1所述的键控事件控制设备,其特征在于还包括一广播部,用于向所有受体程序提供指定的键控事件。
5.如权利要求1所述的键控事件控制设备,其特征在于还包括一键控事件保持部,用于保持任一由供键设备通知的单独不能确定键操作的键控事件;
提供的键控事件判断部,用于保持至少一个键控事件确定组,包括多个确定键操作所需的键控事件,而且在包括至少一个键控事件确定组的所有键控事件被保持在键控事件保持部里时,把键控事件定为要提供的键控事件;和
键控事件提供部,用于向第一受体程序提供要提供的键控事件。
6.如权利要求1所述的键控事件控制设备,其特征在于,供键设备发出指示键按下的键按下事件和指示键松开的键松开事件,并根据按键长度发出不同的键控事件,
键控事件控制设备还包括:
键松开事件废弃部,若供键设备通知了键按下事件,就废弃供键设备以后发出的是另一键按下事件配对物的键松开事件,该键松开事件能以按下时间短于要发出的键按下事件所需的按下时间而发出;
键按下事件废弃部,用于废弃任一不是在键按下最长时间时准备发出的键按下事件的键按下事件;
键控时间生成部,用于产生作为键松开事件配对物的键按下事件,所述键松开事件未被键松开事件废弃部废弃,也不是键按下最长时间时要发出的键松开事件;和
键控事件提供部,用于向第一受体程序提供在供键设备通知的键控事件中未被键松开事件废弃部或键按下事件废弃部废弃的那些键控事件和键控事件生成部产生的键控事件。
7.如权利要求6所述的键控事件控制设备,其特征在于还包括一键控事件删除部,用于在收到来自供键设备通知的预定键控事件后,删除保持在键控事件保持部里的预定键控事件。
8.如权利要求6所述的键控事件控制设备,其特征在于还包括一键控事件转换部,用于把要提供的键控事件转换成预定键控事件后通知键控事件提供部。
9.如权利要求6所述的键控事件控制设备,其特征在于还包括一保持的内容清除部,若供键设备在一时段内不向键控事件控制设备通知键控事件,就删除保持在键控事件保持部里的键控事件。
10.如权利要求1所述的键控事件控制设备,其特征在于,供键设备发出指示键按下的短按的键按下事件和指示键松开的短按的键松开事件,在键被按下一段时间时发出指示键被长按的长按的键按下事件,而在键以后被松开时发出长按的键松开事件,
键控事件控制设备还包括:
键控事件提供部,用于向受体程序提供键控事件;
键控事件保持部,用于保持任一由供键部通知的单独不能确定键操作的键控事件;
键按下事件处理部,用于在供键设备通知长按的键按下事件时,删除保持在键控事件保持部里的键控事件,并利用键控事件提供部向第一受体程序提供长按的键按下事件;和
键松开事件处理部,用于在获取长按的键松开事件时,利用键控事件提供部向第一受体程序提供长按的键松开事件;在获取短按的键松开事件而且若短按的键按下事件被保持在键控事件保持部里时,利用键控事件提供部向第一受体程序提供短按的键按下事件和短按的键松开事件;而在获取短按的键松开事件而且若短按的键按下事件未被保持在键控事件保持部里时,废弃短按的键松开事件。
11.如权利要求1所述的键控事件控制设备,其特征在于,供键设备是视窗系统。
12.一种键控事件控制方法,用于获取指示来自供键设备通知键状态变化的键操作结果的键控事件,并把获取的键控事件供给预定的受体程序,其特征在于包括:
抓取接受步骤,用于接收来自第一受体程序而不是第二受体程序的抓取所需键控事件的请求,所述第二受体程序是来自供键设备的一般键控事件受体;和
抓取请求步骤,用于请求供键设备向键控事件控制设备通知所有属于至少一个包含所需键控事件的键控事件请求组的键控事件,各至少一个键控事件请求组包括多个在确定对应于用户键操作结果的键控事件前发出的键控事件。
13.一条键控事件控制程序,用于获取指示来自供键设备通知键状态变化的键操作结果的键控事件,并把获取的键控事件供给预定的受体程序,其特征在于,该键控事件控制程序会计算机执行:
抓取接受步骤,用于接收来自第一受体程序而不是第二受体程序的抓取所需键控事件的请求,所述第二受体程序是来自供键设备的一般键控事件受体;和
抓取请求步骤,用于请求供键设备向键控事件控制设备通知所有属于至少一个包含所需键控事件的键控事件请求组的键控事件,各至少一个键控事件请求组包括多个在确定对应于用户键操作结果的键控事件前发出的键控事件。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP290902/2002 | 2002-10-03 | ||
JP2002290902 | 2002-10-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1692333A true CN1692333A (zh) | 2005-11-02 |
CN1333335C CN1333335C (zh) | 2007-08-22 |
Family
ID=32089160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2003801004512A Expired - Fee Related CN1333335C (zh) | 2002-10-03 | 2003-10-02 | 键控事件控制设备 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7486276B2 (zh) |
EP (1) | EP1546872B1 (zh) |
JP (1) | JP4182057B2 (zh) |
KR (1) | KR20050056164A (zh) |
CN (1) | CN1333335C (zh) |
AU (1) | AU2003269490A1 (zh) |
DE (1) | DE60320570T2 (zh) |
WO (1) | WO2004034257A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106155647A (zh) * | 2015-03-31 | 2016-11-23 | 北京奇虎科技有限公司 | 一种键鼠操作回放的方法和装置 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100687886B1 (ko) * | 2005-12-28 | 2007-02-27 | 주식회사 알티캐스트 | 텔레비전 환경에서 사용자 화면에 디스플레이되는 팝업창관리 방법 |
US8281041B2 (en) * | 2006-11-22 | 2012-10-02 | Carefusion 303, Inc. | System and method for preventing keypad entry errors |
US8699711B2 (en) * | 2007-07-18 | 2014-04-15 | Interdigital Technology Corporation | Method and apparatus to implement security in a long term evolution wireless device |
JP4771431B2 (ja) * | 2007-09-20 | 2011-09-14 | Kddi株式会社 | オペレーティングシステムに基づくイベント処理機能搭載装置及びプログラム |
EP3284818B1 (en) | 2010-01-26 | 2022-03-09 | Celularity Inc. | Treatment of bone-related cancers using placental stem cells |
US9460029B2 (en) | 2012-03-02 | 2016-10-04 | Microsoft Technology Licensing, Llc | Pressure sensitive keys |
USRE48963E1 (en) | 2012-03-02 | 2022-03-08 | Microsoft Technology Licensing, Llc | Connection device for computing devices |
CN103942047A (zh) * | 2014-03-28 | 2014-07-23 | 小米科技有限责任公司 | 用户指令执行方法及装置 |
WO2019123603A1 (ja) * | 2017-12-21 | 2019-06-27 | 三菱電機株式会社 | 通知制御装置及び通知制御方法 |
CN112955858A (zh) * | 2018-11-15 | 2021-06-11 | 京瓷办公信息系统株式会社 | 电子设备以及图像形成装置 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4896290A (en) * | 1987-08-24 | 1990-01-23 | Wang Laboratories, Inc. | Method for routing events from key strokes in a multi-processing computer systems |
JPH0215326A (ja) | 1988-07-04 | 1990-01-19 | Matsushita Electric Ind Co Ltd | ウィンドウ制御システム |
JPH02139625A (ja) | 1988-11-19 | 1990-05-29 | Fujitsu Ltd | 画面表示方式 |
JP2563536B2 (ja) | 1988-11-21 | 1996-12-11 | 松下電器産業株式会社 | マルチウインドウイベント管理装置 |
JPH02151128A (ja) | 1988-12-02 | 1990-06-11 | Hitachi Ltd | キーコード生成方式 |
US5252951A (en) | 1989-04-28 | 1993-10-12 | International Business Machines Corporation | Graphical user interface with gesture recognition in a multiapplication environment |
US5721850A (en) * | 1993-01-15 | 1998-02-24 | Quotron Systems, Inc. | Method and means for navigating user interfaces which support a plurality of executing applications |
DE4325522C1 (de) | 1993-07-30 | 1994-11-17 | Schunk Kohlenstofftechnik Gmbh | Tiegel, insbesondere Stütztiegel |
US5525978A (en) * | 1994-02-28 | 1996-06-11 | Hewlett-Packard Company | Graphical key manager for computer |
JP2666731B2 (ja) | 1994-08-04 | 1997-10-22 | 日本電気株式会社 | 複数ウインドウに対する入力装置 |
US5675329A (en) * | 1996-05-09 | 1997-10-07 | International Business Machines Corporation | Method of obtaining a second function from keys on a keyboard using pressure differentiation |
JP2000259313A (ja) | 1999-03-10 | 2000-09-22 | Hitachi Ltd | プラント監視画面制御方法 |
KR100547767B1 (ko) * | 1999-04-02 | 2006-02-01 | 삼성전자주식회사 | 휴대폰에서 다기능키 이용방법 |
JP2000353357A (ja) * | 1999-06-11 | 2000-12-19 | Sony Corp | 電子装置及び操作仕様変更方法 |
JP2003162356A (ja) | 2001-11-28 | 2003-06-06 | Nec Corp | スクロール制御装置及びその方法並びにそれを用いた通信端末 |
-
2003
- 2003-10-02 WO PCT/JP2003/012627 patent/WO2004034257A1/en active IP Right Grant
- 2003-10-02 AU AU2003269490A patent/AU2003269490A1/en not_active Abandoned
- 2003-10-02 US US10/508,653 patent/US7486276B2/en not_active Expired - Fee Related
- 2003-10-02 KR KR1020047016223A patent/KR20050056164A/ko not_active Application Discontinuation
- 2003-10-02 JP JP2004542821A patent/JP4182057B2/ja not_active Expired - Fee Related
- 2003-10-02 DE DE60320570T patent/DE60320570T2/de not_active Expired - Lifetime
- 2003-10-02 CN CNB2003801004512A patent/CN1333335C/zh not_active Expired - Fee Related
- 2003-10-02 EP EP03751310A patent/EP1546872B1/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106155647A (zh) * | 2015-03-31 | 2016-11-23 | 北京奇虎科技有限公司 | 一种键鼠操作回放的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
DE60320570T2 (de) | 2009-06-04 |
US7486276B2 (en) | 2009-02-03 |
KR20050056164A (ko) | 2005-06-14 |
JP4182057B2 (ja) | 2008-11-19 |
EP1546872B1 (en) | 2008-04-23 |
US20050177797A1 (en) | 2005-08-11 |
CN1333335C (zh) | 2007-08-22 |
EP1546872A1 (en) | 2005-06-29 |
DE60320570D1 (de) | 2008-06-05 |
AU2003269490A1 (en) | 2004-05-04 |
JP2006502651A (ja) | 2006-01-19 |
WO2004034257A1 (en) | 2004-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1137439C (zh) | 容错计算机系统 | |
CN1302387C (zh) | 执行电子装置中应用程序对话的方法和系统以及电子装置 | |
CN1303549C (zh) | 内容使用方法和系统,用于该系统的服务器和电子设备 | |
CN1071971C (zh) | 性能交互管理器 | |
CN1692333A (zh) | 键控事件控制设备 | |
CN1450469A (zh) | 数据处理装置、数据处理方法及程序 | |
CN1264078A (zh) | 执行多个操作系统的计算机 | |
CN1178937A (zh) | 控制输出的方法和装置 | |
CN1744520A (zh) | 网络装置管理系统及控制方法、网络装置、管理装置及方法 | |
CN1713177A (zh) | 文件共享系统和客户端装置 | |
CN1581142A (zh) | 在客户机-服务器分布式系统中使用的方法、服务器和客户机 | |
CN1848889A (zh) | 多模服务会话建立和提供方法以及建立和提供系统 | |
CN1698051A (zh) | 程序、数据处理方法和数据处理装置 | |
CN1059978A (zh) | 在计算机系统服务网络中自动插入一个计算机系统 | |
CN1798171A (zh) | 便携式终端 | |
CN101031886A (zh) | 网络系统、管理计算机、集群管理方法以及计算机程序 | |
CN1917482A (zh) | 提供信息服务和推模式服务的方法 | |
CN1494787A (zh) | 无线通信系统、无线通信控制方法、无线通信装置、控制该无线通信装置的方法以及计算机程序 | |
CN1484168A (zh) | 链接处理装置和链接处理方法 | |
CN1520040A (zh) | 字符串处理装置、字符串处理方法和成像装置 | |
CN1200554C (zh) | 图像通信装置和图像通信方法 | |
CN1754704A (zh) | 多功能图像形成设备及其方法 | |
CN1532734A (zh) | 图像处理系统 | |
CN1926825A (zh) | 能够用帧来代替控制站的终端 | |
CN1551589A (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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070822 Termination date: 20101002 |