CN105378605B - 修改向应用递送的输入 - Google Patents

修改向应用递送的输入 Download PDF

Info

Publication number
CN105378605B
CN105378605B CN201380077382.1A CN201380077382A CN105378605B CN 105378605 B CN105378605 B CN 105378605B CN 201380077382 A CN201380077382 A CN 201380077382A CN 105378605 B CN105378605 B CN 105378605B
Authority
CN
China
Prior art keywords
input
modified
module
equipment
application
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
CN201380077382.1A
Other languages
English (en)
Other versions
CN105378605A (zh
Inventor
D.阿布扎里安
H.亚马莫托
Y.斯米吉斯基
A.G.斯尼特克夫斯基
R.古鲁穆尔蒂
R.J.门东卡
K.M.兹林斯基
A.唐
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105378605A publication Critical patent/CN105378605A/zh
Application granted granted Critical
Publication of CN105378605B publication Critical patent/CN105378605B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0237Character input methods using prediction or retrieval techniques

Abstract

在一些示例中,在将输入递送到应用之前,由与操作系统相关联的组件对接收自比如键盘之类的输入设备的输入进行修改。举例来说,与操作系统相关联的组件可以变为被登记用于修改输入。在一些情况下,至少部分地基于与输入设备相关联的元数据来修改输入。举例来说,指尖在触敏显示器上的位置可以被用来在递送到应用之前修改输入。

Description

修改向应用递送的输入
背景技术
输入设备被用来向运行在计算系统上的多种软件应用提供信息。举例来说,键盘常常被用来为字处理器应用、电子数据表应用、数据库应用、互联网应用等等提供输入。通常来说,来自键盘的输入被传送经过操作系统并且随后被传送到软件应用。举例来说,与键盘相关联的设备驱动器可以接收输入,并且将输入传送到应用。软件应用可以随后对输入实施附加的处理。举例来说,应用可以校正拼写错误的单词,或者可以响应于按键字符组合而实施动作。由于现今存在的大量软件应用以及由各种输入设备提供的不同类型的数据,因此存在应用处理输入的许多不同方式。
发明内容
这里所描述的实现方式提供了在将输入递送到应用之前对输入进行修改。在一些示例中,在将输入递送到应用之前,由与操作系统相关联的组件对接收自比如键盘之类的输入设备的输入进行修改。举例来说,与操作系统相关联的组件可以变为被登记用于修改输入。在一些情况下,至少部分地基于与输入设备相关联的元数据来修改输入。举例来说,指尖在触敏输入设备上的位置可以被用来在递送到应用之前修改输入。
提供本发明内容是为了以简化形式介绍将在后面的具体实施方式中进一步描述的概念的选择。本发明内容不意图标识出所要求保护的主题内容的关键或必要特征;也不应被用来确定或限制所要求保护的主题内容的范围。
附图说明
将参照绘制的附图来阐述具体实施方式。在图中,附图标记的最左侧的(多位)数字标识出其中该附图标记第一次出现的附图。在不同的图中使用相同的附图标记表明类似的或完全相同的项目或特征。
图1是图示出了根据一些实现方式的包括用于修改向应用递送的输入的选择性组件的示例环境的方框图。
图2是图示出了可以修改向应用递送的输入的代表性主机设备的方框图。
图3图示出了根据一些实现方式修改向应用递送的输入的一个示例。
图4是根据一些实现方式的修改向应用递送的输入的示例过程的流程图。
图5是根据一些实现方式的修改向应用递送的输入的示例过程的流程图。
具体实施方式
修改向应用递送的输入
这里所描述的技术总体上涉及修改向应用递送的输入。这里所使用的输入可以是基于输入设备创建的任何类型的信息。举例来说,输入可以是接收自输入设备并且将被递送到应用的一个或更多字符或者一个或更多字符的表示。举例来说,用户可以通过触摸键盘或其他触敏输入设备上的一个或更多按键或位置而导致向应用发送一个或更多字符。应用可以是执行在计算机系统上的软件程序,比如字处理器应用、电子数据表应用、数据库应用、互联网应用等等。
在一些实现方式中,在将输入递送到应用之前,由与操作系统相关联的输入修改组件修改接收自比如键盘或其他触敏输入设备之类的输入设备的输入。这里所使用的输入设备或键盘可以包括触敏表面(例如数字化器表面)、标准物理键盘、低剖面(low profile)或纤薄键盘、交互式显示器或接口、或者能够提供基于触摸的输入(例如用于递送到应用)的任何其他类型的触敏设备。所述输入修改组件可以变为被登记用于修改输入或者通过其他方式被指派用于修改输入。举例来说,可以通过设备驱动器(比如操作系统的HID(人类接口设备)类驱动器)接收来自键盘的输入,并且随后将其递送到操作系统的组件,比如内核组件。取代将输入递送到应用,输入被递送到已登记的输入修改组件、被修改、并且随后被递送回到内核组件。响应于接收到经过修改的输入,内核组件随后将所述经过修改的输入递送到应用。
在一些实现方式中,至少部分地基于与输入设备相关联的元数据来修改输入。举例来说,指尖在触敏显示器上的位置可以被用来在递送到应用之前修改输入。因此,如果元数据表明指尖接触处于shift按键的阈值距离内,则可以在把相关联的字符递送到应用之前将该字符改变为大写字体。
在一些实现方式中,用户可以禁止在递送到应用之前修改输入,这防止输入修改组件修改输入。在其他实现方式中,用户可以禁止由输入修改组件使用或递送元数据。此外,在一些实现方式中,用户可以禁止使用或递送元数据的一个子集,同时允许使用或递送元数据的另一个子集。在一些实现方式中,用户可以允许或禁止某些类型的输入修改,比如自动校正、文字建议以及其他预测性用户接口特征。
示例环境
图1是图示出了根据一些实现方式的包括用于修改向应用递送的输入的选择性组件的示例环境100的方框图。环境100可以包括用于实施这里所描述的功能的各种模块和功能组件。在该示例中,环境100包括输入设备102。输入设备102可以包括能够向计算系统或应用提供输入的任何类型的设备,比如键盘、触敏键盘、鼠标等等。
在所图示出的示例中,环境100包括设备驱动器104,其可以包括能够与输入设备102进行交互并且接收来自输入设备102的输入的任何类型的设备驱动器。在一些实现方式中,设备驱动器104是HID类驱动器。此外,在一些实现方式中,设备驱动器104是接收来自输入设备102的输入的主机计算机系统的内核的组件。所述内核可以是存储器的受保护区域,并且可以与比存储器的其他区域更高的信任层级相关联。
输入接收器模块106是接收来自设备驱动器104的输入的主机计算机系统的操作系统的模块或组件。在一些实现方式中,输入接收器模块106将输入转换成一项或更多项扫描代码或热键。此外,在一些实现方式中,接收器模块106是主机计算机系统的内核的一部分。
输入修改模块108是接收来自输入接收器模块106的输入、修改所述输入并且将经过修改的输入递送回到输入接收器模块106的与主机计算机系统的操作系统相关联的模块或组件。在一些实现方式中,输入修改模块108实施以下步骤的至少其中之一:校正输入中的错误,提供与输入相关联的建议,从输入中去除一个或更多输入字符,替换输入当中的一个或更多输入字符,以及将一个或更多输入字符添加到输入中。输入接收器模块106随后将经过修改的输入递送到应用110。在一些实现方式中,应用110从输入接收器模块106请求或取得经过修改的输入。在一些示例中,由设备驱动器104、输入接收器模块106和输入修改模块108实施的功能连同其他功能可以由一个模块实施,或者可以由任何更大数目的模块实施。
在一些实现方式中,输入接收器模块106直接或者通过设备驱动器104向输入设备102发送请求或查询。所述请求或查询可以包括针对关于输入设备102的能力的信息的请求。举例来说,输入设备的能力可以包括提供与输入相关联的元数据的能力、输入数值的概率、至少一个手指的位置以及输入设备102的尺寸。
示例计算系统
图2是图示出了可以修改向应用递送的输入的代表性主机设备200的方框图。主机设备200可以是计算机、服务器、客户端系统、膝上型设备、移动设备、或者适合于用作与输入设备102进行交互的主机的任何其他计算系统。图2中示出的主机设备200仅仅是计算设备的一个示例,而不意图暗示关于计算机和相关联的架构的使用或功能的范围的任何限制。
在所图示出的示例中,主机设备200包括一个或更多处理器204以及包括操作系统206、应用110和输入修改模块108的一个或更多计算机可读介质204。此外,操作系统206包括设备驱动器104和内核208,所述内核208包括输入接收器模块106。在一些实现方式中,操作系统206包括输入修改模块108。在其他实现方式中,内核208包括输入修改模块108。因此,在不同的实现方式中,输入修改模块108可以存在于计算机可读介质204的不同部分中,只要输入修改模块108可以向输入接收器模块106发送数据和从输入接收器模块106接收数据即可。
在一些实现方式中,输入接收器模块106与比输入修改模块108更高的信任层级相关联。举例来说,输入接收器模块106与内核模式相关联,而输入修改模块108与用户模式相关联。
在一些实现方式中,输入接收器模块106响应于标识出与输入设备102、用户或会话相关联的至少一项属性而登记输入修改模块108。在一些实现方式中,输入修改模块108响应于标识出与输入设备102、用户或会话相关联的至少一项属性而向输入接收器模块106登记其自身。举例来说,所述属性可以是输入设备102的尺寸、输入设备102的类型、输入设备102的提供与输入216有关的一种或更多种类型的元数据的能力、用户针对修改输入216的请求、或者针对在会话期间修改输入216的请求。此外,在一些实现方式中,输入接收器模块106响应于阻塞调用而向输入修改模块108提供输入216。
此外,在一些实现方式中,一个或更多附加的输入修改模块108被关联或登记用于修改输入216。在一些实现方式中,为所述一个或更多附加的输入修改模块108当中的每一个指派优先级。举例来说,可以由其中一个输入修改模块108、每一个输入修改模块108或者由输入接收器模块106指派优先级。因此,修改输入216可以基于所述优先级而发生在其中一个或更多输入修改模块108中。举例来说,基于所述优先级,可以使用仅仅某个阈值数目的输入修改模块108。举例来说,从最高优先级模块开始并且继续到较低优先级模块,仅仅所述阈值数目的输入修改模块108被指派用于输入修改。此外,可以基于与输入设备102、用户或会话相关联的至少一项属性来指派或改变优先级。
主机设备200还包括一个或更多输出设备210、存储装置222以及一个或更多通信连接214。在该例中,输入修改模块108包括来自输入设备102的输入216以及与输入216相关联的输入元数据218,其中的任一项或全部两项被用来创建针对应用110的经过修改的输入220。
在一些实现方式中,输入216包括在输入设备102处键入的至少一个或更多字符。字符可以是字母、数字或者能够使用输入设备102输入或能够被输入到应用110中的任何其他符号。此外,主机设备200的以上组件能够通过系统总线或其他适当的连接进行通信。
在一些实现方式中,处理器202是微处理单元(MPU)、中央处理单元(CPU)或者本领域内已知的其他处理单元或组件。在其他能力之中,处理器202可以被配置成获取并且执行存储在计算机可读介质108或其他计算机可读存储介质中的计算机可读处理器可访问指令。通信连接214允许所述设备比如通过网络与其他计算设备进行通信。这些网络可以包括有线网络以及无线网络。
这里所使用的“计算机可读介质”包括计算机存储介质和通信介质。计算机存储介质包括通过用于存储信息的任何方法或技术实施的易失性和非易失性、可移除和不可移除介质,所述信息比如是计算机可读指令、数据结构、程序模块或其他数据。计算机存储介质包括而不限于随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、闪存或其他存储器技术、紧致盘ROM(CD-ROM)、数字通用盘(DVD)或其他光学存储装置、磁盒、磁带、磁盘存储装置或其他磁性存储设备、或者可以被用来存储信息以供计算设备访问的任何其他介质。
与此相对,通信介质可以把计算机可读指令、数据结构、程序模块或其他数据具体实现在比如载波之类的已调数据信号中。这里所定义的计算机存储介质不包括通信介质。
计算机可读介质204可以包括用于允许主机设备200实施这里所描述的功能的各种模块和功能组件。在一些实现方式中,计算机可读介质108可以包括设备驱动器104、输入接收器模块106和输入修改模块108以用于修改向应用110递送的输入。设备驱动器104、输入接收器模块106和输入修改模块108可以包括多条处理器可执行指令,所述指令可以构成单一指令模块或者可以被划分到任意数目的指令模块中。这样的指令例如还可以包括用于主机设备100的硬件组件的驱动器。
设备驱动器104、输入接收器模块106和/或输入修改模块108可以被全部或部分地实施在主机设备200上。虽然在图2中被图示成存储在主机设备200的计算机可读介质204中,但是设备驱动器104、输入接收器模块106和输入修改模块108或者其中的部分也可以使用可由主机设备200访问的任何形式的计算机可读介质来实施。在一些实现方式中,设备驱动器104、输入接收器模块106和/或输入修改模块108被部分地实施在另一个设备或服务器上。此外,计算机可读介质204可以包括其他模块,比如其他设备驱动器、程序数据等等,以及由输入修改模块108和其他模块使用的数据(例如输入216、输入元数据218和经过修改的输入220)。
计算机可读介质204或其他机器可读存储介质存储具体实现这里所描述的任何一种或更多种方法或功能的一个或更多指令集合(例如软件)。在由主机设备200执行期间,所述指令还可以完全或至少部分地驻留在计算机可读介质204内和处理器202内。程序代码可以被存储在一个或更多计算机可读存储器设备或其他计算机可读存储设备中,比如计算机可读介质204。此外,虽然已经描述了示例设备配置和架构,但是其他实现方式不限于这里所描述的特定配置和架构。因此,本公开内容可以扩展到其他实现方式,正如本领域技术人员已经知晓或者将变得知晓的那样。
修改递送的输入的示例
图3图示出了根据一些实现方式修改向应用递送的输入的一个示例。在该示例中,输入302和输入304被使用输入设备102输入到主机设备200中。输入302和输入304分别是图2的输入216的示例。此外,输入302、输入304和经过修改的输入220被呈现在输出设备210上,所述输出设备210可以是显示器、监视器或者适合于呈现图形输出的其他设备。在一些实现方式中,输入302、输入304和经过修改的输入220当中的一项或更多项没有被呈现在输出设备上,但是仍然被递送到应用110。
在该示例中,输入302包括字符“yesterday I hel”,其被递送到输入修改模块108。在该示例中,输入修改模块108基于对输入的分析而修改输入302。分析输入302可以包括分析输入302的两个或更多字符之间的上下文和关系。在该示例中,通过把“y”字符改变成“Y”并且将字符“ped”添加到输入302中,输入修改模块108修改输入302以创建经过修改的输入220。因此,输入修改模块108基于对输入302的分析而实施了自动校正并且将新的字符添加到输入302中。
在该示例中,输入304包括字符“yesterday I helpr”,其被递送到输入修改模块108。在该示例中,输入修改模块108基于对输入的分析而修改输入304。分析输入304可以包括分析输入304的两个或更多字符之间的上下文和关系。在该示例中,通过把“y”字符改变成“Y”、去除字符“r”并且将字符“ed”添加到输入304中,输入修改模块108修改输入304以创建经过修改的输入220。因此,输入修改模块108基于对输入304的分析而实施了自动校正并且将新的字符添加到输入304中。
在一些实现方式中,输入修改模块108修改输入216的至少一部分。举例来说,输入修改模块108可以校正输入中的错误、提供与输入相关联的建议、从输入中去除一个或更多输入字符、替换输入当中的一个或更多输入字符、以及将一个或更多输入字符添加到输入中。此外,在一些实现方式中,输入修改模块108还接收与输入设备相关联的元数据218,并且基于元数据218修改输入216的至少一部分。
举例来说,元数据218可以是以下各项的至少其中之一:输入数值的概率、至少一个手指的位置以及输入设备的尺寸。因此,基于检测到触摸输入,可以确定输入数值的概率并且将其用来修改输入216。举例来说,基于所述检测,用户意图键入特定字符的概率可能大于用户意图键入另一个字符的概率。此外,在一些实现方式中,可以与所述检测相组合地使用其他因素来修改输入216。举例来说,在确定是否以及如何修改输入216时可以将上下文分析纳入考虑。
示例过程
在后面的流程图中,每一个方框代表可以用硬件、软件或其组合实施的一项或更多项操作。在软件的上下文中,所述方框代表计算机可执行指令,其在由一个或更多处理器执行时使得所述处理器实施所引述的操作。通常来说,计算机可执行指令包括实施特定功能或者实施特定抽象数据类型的例程、程序、对象、组件、数据结构等等。所述方框被描述的顺序不意图被解释成限制,并且可以按照任意顺序和/或并行地组合任意数目的所描述的操作以实施所述过程。虽然在这里出于解释的目的描述了几个示例,但是本公开内容不限于所述具体示例,并且可以被扩展到附加的设备、环境、应用和设定。出于讨论的目的,将参照图1的环境100来描述下面的过程,但是其他设备、系统、框架和环境也可以实施这一过程。
图4是根据一些实现方式的修改向应用递送的输入的示例过程400的流程图。在402处,输入接收器模块106确定是否允许修改向应用110递送的输入。在一些实现方式中,所述步骤由主机设备200的另一个组件实施,比如输入修改器模块108。
如果输入接收器模块106确定允许修改输入,则在步骤404处,输入接收器模块106确定输入设备102是否能够提供输入元数据218。如果输入接收器模块106确定输入设备102能够提供输入元数据218,则在步骤406处,输入接收器模块106将一个或更多输入修改模块108登记用于修改输入216。
在408处,输入接收器模块106接收输入216和输入元数据218。在一些实现方式中,设备驱动器106在将输入216和输入元数据218递送到输入接收器模块106之前接收输入216和输入元数据218。
在410处,输入接收器模块106将输入216和输入元数据218发送到所述一个或更多输入修改模块。在412处,输入修改模块108基于对输入216的分析并且基于输入元数据218来修改输入216。在414处,输入接收器模块106确定是否在某个阈值时间量内接收到经过修改的输入220。举例来说,所述阈值时间量可以是近似一毫秒或更多毫秒,或者适合于应用110的任何其他时间量。
如果输入接收器模块106确定在所述阈值时间量内接收到经过修改的输入220,则在416处,输入接收器模块106将经过修改的输入220发送到应用110。否则,输入接收器模块106在没有修改的情况下将输入216发送到应用110。
回到404,如果输入接收器模块106确定输入设备102无法提供输入元数据218,则在418处,输入接收器模块106将一个或更多输入修改模块108登记用于修改输入216。
在420处,输入接收器模块106接收输入216。在一些实现方式中,设备驱动器106在将输入216递送到输入接收器模块106之前接收输入216。
在422处,输入接收器模块106将输入216发送到所述一个或更多输入修改模块。在424处,输入修改模块108基于对输入216的分析来修改输入216。在414处,输入接收器模块106确定是否在某个阈值时间量内接收到经过修改的输入220。正如前面所讨论的那样,取决于所述确定,输入接收器模块106将经过修改的输入220或输入216发送到应用110。
图5是根据一些实现方式的修改向应用递送的输入的示例过程500的流程图。在502处,输入接收器模块106登记输入修改模块108。在一些实现方式中,所述步骤由主机设备200的另一个组件实施,比如输入修改器模块108。
在504处,输入接收器模块106接收输入216和输入元数据218。在一些实现方式中,设备驱动器106在将输入216和输入元数据218递送到输入接收器模块106之前接收输入216和输入元数据218。
在506处,输入接收器模块106将输入216和输入元数据218发送到输入修改模块108。在508处,输入修改模块108基于对输入216的分析以及对输入元数据218的分析的至少其中之一来修改输入216。在510处,输入修改模块108将经过修改的输入220发送到输入接收器模块106。在512处,输入接收器模块106将经过修改的输入220发送到应用110。
在514处,输入接收器模块106确定是否还存在来自输入设备102的针对应用110的输入216。如果输入接收器模块106确定存在来自输入设备102的针对应用110的更多输入216,则所述过程返回到504。否则,所述过程结束。
这里所描述的示例环境、系统和计算设备仅仅是适合于一些实现方式的示例,而不意图暗示关于可以实施这里所描述的过程、组件和特征的环境、架构和框架的使用或功能的范围的任何限制。因此,这里的实现方式可以与许多环境或架构一同操作,并且可以被实施在通用和专用计算系统或者具有处理能力的其他设备中。通常来说,参照图描述的任何功能可以使用软件、硬件(例如固定逻辑电路)或者这些实现方式的组合来实施。因此,这里所描述的过程、组件和模块可以通过计算机程序产品来实施。
此外,本公开内容提供了所描述的并且在图中图示出的各种示例实现方式。但是本公开内容不限于这里所描述和图示出的实现方式,而是可以扩展到其他实现方式,正如本领域技术人员已经知晓或者将变得知晓的那样。在说明书中引用“一个示例”、“一些示例”、“一些实现方式”或类似短语,这意味着所描述的特定特征、结构或特性被包括在至少一种实现方式中,并且在说明书中的各处出现这些短语不一定全都涉及相同的实现方式。
结论
虽然已经用特定于结构特征和/或方法动作的语言描述了本主题内容,但是在所附权利要求书中限定的主题内容不限于前面所描述的特定特征或动作。相反,前面所描述的特定特征和动作是作为实施权利要求的示例形式而公开的。本公开内容意图涵盖所公开的实现方式的任何以及所有的适配或变型,并且所附权利要求书不应当被理解成受限于在说明书中所公开的特定实现方式。相反,本文献的范围应当完全由所附权利要求连同这样的权利要求有权具有的全范围的等价物来确定。

Claims (10)

1.一种修改向应用递送的输入的方法,其包括:
由计算设备标识出属性,其中该属性与输入设备、用户或会话中的至少其中之一相关联;
至少部分地响应于标识出属性,计算设备登记与计算设备的操作系统相关联的输入修改组件;
由计算设备接收来自输入设备的输入和与输入设备相关联的元数据以用于递送到计算设备的应用,所述输入包括在输入设备处键入的至少一个或更多字符,所述元数据包括定义在输入设备上的输入位置的数据;
由输入修改组件修改输入的至少一部分以便至少基于与输入设备相关联的元数据创建经过修改的输入;以及
由计算设备把经过修改的输入递送到应用。
2.如权利要求1中所述的方法,其中,所述接收和递送由操作系统的模块实施,并且所述模块与比所述输入修改组件更高的信任层级相关联。
3.如权利要求2中所述的方法,其中,所述模块与内核模式相关联,并且所述输入修改组件与用户模式相关联。
4.如权利要求1中所述的方法,其中修改输入的至少一部分包括以下各项中的至少其中之一:提供与输入相关联的建议,从输入中去除一个或更多输入字符,替换输入的一个或更多输入字符,或者将一个或更多输入字符添加到输入中。
5.如权利要求1中所述的方法,还包括登记所述组件,所述登记包括:
登记一个或更多附加组件以用于修改来自输入设备的输入;以及
为所述输入修改组件并且为所述一个或更多附加组件当中的每一个指派优先级。
6.一种用于修改向应用递送的输入的系统,其包括:
处理器;
可由处理器操作来接收来自输入设备的输入的设备驱动器,所述输入包括在输入设备处键入的至少一个或更多字符;
可由处理器操作来修改所述输入以至少基于从输入设备接收的元数据创建经过修改的输入的输入修改模块,所述元数据包括定义在所述输入设备上的输入位置的数据,所述输入修改模块与系统的操作系统相关联,其中修改输入包括以下各项中的至少其中之一:
提供与输入相关联的建议;
从输入中去除一个或更多输入字符,使得经过修改的输入具有比输入少的字符;或者
将一个或更多输入字符添加到输入中,使得经过修改的输入具有比输入多的字符;
操作系统的输入接收器模块,所述输入接收器模块可由处理器操作来把来自设备驱动器的输入提供给输入修改模块,并且把来自输入修改模块的经过修改的输入提供给应用;以及
可由处理器操作来接收经过修改的输入的应用。
7.如权利要求6中所述的系统,还包括一个或更多附加的输入修改模块,其中所述输入接收器模块被配置成,为所述输入修改模块并且为所述一个或更多附加的输入修改模块当中的每一个指派优先级。
8.一种用于存储计算机可执行指令的计算机可读存储设备,所述计算机可执行指令在被执行时使得一个或更多处理器实施包括以下动作的动作:
由计算设备接收来自输入设备的输入以用于递送到计算设备的应用,所述输入包括在输入设备处键入的至少一个或更多字符;
由与计算设备的操作系统相关联的组件至少基于从输入设备接收的元数据来修改输入的至少一部分以创建经过修改的输入,所述元数据包括定义在输入设备上的输入位置的数据,其中修改输入包括以下各项中的至少其中之一:
从输入中去除一个或更多输入字符,使得经过修改的输入具有比输入少的字符;或者
将一个或更多输入字符添加到输入中,使得经过修改的输入具有比输入多的字符;
响应于由计算设备在某个阈值时间量内接收到经过修改的输入,由计算设备把经过修改的输入递送到应用;以及
响应于计算设备在某个阈值时间量内没有接收到经过修改的输入,由计算设备把所述输入递送到应用。
9.如权利要求8中所述的计算机可读存储设备,其中,修改输入的至少一部分还包括以下各项的至少其中之一:提供与输入相关联的建议,或者,替换输入当中的一个或更多输入字符。
10.如权利要求8中所述的计算机可读存储设备,其中,在输入设备上的输入位置与来自输入设备上的至少一个手指的输入相关联。
CN201380077382.1A 2013-06-13 2013-09-20 修改向应用递送的输入 Active CN105378605B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/917,507 US10088914B2 (en) 2013-06-13 2013-06-13 Modifying input delivery to applications
US13/917507 2013-06-13
PCT/US2013/060771 WO2014200536A1 (en) 2013-06-13 2013-09-20 Modifying input delivery to applications

Publications (2)

Publication Number Publication Date
CN105378605A CN105378605A (zh) 2016-03-02
CN105378605B true CN105378605B (zh) 2018-10-19

Family

ID=49293895

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380077382.1A Active CN105378605B (zh) 2013-06-13 2013-09-20 修改向应用递送的输入

Country Status (4)

Country Link
US (1) US10088914B2 (zh)
EP (1) EP3008554B1 (zh)
CN (1) CN105378605B (zh)
WO (1) WO2014200536A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11361078B2 (en) * 2018-10-01 2022-06-14 Textron Innovations Inc. Hierarchical integrated trust assessment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1154910C (zh) * 1995-07-26 2004-06-23 蒂吉通信系统公司 压缩键盘的明义系统

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3959775A (en) * 1974-08-05 1976-05-25 Gte Automatic Electric Laboratories Incorporated Multiprocessing system implemented with microprocessors
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
CH690030A5 (de) * 1995-01-26 2000-03-31 Fingraf Ag Verfahren und Vorrichtung zur Herstellung einer Druckschablone.
US6263383B1 (en) 1998-11-23 2001-07-17 Glenn W. Lee Keyboard wedge system configured for data processing over a keyboard hook
US7069586B1 (en) * 2000-04-03 2006-06-27 Software Secure, Inc. Securely executing an application on a computer system
GB0020441D0 (en) * 2000-08-18 2000-10-04 Hewlett Packard Co Performance of a service on a computing platform
US6560559B2 (en) * 2001-08-17 2003-05-06 Koninklijke Philips Electronics N.V. System and method for detecting and correcting incorrect hand position of a computer user
US7296072B2 (en) * 2003-12-12 2007-11-13 International Business Machines Corporation Enhanced port type agnostic proxy support for web services intermediaries
US8200475B2 (en) 2004-02-13 2012-06-12 Microsoft Corporation Phonetic-based text input method
US7809119B2 (en) * 2005-06-09 2010-10-05 At&T Intellectual Property I, L.P. Method and system for blocking incoming calls to mobile subscriber devices
US8225203B2 (en) 2007-02-01 2012-07-17 Nuance Communications, Inc. Spell-check for a keyboard system with automatic correction
US20090058823A1 (en) * 2007-09-04 2009-03-05 Apple Inc. Virtual Keyboards in Multi-Language Environment
US20090265716A1 (en) 2008-04-22 2009-10-22 Siemens Aktiengesellschaft System and method for feature addition to an application
WO2010041257A1 (en) * 2008-10-10 2010-04-15 Safend Ltd. System and method for incapacitating a hardware keylogger
GB0917753D0 (en) 2009-10-09 2009-11-25 Touchtype Ltd System and method for inputting text into electronic devices
US8595740B2 (en) * 2009-03-31 2013-11-26 Microsoft Corporation Priority-based management of system load level
US20110191717A1 (en) 2010-02-03 2011-08-04 Xobni Corporation Presenting Suggestions for User Input Based on Client Device Characteristics
US8830182B1 (en) * 2010-02-09 2014-09-09 Google Inc. Keystroke resolution
US20130050222A1 (en) 2011-08-25 2013-02-28 Dov Moran Keyboard with embedded display
US9270638B2 (en) * 2012-01-20 2016-02-23 Cisco Technology, Inc. Managing address validation states in switches snooping IPv6
US9158914B2 (en) * 2013-04-19 2015-10-13 Crowdstrike, Inc. Executable component injection utilizing hotpatch mechanisms

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1154910C (zh) * 1995-07-26 2004-06-23 蒂吉通信系统公司 压缩键盘的明义系统

Also Published As

Publication number Publication date
EP3008554A1 (en) 2016-04-20
WO2014200536A1 (en) 2014-12-18
CN105378605A (zh) 2016-03-02
US20140368435A1 (en) 2014-12-18
EP3008554B1 (en) 2023-01-18
US10088914B2 (en) 2018-10-02

Similar Documents

Publication Publication Date Title
US20200342850A1 (en) Routing for chatbots
US20210304075A1 (en) Batching techniques for handling unbalanced training data for a chatbot
US11736418B2 (en) Decision tree processing for chatbot dialog flow
US10620821B2 (en) Page sliding method and apparatus
WO2015165412A1 (en) Method for modifying webpage and apparatus for modifying webpage
CN104268229B (zh) 一种基于多进程浏览器的资源获得方法及装置
CN107688733B (zh) 业务接口调用方法、装置、用户终端和可读存储介质
US8954314B2 (en) Providing translation alternatives on mobile devices by usage of mechanic signals
EP2909702B1 (en) Contextually-specific automatic separators
CN112286485B (zh) 通过语音控制应用的方法、装置、电子设备与存储介质
CN104660688A (zh) 一种获取登录信息的方法与装置
CN112966081A (zh) 处理问答信息的方法、装置、设备和存储介质
US20180357404A1 (en) Information processing method and apparatus, and electronic device
CN110519155B (zh) 信息处理方法及系统
CN107423395A (zh) 导航数据处理系统
CN107391003A (zh) 导航数据处理方法
CN107835305B (zh) 用于具有屏幕的终端设备的信息输入方法和装置
CN105378605B (zh) 修改向应用递送的输入
CN107862035A (zh) 会议记录的网络读取方法、装置、智能平板和存储介质
US20170169211A1 (en) One kind of website passwords generating method and apparatus
KR102055044B1 (ko) 다국어 키보드 시스템
US11662886B2 (en) System and method for directly sending messages with minimal user input
CN114586007B (zh) 用于维护应用内容的隐私的自动助理架构
CN109145084B (zh) 数据处理方法、数据处理装置和服务器
WO2014032560A1 (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
GR01 Patent grant
GR01 Patent grant