与剪贴板存储库交互的制作方法

文档序号:17286411发布日期:2019-04-03 03:35阅读:181来源:国知局
与剪贴板存储库交互的制作方法

传统的单项项目剪贴板存储单个最近复制的内容项。当用户激活粘贴命令时,剪贴板将取回该内容项。另一方面,多项目剪贴板可以存储多个内容项。虽然多项目剪贴板比传统剪贴板更多功能,但它也更复杂;这种复杂性在多项目剪贴板的设计以及应用程序与多项目剪贴板交互的机制上引入了各种技术挑战。



技术实现要素:

这里描述了一种剪贴板组件,其提供多项目剪贴板存储库。剪贴板组件使用技术策略,以促进最终用户和应用程序开发者对它的高效采用和使用。从最终用户的角度来看,剪贴板组件提供了新的用户体验,这使用户易于发现、学习和使用,部分原因在于使用符合人体工程学的控制机制来激活粘贴和复制操作。从开发者的角度来看,剪贴板组件提供了一种允许现有应用程序(此处称为遗留应用程序)与多项目剪贴板存储库交互的方法,即使这些应用程序最初不是为了提供这种类型的交互而创建的。

根据另一说明性方面,剪贴板组件在将内容项保存到单项目或多项目剪贴板存储库时扩展用户的选项。对应于特定复制模式的每个选项将一个或多个处理操作应用于所选内容项。例如,对于一种复制模式,剪贴板组件将所选内容项传送到目标计算设备。

上述剪贴板功能可以表现在各种类型的系统、设备、组件、方法、计算机可读存储介质、数据结构、图形用户界面呈现、制品等中。

提供本发明内容是为了以简化的形式介绍一些概念;这些概念在下面的具体实施方式中进一步描述。本发明内容不旨在确定所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。

附图说明

图1示出了用户可以使用多项目剪贴板存储库执行粘贴操作的说明性用户体验。

图2是描述图1中所示的用户体验中的操作的流程图。

图3示出了用户可以使用多项目剪贴板存储库执行粘贴操作的另一说明性用户体验。

图4是描述图3中所示的用户体验中的操作的流程图。

图5示出了用户可以通过其执行复制操作的说明性用户体验。

图6是描述图5中所示的用户体验中的操作的流程图。

图7是总结与剪贴板存储库交互的一种方式的流程图,且其包括图1-6中所示的特定工作流程。

图8示出了用于实现多项目剪贴板存储库的系统。

图9示出了实现剪贴板组件的一种方式,其是图8的系统的一部分。

图10示出了根据各种复制模式对内容项执行相应操作的说明性补充处理组件。

图11是示出遗留应用程序如何能够与图9的剪贴板组件交互以执行粘贴操作的信号图,即使遗留应用程序可能最初未被设计为与多项目剪贴板存储库交互。

图12是示出遗留应用程序如何能够与图9的剪贴板组件交互以执行与特定复制模式相关联的复制操作的信号图。

图13是示出多项目剪贴板感知(mic感知)应用程序如何能够利用图9的剪贴板组件来执行粘贴或复制操作的信号图。

图14示出了可用于实现前述附图中所示的特征的任何方面的说明性计算功能。

在整个公开内容和附图中使用相同的数字来引用相同的组件和特征。系列100编号指的是最初在图1中找到的特征,系列200编号指的是最初在图2中找到的特征,系列300编号指的是最初在图3中找到的特征,依此类推。

具体实施方式

本公开组织如下。部分a描述了用户可以使用多项目剪贴板存储库执行粘贴和复制操作的说明性用户体验,并且在某些情况下,是使用单项目剪贴板存储库。部分b描述了可以提供a部分所示用户体验的说明性系统组件。以及部分c描述了可用于实现部分a和b部分所述特性的任何方面的说明性计算功能。

作为初步事项,附图中的一些描述了一个或多个结构组件的上下文中的概念,也称为功能、模块、特征、元件等。在一个实现方式中,图中所示的各种组件可以通过在计算机设备上运行的软件或硬件(例如,芯片实现的逻辑功能)等或其任何组合来实现。在一种情况下,图中各个组件的所示分离为不同的单元可以反映在实际实现方式中对应的不同物理和有形组件的使用。替代地或另外地,图中所示的任何单个组件可以由多个实际物理组件实现。替代地或另外地,附图中的任何两个或更多个单独组件的描绘可以反映由单个实际物理组件执行的不同功能。部分c提供了关于附图中所示功能的一个说明性物理实现的附加细节。

其他附图以流程图的形式描述了概念。在这种形式中,某些操作被描述为构成以特定顺序执行的不同块。这些实现方式是说明性的而非限制性的。这里描述的某些块可以组合在一起并在单个操作中执行,某些块可以分成多个组件块,并且某些块可以按照与此处所示的顺序不同的顺序执行(包括执行块的并行方式)。在一个实现方式中,流程图中示出的框可以由在计算机设备上运行的软件或硬件(例如,芯片实现的逻辑功能)等或其任何组合来实现。

关于术语,短语“被配置为”包含用于执行所识别的操作的各种物理和有形机制。这些机制可以被配置为使用例如在计算机设备上运行的软件、硬件(例如,芯片实现的逻辑功能)等或其任何组合来执行操作。

术语“逻辑”包括用于执行任务的各种物理和有形机制。例如,流程图中示出的每个操作对应于用于执行该操作的逻辑组件。可以使用例如在计算机设备上运行的软件、硬件(例如,芯片实现的逻辑功能)等或其任何组合来执行操作。当由计算设备实现时,逻辑组件以任何实现的方式表示作为计算系统的物理部分的电子组件。

术语“手势”指的是用户向计算设备提供输入的任何特征动作。在一种情况下,用户可以通过以规定方式激活一个或多个硬键来做出手势。在另一种情况下,用户可以通过在触敏表面上执行一个或多个触摸手势(例如,轻击、平移、滚动、轻弹等)来做出手势。在另一种情况下,用户可以通过以规定的方式移动计算设备来做出手势,等等。其他手势还可以涉及不同类别的动作的组合,诸如硬键的致动和触摸手势。

本文描述的任何存储资源或存储资源的任何组合可以被视为计算机可读介质。在许多情况下,计算机可读介质代表某种形式的物理和有形实体。术语计算机可读介质还包括传播的信号,例如经由物理管道和/或空中或其他无线介质等发送或接收的信号。然而,特定术语“计算机可读存储介质”和“计算机可读存储介质设备”明确地排除传播信号本身,同时包括所有其他形式的计算机可读介质。

以下说明可将一个或多个特征标识为“可选的”。此类陈述不应被解释为可被视为可选的特征的详尽指示;也就是说,虽然未在文中明确指出,但其他功能可视为可选功能。此外,对单个实体的任何描述都不是要排除使用多个这样的实体;类似地,多个实体的描述并不旨在排除单个实体的使用。此外,虽然描述可以将某些特征解释为执行所识别的功能或实现所识别的机制的替代方式,但是这些特征也可以以任何组合方式组合在一起。最后,术语“示例性”或“说明性”是指潜在的许多实现方式中的一种实现方式。

a.说明性的用户体验

本部分描述了各种说明性用户界面工作流程,通过该工作流程用户可以与计算设备提供的剪贴板组件交互。在一些实现方式中,剪贴板组件提供能够存储由一个或多个应用程序提供的多个内容项的多项目剪贴板存储库。在其他实现方式中,剪贴板组件可以在执行操作中的至少一些(诸如与复制相关的操作)时使用多项目剪贴板存储库或单项目剪贴板存储库。部分b将描述本部分中描述的工作流的不同实现方式。

图1示出了用户可以使用由计算设备提供的剪贴板组件执行粘贴操作的说明性用户体验。在图1中标记为“a”的接合处,假设最终用户正在与执行任何功能的特定应用程序交互的过程中。进一步假设应用程序在计算设备的图形用户界面(gui)上提供目标工作项(例如,目标图形窗口),用户通过该gui与特定应用程序交互。进一步假设用户希望将来自多项目剪贴板存储库的内容项粘贴到目标工作项中。

为了执行该任务,用户执行用户界面(ui)激活手势。例如,但不限于,用户通过同时按下控制(“ctrl”)键和键输入设备的“v”字符键持续超过规定量的时间(例如,超过3秒)来执行ui激活手势。作为响应,剪贴板组件在计算设备的gui上显示多选项ui呈现102。例如,计算设备可以显示覆盖在用户当前正与之交互的目标ui呈现104(例如,对应于目标工作项)上的多选项ui呈现102。或者,剪贴板组件可以在计算设备的gui的某个其他区域上显示多选项ui呈现102,例如gui的外围区域。(在另一实现方式中,在这部分的结尾更全面地描述,当用户第一次按压控制键和v键时剪贴板组件启动定时器。当用户继续按住控制键持续超过规定的时间量,剪贴板组件此后将呈现多选项ui呈现,无论用户是否继续按住v键。)

多选项ui呈现102呈现多个选项,其分别表示存储在多项目剪贴板存储库中的当前内容项。例如,第一内容项106表示用户使用第一应用程序复制的链接。第二内容项表示用户使用第二应用程序复制的一段文本。第三内容项表示用户使用第三应用程序创建的图像。更一般地,剪贴板组件可以存储由任意数量的应用程序创建的任何数量的内容项。例如,在另一种情况下,多项目剪贴板存储库可以存储由同一应用程序创建的多达n个内容项。当第一次激活多选项ui呈现102,剪贴板组件可以以任何方式突出显示第一个(最上面的)内容项106,例如,通过以任何方式改变其视觉外观,或通过显示与其相邻的图标,等等。

默认情况下,剪贴板组件按照内容项被复制到多项目剪贴板存储库中的顺序将内容项存储在多项目剪贴板存储库中。也就是说,剪贴板组件将每个新内容项存储在其最顶部的槽中,将所有其他内容项在堆栈中向下推一个槽,并将第n个内容项推离堆栈。因此,默认情况下,最顶层的槽存储最近复制的内容项。但是如将在部分b中清楚地表明的,剪贴板组件还可以修改多项目剪贴板存储库中的内容项的顺序,使得该顺序不一定总是反映内容项被复制的时间顺序。进一步注意,术语“顶部”指的是多项目剪贴板存储库中的一个槽,该槽位于某些数据结构中给定的条目序列中的第一个;它不一定是指槽的特定物理位置。

注意,在一个实现方式中,ui激活手势是传统粘贴手势的变体。更具体地,许多传统剪贴板组件允许用户通过同时按下控制键和v键将内容项粘贴到单项目剪贴板存储库。在当前情况下,剪贴板组件以不同的方式解释控制键和v键的同时激活,这取决于用户同时按下这两个键的时间。当用户按下这两个键持续超过规定的时间量时,剪贴板组件将显示多选项ui呈现102。当用户按下这两个键持续小于(或等于)规定的时间量时,然后随后释放键,剪贴板组件将取回多项目剪贴板存储库中的最顶层内容项并将其传递给应用程序以粘贴到目标工作项中。换句话说,用户可以通过快速同时按下控制键和v键来复制传统的粘贴手势。如将在该部分末尾描述的,其他实现方式可以使用其他手势来生成触发事件。

在接合点“b”,用户通过按住控制键然后重复激活v键来执行选项选择手势。图1将此动作表示为ctrl+v+v,表示用户最初按下控制键和v键,然后在继续按住控制键的同时释放v键,然后再次按下v键。响应于该手势,剪贴板组件选择第二内容项108。剪贴板组件可以改变多选项ui呈现102中的突出显示以指示该选择,例如,使得第二内容项108现在被突出显示,而不是第一内容项106。

尽管未示出,但是用户可以重复上述选项选择手势一次或多次以连续地移动通过多选项ui呈现102中的内容项。例如,在按住控制键的同时,用户可以释放v键,然后再次按下v键。这会使剪贴板组件前进到多项目剪贴板存储库中的第三个内容项。换句话说,注意选项选择手势构成基本手势(同时按下控制键和v键),用户可以通过按下v键零次、另外一次或多次来重复该基本手势零次、一次或多次。

在标记为“c”的接合处,假设用户现在释放控制键。作为响应,剪贴板将第二内容项108发送到特定应用程序。然后,特定应用程序将第二内容项108粘贴到用户指定的工作区110中。

在另一实现方式(未示出)中,剪贴板组件可以允许用户在多选项ui呈现102中选择多个内容项,例如第一和第二内容项。在粘贴命令时,剪贴板组件将所选内容项连结成单个项目,然后将单个项目粘贴到目标工作项中。

总之,上述ui激活手势和选项选择手势具有各种优点。例如,用户可以容易地发现和学习这些手势,因为它们构成了用户可能已经熟悉的默认ctrl+v手势的扩展。此外,控制策略本质上是符合人体工程学的,因为用户可以容易且快速地执行图1中所示的一系列手势,例如,因为手势涉及激活相同的两个键。更具体地,不期望用户记住一组广泛不相似的手势以执行上述动作。此外,用户不需要从控制键和v键移动他或她的手指来执行这些手势。然而,如下所述,与上述动作相比,其他实现方式可以使用其他键(和/或其他用户界面控制机制)和/或激活模式来执行ui激活手势和/或选项选择手势。通常,这些选项中的许多允许用户使用同一组控制机制来激活多选项ui呈现102并选择多选项ui呈现102内的选项。

图2示出了总结图1中描述的工作流程的过程202。在框204中,剪贴板组件确定用户是否已经激活控制键和v键持续小于(或等于)规定的时间量,然后释放这些键。如果是,则在框206中,剪贴板组件将其多项目剪贴板存储库中的最顶部内容项提供给用户正与其交互的特定应用程序。

可替代地,在框208中,剪贴板组件确定用户是否已经激活控制键和v键持续超过规定的时间量。如果是,则在框210中,剪贴板组件显示图1中所示的多选项ui呈现102。最初,剪贴板组件突出显示多选项ui呈现102中的第一内容项106以指示该项是当前所选项目。

在框212中,剪贴板组件确定用户是否已释放控制键。如果是,则在框214中,剪贴板组件取回当前选择的内容项并将其传递给应用程序。

在框216中,剪贴板组件确定用户是否已经至少再一次激活v键,同时按住控制键。如果是,则在框218中,剪贴板组件选择多项目剪贴板存储库中的下一内容项。然后,控制返回到框212,其中剪贴板组件再次确定用户是否已释放控制键。

图3示出了用户可以使用多项目剪贴板存储库执行粘贴操作的另一说明性用户体验。在接合点“a”处,假设用户正在与对焦工作项302进行交互。例如,假设用户正在与文字处理应用程序交互以创建文档,其中该文字处理应用程序提供呈现文档的对焦工作项302(例如,图形窗口)。计算设备的gui还可以可选地托管一个或多个其他工作项304;但是这些工作项304不是对焦工作项,因为它们没有得到用户的当前关注。

接下来,假设用户将他或她的焦点移动到多选项ui呈现306。在一个实现方式中,剪贴板组件可以将多选项ui呈现306显示为计算设备的gui的静态特征。例如,剪贴板组件可以在gui的外围区域中显示多选项ui呈现306。在另一实现方式中,当用户执行某些动作以激活它时,剪贴板组件可以呈现多选项ui呈现306。例如,当用户移动到gui的工具栏区域(未示出)并且激活与多选项ui呈现相关联的图标(未示出)时,剪贴板组件可以激活多选项ui呈现。在上述任一显示场景中,多选项ui呈现306可被视为“粘性”,因为与图1的工作流程相比,剪贴板组件以更永久的方式显示它。

多选项ui呈现306本身具有与上面参考图1描述的相同的组成。即,多选项ui呈现306提供多项目剪贴板存储库所提供的多达n个内容项的视觉表示。

在接合点“b”,用户参与多选项ui呈现306以选择特定内容项308。例如,用户可以使用鼠标设备或触摸手势(在触敏表面上)指向并选择特定的内容项308。用户还可以使用鼠标设备或触摸手势在多选项ui呈现306内滚动。

在接合点“c”,剪贴板组件与文字处理应用程序组合工作以将所选择的内容项308粘贴到目标工作项302中。剪贴板组件和应用程序响应于用户对内容项308的选择而以自动方式执行该功能。为了执行该任务,剪贴板组件自动确定用户先前与之交互的工作项,对应于对焦工作项302,而不是可能在计算设备的gui上处于活动状态、但用户最近没有与之交互的其他工作项304。更明确地说,剪贴板组件在用户选择内容项之后自动执行粘贴操作,因为用户不需要手动指定对焦工作项302,然后手动执行单独的粘贴手势。提供对焦工作项302的应用程序可以在用户与对焦工作项302的交互过程中将所选内容项粘贴到用户最后注册的位置处的对焦工作项302中。该位置可以由应用程序和/或计算设备的操作系统等存储。

注意,尽管与图1中所示的工作流相比,图3中所示的工作流提供了不同的用户体验,但是剪贴板组件可以利用相同的技术解决方案来实现两个工作流。部分b提供了该技术解决方案的说明。

图4示出了总结图3中描述的工作流的过程402。在框404中,剪贴板组件激活计算设备的gui上的“粘性”多选项ui呈现306,如果尚未激活的话。在框406中,剪贴板组件接收用户对多选项ui呈现306中的内容项的选择。在框408中,剪贴板组件在与多选项ui呈现306交互之前确定用户先前与之交互的目标工作项;该目标工作项在此也称为先前的对焦工作项。在框410中,剪贴板组件结合特定应用程序(提供对焦工作项)自动将所选内容项粘贴到对焦工作项中,而不需要用户进行其他用户界面动作。

图5示出了用户可以通过其执行复制操作的说明性用户体验。为了便于说明,图5的工作流被描述为应用于多项目剪贴板存储库。但是,工作流的许多方面也可以有益地应用于提供单项目剪贴板存储库的剪贴板组件。

在接合点“a”处,假设用户正在与任何类型的工作项502进行交互。例如,假设用户正在阅读由浏览器应用程序显示的文档504。进一步假设用户选择文档504中的内容项506,例如,对应于由文档504提供的文本片段、电子邮件地址、图像等。用户可以以任何方式进行该选择,例如通过使用鼠标设备或在触敏表面上执行的触摸手势突出显示内容项506。

在接合点“b”处,假设用户接下来同时按下控制键和“c”字符键持续超过规定的时间量。作为响应,剪贴板组件显示多选项ui呈现508。剪贴板组件可呈现多选项ui呈现508,使得其与工作项502重叠。或者,剪贴板组件可在计算设备的gui的任何其他显示区域呈现多选项ui呈现508。

多选项ui呈现508呈现不同复制模式的视觉表示。每个复制模式描述剪贴板组件将应用于所选内容项506的一个或多个处理操作。换句话说,在图1的粘贴操作的上下文中,多选项ui呈现102呈现存储在多项目剪贴板存储库中的内容项列表。在图5中描述的复制操作的情况下,多选项ui呈现508显示可以应用于所选内容项506的不同处理技术。

图5中所示的ui激活手势提供与参考图1描述的ui激活手势相同的用户体验。例如,当用户同时按下控制键和c键持续小于(或等于)小于(或等于)规定的时间量时,剪贴板组件将执行默认复制操作,例如,通过将所选择的内容项506添加到剪贴板存储库的顶部槽,而不对所选择的内容项506执行任何附加动作。

不同的实现方式可以提供不同的复制模式以供选择。第一复制模式510向用户提供执行未装饰复制操作(unembellishedcopyoperation)的选项,即,通过将所选内容项506复制到多项目剪贴板存储库的最顶部槽。顺便提及,这是当用户快速按下控制键和c键时调用的相同操作。

第二复制模式涉及复制和共享操作。在选择该选项时,剪贴板组件提供ui呈现(未示出),其邀请用户经由一个或多个目标模式、经由一个或多个目标共享站点与一个或多个目标用户共享所选择的内容项506。例如,ui呈现可以邀请用户将所选内容项506发布到社交网站。可替代地或另外地,ui呈现可以邀请用户将所选择的内容项506作为消息发送到任何特定目标用户或一组目标用户。第二复制模式还可以可选地涉及将所选内容项506复制到本地多项目剪贴板存储库。换句话说,第二复制模式可以与由第一复制模式510执行的默认复制操作一起执行内容共享操作。

第三复制模式涉及跨设备传输操作。在选择该选项时,本地剪贴板组件将所选内容项506从源计算设备(已用于选择内容项506)传送到特定目标计算设备。在一个实现方式中,目标计算设备对应于附属于当前用户(正在执行选择操作)的另一用户计算设备。例如,用户可以使用智能手机选择内容项506,然后调用第三复制模式以将所选择的内容项506传送到他或她的桌面个人计算设备。更一般地,目标计算设备不需要附属于正在执行复制操作的用户,并且不需要对应于用户计算设备。在接收时,接收方目标计算设备可以将所选择的内容项506存储在其自己的本地多项目剪贴板存储库中。第二复制模式还可以涉及将所选内容项506复制到源计算设备的本地多项目剪贴板存储库。

第四复制模式示出了另一个跨设备传输操作。在选择该选项时,本地剪贴板组件将所选内容项506从源计算设备(已用于选择内容项506)传送到多个目标计算设备。例如,第四复制模式可以涉及将所选择的内容项506发送到附属于用户的所有用户计算设备。也就是说,假设源计算设备与特定用户id相关联。第四复制模式可以涉及将所选内容项506发送到与相同用户id相关联的所有目标计算设备。

第五复制模式(图5中未示出)涉及格式化操作。例如,在选择该选项时,剪贴板组件可以创建所选内容项506的特定格式化版本,然后将如此格式化的内容项存储在本地多项目剪贴板存储库中。或者,本地剪贴板组件可以在将其存储在多项目剪贴板存储库中之前从所选内容项506中删除所有(或一些)格式。

第六复制模式(图5中未示出)将所选内容项506视为要与先前存储的内容项级联的部分结果项。例如,假设多项目剪贴板项目当前存储文本“abc”作为其最顶层(最近的)内容项。进一步假设所选内容项506对应于文本“def.”。用户可以以串联模式存储所选择的内容项506(“def”),于是剪贴板组件将最顶层的内容项修改为文本“abcdef”。用户随后可以以类似方式向该最顶层内容项添加一个或多个附加内容项。稍后,用户可以调用粘贴操作将整个连结结果粘贴为单个项目。

其他复制模式(图5中未示出)涉及将一个或多个属性与所选内容项506相关联。每个属性管理剪贴板组件相对于所选内容项506的行为。例如,这样的属性可以管理剪贴板组件显示内容项506或以其他方式提供对内容项506的访问的方式。可替代地,或另外,属性可以控制剪贴板组件保留内容项506的方式,等等。

例如,在第七复制模式中,剪贴板组件将所选内容项506标记为私有信息块。例如,第六复制模式可以将所选择的内容项506与指示它是敏感项的元数据值相关联,敏感项例如为密码、联系地址、信用卡号等。剪贴板组件随后将防止多选项ui呈现(诸如图1中所示的呈现102)显示所选内容项506。例如,不是呈现揭露密码的文本串,而是剪贴板组件可以显示默认的虚拟字符,例如点符号或#符号。

在第八复制模式中,剪贴板组件将所选内容项标记为最喜欢的项。作为响应,剪贴板组件随后将内容项506保持在多项目剪贴板存储库中的最顶部槽中,即使用户稍后将附加内容项添加到多项目剪贴板存储库中也是如此。

在第九复制模式中,剪贴板组件将所选内容项标记为临时项。作为响应,剪贴板组件随后将在规定的时间量之后和/或在一些事件发生之后(例如,在用户粘贴了内容项506之后)删除内容项506。

以说明而非限制的精神阐述了上述复制模式。其他实现方式可以包括复制模式的任何组合,包括上面未识别的附加复制模式。

配置工具(未示出)允许用户配置多选项界面508,使得其包括特定的复制模式集合。例如,配置工具可以提供配置ui呈现,其列出一组可能的复制模式。用户可以选择将出现在多选项ui呈现508中的这些模式的子集,例如,通过检查配置ui呈现上的某些模式。配置工具还允许用户创建自定义复制模式。例如,配置工具可以允许用户创建将内容项引导到特定用户计算设备的跨设备复制模式。

在接合点“c”处,假设用户再按下c键两次,同时按下控制键。响应于c键的第一次致动,剪贴板组件前进到第二复制模式。响应于c键的第二次致动,剪贴板组件前进到第三复制模式512。

在接合点“d”,假设用户释放控制键。作为响应,剪贴板组件使得按照第三复制模式复制所选内容项506。在图5的非限制性示例中,剪贴板组件通过将所选择的内容项506本地存储在本地多项目剪贴板存储库中,并且还将所选择的内容项506传送到用户计算设备a来执行第三复制模式。用户计算设备a在接收时将所选择的内容项506存储在其自己的本地多项目剪贴板存储库中。

图6是描述图5中所示的用户体验的过程602。在框604中,用户与应用程序交互以识别所选择的内容项506。在框606中,剪贴板组件确定用户是否同时按下控制键和c键,但在释放这些键之前持续小于(或等于)规定的时间量。如果是,则在框608中,剪贴板组件将所选内容项存储在多项目剪贴板存储库中的其最顶部槽中,或者存储在单项目剪贴板存储库中的其唯一槽中。

可替代地,在框610中,剪贴板组件确定用户是否同时按下控制键和c键持续超过规定的时间量。如果是,则在框612,剪贴板组件将显示多选项ui呈现508,其最上面的条目被突出显示。

在框614中,剪贴板组件确定用户是否已释放控制键。如果是,则在框616中,剪贴板组件调用此时恰好被选择的任何复制模式。

在框618中,剪贴板组件在按住控制键的同时确定用户是否已经按压c键一次或另外多次。如果是,则在框620,每当用户按下c键时,剪贴板组件前进到下一个复制模式。

图7示出了过程702,其描述了与剪贴板组件交互的一种方式,其包含图1-6中所示的特定工作流。也就是说,以涵盖粘贴操作或复制操作的一般术语描述过程702。

在框704中,剪贴板组件通过检测到用户已经执行了默认剪贴板手势来检测默认剪贴板事件。默认剪贴板手势可以对应于快速ctrl+v手势(用于粘贴操作)或快速ctrl+c手势(用于复制操作)。通常,控制键是修改键的示例,v键和c键是“热”键的示例。响应于框704中的检测,在框706中,剪贴板组件执行默认剪贴板动作。例如,剪贴板组件与特定应用程序一起可以将多项目剪贴板存储库中的最顶层条目粘贴到目标工作项中。或者,剪贴板组件与特定应用程序一起可以将所选内容项复制到多项目剪贴板存储库的最顶部槽中。

可替代地,在框708中,剪贴板组件通过检测用户已经执行了ui激活手势来检测ui激活事件。用户可以通过按住控制键和v键,或者通过按住控制键和c键持续超过规定的时间量来执行ui激活手势。一般而言,用户通过按住修改键和热键持续超过规定的时间量来执行ui激活手势。作为响应,在块710中,剪贴板组件呈现多选项ui呈现。也就是说,在粘贴操作的情况下,剪贴板组件呈现图1的多选项ui呈现102。在复制操作的情况下,剪贴板组件呈现图5的多选项ui呈现508。

在框712中,剪贴板组件通过检测到用户已经执行了选项选择手势来检测选项选择事件。用户可以通过激活v键或c键零次、一次或多次来执行选项选择手势,然后释放控制键。可替代地,在图3的情况下,用户可以通过使用鼠标设备或触摸手势选择粘性多选项ui呈现306中的选项来执行选项选择手势。作为响应,在框714中,剪贴板组件选择多选项ui呈现中的特定选项。

在框716中,特定应用程序与剪贴板组件协作执行特定剪贴板操作。在粘贴操作的情况下,剪贴板组件将所选内容项发送到应用程序,于是应用程序将所选内容项粘贴到目标工作项中。在复制操作的情况下,剪贴板组件根据所选复制模式复制所选内容项。

其他实现方式可以使用控制键(或任何其他修改密钥)和v密钥或c密钥(或任何其他热键)以与如上所述相比不同的方式生成ui激活事件和选项选择事件。例如,在另一种情况下,当用户同时按下修改键和热键时,剪贴板组件启动计时器。此后,当用户按下修改键(例如,控制键)持续超过规定的时间量时,剪贴板组件将显示多选项ui呈现。然而,在该实现方式中,用户不需要也按下热键(例如,v键或c键)。更明确地说,用户不需要在规定时间量的整个持续时间内同时按下修改键和热键,只要用户同时按下两个键以启动计时器,然后按住修改键持续规定时间量。另一方面,如果用户在规定的时间量期满之前(或等于规定的时间量时)释放修改键,则剪贴板组件将执行默认剪贴板动作(例如,默认的粘贴或复制操作)。

在又一个变型中,当用户:(1)同时按下修改键和热键;(2)按住修改键的同时释放热键;然后(3)在按住修改键的同时再次按下热键时,剪贴板组件可以在规定量时间量到期之前显示多选项ui呈现,其中操作(1)-(3)全部在规定的时间量期满之前发生。用户可以使用上述控制策略来快速显示多选项ui呈现,而无需等待规定时间量的到期。

其他实现方式可以使用其他控件与多项目剪贴板存储库进行交互,例如,除了控制键和v键或c键之外(或者作为这些键的补充)。例如,考虑粘贴操作。在另一种情况下,当用户激活单个控制机制(例如,硬键或软键)持续规定的时间量时,剪贴板组件激活多选项ui呈现102。然后,剪贴板组件可以顺序遍历多选项ui呈现102中的选项列表,只要用户按住控制机制,例如通过在每个选项上花费1秒来轮换。剪贴板组件将粘贴用户释放单一控制机制时选择的任何选项。但是如果用户激活单个控制机制持续短时间段,则剪贴板组件将执行传统的粘贴操作,例如,通过将剪贴板存储库的最顶部内容项粘贴到工作项中。

在另一种情况下,当用户在触敏表面上以规定的方式激活任何类型的一个或多个触摸手势时,剪贴板组件激活多选项ui呈现102,然后在多选项ui呈现102内选择选项。其他实现方式还可以利用基于设备运动的手势、自由空间手势、触觉输入机制等,或其任何组合。

剪贴板组件同样可以响应于其他控制机制的激活而执行上述复制过程602,例如,除了控制键和c键之外,或者作为控制键和c键的补充。例如,剪贴板组件可以使用上面关于粘贴操作描述的相同类型的替代控制策略,例如,通过使用单键致动,或通过使用一个或多个触摸手势等。

b.说明性系统和设备

图8示出了用于实现部分a中描述的用户体验的一个系统802。在一些实现方式中,系统802使用本地计算设备804提供用户体验。本地计算设备804可以对应于任何用户计算设备,例如,桌面个人计算设备、任何类型的手持计算设备(例如智能手机)、游戏控制台、可穿戴计算设备等。计算设备804托管任何数量的本地应用程序(例如,appx,appy,appz等)。另外或替代地,计算设备804可以提供对远程实现的应用程序(未示出)的访问。每个远程实现的应用程序由一些远程站点托管,例如远程服务器计算设备。另外或替代地,计算设备804可以提供对分布式应用程序(未示出)的访问。每个分布式应用程序包括由本地计算设备804实现的一些功能和由一些远程站点实现的一些功能。无论以何种方式实现,任何应用程序都可以执行任何功能。

本地计算设备804还可以包括操作系统806。操作系统806提供供应用程序在执行其各自功能时使用的资源。作为其一部分,操作系统806可以包括剪贴板组件808。剪贴板组件808可以托管多项目剪贴板存储库或单项目剪贴板存储库。下面描述的图9提供了关于剪贴板组件808的一个实现方式的进一步说明性细节。

用户可以经由一个或多个输入/输出接口组件814使用一个或多个输入设备810和一个或多个输出设备812与应用程序和剪贴板组件808交互。输入设备810可以包括任何类型的物理键输入设备(例如,物理键盘)。输入设备810还可以包括任何类型的软键输入设备(例如,由触敏输入表面提供)。输入设备810还可以包括任何其他输入机制,诸如鼠标设备输入机制、游戏控制器输入机制、音频(语音)输入机制、基于触摸的手势输入机制(其中用户在除了键激活之外的触敏输入表面上执行触摸手势,例如滑动等)、基于运动的输入机制(其中用户通过移动计算设备804或其一部分来执行手势)、触觉输入机制等。输出设备812可以包括提供gui的任何类型的显示设备。

本地计算设备804还提供通信组件816(例如,网络接口卡),本地计算设备804通过该通信组件816经由一个或多个任何类型的通信管道818与一个或多个远程实体交换数据。例如,本地计算设备804可以与可选的远程剪贴板功能820(例如,由一个或多个远程服务器计算设备实现)、一个或多个其他远程计算系统822以及任何数量的其他用户计算设备824交互。在一个实现方式中,本地计算设备804和其他计算设备824表示附属于相同用户id的设备。此外,远程剪贴板功能820可以托管也与相同用户id相关联的远程多项目剪贴板存储库826(例如,云实现的剪贴板存储库)。

在一个场景中,本地计算设备804可以将所选择的内容项复制到由另一个用户计算设备(从该组其他用户计算设备824中选择)维护的远程多项目剪贴板存储库。在另一场景中,本地计算设备804可以从由另一用户计算设备维护的远程多项目剪贴板存储库中取回内容项。在另一场景中,本地计算设备可以将所选内容项复制到远程多项目剪贴板存储库826。在另一场景中,本地计算设备804可以从远程多项目剪贴板存储库826中取回内容项,等等。

通信管道818可以由广域网(例如,因特网)、局域网、一个或多个点对点链路等实现。本地计算设备804的剪贴板组件808可以以下面描述的方式基于一个或多个环境特定因素来选择特定通信信道。例如,在一些情况下,剪贴板组件808可以使用直接对等信道来将内容项传送到另一个用户计算设备。在其他情况下,剪贴板组件808可以通过首先将内容项存储在远程多项目剪贴板存储库826中来向另一用户计算设备提供内容项。

图9示出了实现图8的剪贴板组件808的一种方式。剪贴板组件808包括存储多达n个内容项的多项目剪贴板存储库902。剪贴板组件808还包括存储库管理组件904,其执行在多项目剪贴板存储库902中存储内容项以及从多项目剪贴板存储库902取回内容项的任务以及其他功能。

剪贴板组件808还可以可选地包括一个或多个补充处理组件906,例如处理组件x,y和z。每个处理组件结合复制操作对内容项执行一些操作。例如,当用户选择特定复制模式时(使用图5的策略),处理组件之一可以将所选择的内容项传送到一个或多个目标计算设备。

剪贴板组件808还提供ui生成组件908。u1生成组件908生成并显示在部分a中描述的多选项ui呈现。在粘贴操作的上下文中,多选项ui呈现提供多项目剪贴板存储库902中的内容项的视觉表示。在复制操作的上下文中,多选项ui呈现提供不同复制模式的视觉表示。

剪贴板组件808还提供输入拦截组件910。输入拦截组件910提供使遗留应用程序能够与多项目剪贴板存储库902交互的服务,例如说明性遗留应用程序912。遗留应用程序指的是这样的应用程序,该应用程序不是专门设计为与多项目剪贴板存储库902进行交互。例如,一个这样的遗留应用程序可以对应于被构建为与单项目剪贴板存储库交互的文字处理应用程序,例如,通过调用第一遗留应用程序编程接口(api),用于将内容项存储在单项目剪贴板存储库中,并调用另一个遗留api以从单项目剪贴板存储库中取回内容项。

在一些实现方式中,输入拦截组件910通过在与特定遗留应用程序912交互的过程中拦截由用户产生的剪贴板输入信号来操作,从而防止遗留应用程序912接收并对其进行操作。输入拦截组件910然后指示剪贴板组件808的一些组件执行一些准备动作,其示例将在下面参考图11和图12详细描述。然后,输入拦截组件910可以向遗留应用程序912发送应用程序触发信号。遗留应用程序912将应用程序触发信号解释为好像它是由用户直接发出的传统剪贴板命令,例如,对应于传统的ctrl+v或ctrl+c命令。遗留应用程序912然后执行粘贴或复制操作,例如,通过从多项目剪贴板存储库902取回内容项或将内容项存储在多项目剪贴板存储库中。准备动作(下面描述)重新制作传统的粘贴或复制操作,使得整体而言,剪贴板组件808执行比传统的粘贴或复制操作更多地完成的功能。

在其他实现方式中,多项目剪贴板感知(mic感知)应用程序914使用一个或多个api直接与剪贴板组件808交互,所述api具体利用剪贴板组件808的多项目性质。换句话说,mic感知应用程序914不利用由输入拦截组件910提供的上述重定向提供。

系统配置工具916允许最终用户或开发者配置剪贴板组件808的操作的任何方面。例如,用户可以在逐个应用程序基础上手动启用或禁用部分a中描述的类型工作流体验。此外,用户可以手动选择在多选项ui呈现中呈现哪些复制模式。

注意,图8指示剪贴板组件808的所有功能都由计算设备804的操作系统806实现。但是其他实现方式可以以其他方式分配剪贴板功能。例如,mic感知应用程序可以生成特定于应用程序的用户界面呈现,通过该呈现,与应用程序交互的用户可以与多项目剪贴板存储库902交互。

图10示出了对提供给剪贴板组件808的内容项执行相应操作的说明性补充处理组件906。在一些实现方式中,补充处理组件可以结合复制操作来执行其服务。也就是说,剪贴板组件808可以在特定处理组件将特定内容项存储在多项目剪贴板存储库中时调用特定处理组件,或者在一些实现方式中,可以调用单项目剪贴板存储库。在其他情况下,用户可以调用补充处理组件来对已经存储在剪贴板存储库中的内容项进行操作。

例如,当用户选择涉及跨设备传输操作的复制模式时,跨设备交互组件(cdic)1002调用它服务。在一个这样的情况下,cdic1002管理所选内容项从本地计算设备804到远程目标计算设备1004(和/或多个计算设备)和/或远程多项目剪贴板存储库826(如图8所示)等的传输。

cdic1002可以使用不同的规则来执行跨设备传输操作。例如,在一些实现方式中,cdic1002可以使用基于规则的引擎来参考一个或多个规则将一组输入因子映射到特定通信信道的选择中。在其他实现方式中,cdic1002可以使用机器训练的模型将一组输入因子映射到特定通信信道的选择中。与此相结合,数据存储库1006存储规则集合、机器学习的加权值等。该组输入因子可以包括任何基于上下文的信息,例如一天中的时间、源计算设备804的位置、每个目标计算设备的位置、可用通信信道的当前性能、可用通信信道的成本等。

根据一个这样的规则,cdic1002可以至少部分地基于目标计算设备1004相对于源计算设备804的位置来选择通信信道。例如,如果两个计算设备(804,1004)之间的距离低于规定的阈值(例如若干米),则cdic1002将使用直接对等信道来传输所选择的内容项,例如,使用蓝牙信道。如果距离高于规定阈值,则cdic1002可以使用任何消息传递协议通过广域网将内容项作为消息发送。或者cdic1002可以将内容项发送到远程多项目剪贴板存储库826,在这里它可以随后由目标计算设备1004取回,等等。还有其他特定于环境的通信选项是可能的。

cdic1002可以以任何方式确定任何两个计算设备之间的距离,例如通过使用任何位置确定机制(例如,gps机制、无线电三角测量机制、无线源接近确定机制等)检测两个设备的相应位置,然后比较两个位置。或者,cdic1002可以使用近场通信(nfc)机制等来确定目标计算设备1004相对于源计算设备804的接近度,等等。

根据另一规则,cdic1002可以至少部分地基于所选内容项的大小来选择通信信道。在一种方法中,如果该内容项的大小低于规定阈值(例如,20mb),则cdic1002可以使用第一(快速)通信信道来发送内容项,并且如果该内容项的大小高于规定的阈值,则使用第二(较慢)通信信道来发送内容项。例如,cdic1002可以通过直接消息直接发送低于阈值的内容项,并且可以通过远程多项目剪贴板存储库826中的中间存储发送高于阈值的内容项。

根据另一规则,cdic1002可以立即使用第一(快速)通信信道来发送与高于阈值的内容项相关联的元数据,并且可以使用第二(较慢)通信信道来发送实际内容本身。在接收时,目标计算设备1004可以例如通过粘贴大图像文件的缩略图图像来立即粘贴与内容项相关联的元数据。这向目标计算设备1004的用户通知将被粘贴的内容项的性质。然后,当实际内容项最终到达目标计算设备1004时,目标计算设备1004可以用实际内容项替换元数据。

其他规则可以基于以下任何组合来选择通信信道:一天中的时间,网络可用性,网络性能(例如,网络链路状态,网络拥塞等),网络成本,用户配置偏好等。

当用户选择涉及复制和共享操作的复制模式时,共享组件1008调用其服务。当被触发时,共享组件1008提供用户界面呈现(诸如说明性用户界面呈现1010),其邀请用户与一个或多个所选目标共享站点(例如所选社交网站)共享内容项,并且关于一个或多个选定的目标接收者(或整个公众),并且关于一个或多个选定的共享模式。然后,共享组件1008经由所选择的目标共享站点和模式将内容项传送到所选择的目标接收者。

当用户选择涉及格式化操作的复制模式时,格式化组件1012调用它服务。例如,格式化组件1012可以将所选内容项转换为期望格式,或者从内容项中移除格式。

当用户选择涉及一些与安全相关的规定的复制模式时,安全组件1014调用它服务。例如,安全组件1014可以将内容项标记为敏感信息。此后,安全组件1014可以防止存储库管理组件904显示内容项。例如,安全组件1014可以显示虚拟符号来代替内容项的字符。

在另一种情况下,当被指示时,安全组件1014可以防止所选择的内容项前进到多项目剪贴板存储库902中超出最顶部槽的任何槽中。在另一种情况下,安全组件1014可以在规定的时间量之后,或者当某个识别的事件发生时(例如当用户粘贴内容项时,或者当用户关闭特定应用程序时等)自动删除敏感内容项。这些规定降低了无意中泄露敏感信息的风险,例如,由于用户忘记了多项目剪贴板存储库902包含敏感信息,导致敏感信息被非预期用户访问。

当用户选择涉及级联内容项的复制模式时,项目级联组件1016调用它服务。也就是说,当被触发时,级联组件1016将当前所选内容项(例如,字符“def”)与多项目剪贴板存储库902的最顶部槽中的先前选择的内容项1018(例如,字符“abc”)级联起来,以产生级联的内容项1020(例如,“abcdef”)。项目级联组件1016然后将级联的内容项1020存储在多项目剪贴板902的最顶部的槽中,替换先前选择的内容项1018。用户随后可以将最顶部的内容项1020(例如,“abcdef”)粘贴到任何目标工作项中。

当用户选择涉及以特定方式存储所选内容项的复制模式时,项目保留组件1022调用其服务。例如,当用户将所选内容项指定为收藏项时,项目保留组件1022可以如此标记它。此后,存储库管理组件904(或项目保留组件1022本身)可以防止内容项从多项目剪贴板存储库902内的其最顶部位置移出。

剪贴板组件808还可以呈现用户界面呈现(例如,ui呈现1024),其界定收藏内容项的列表1026(已被标记为收藏(favorites)),以及其他内容项的列表1028(没被指定为收藏)。剪贴板组件808可以将任何新的内容项添加到非收藏内容项的列表1028的最顶部槽中,在非收藏内容项的列表1028中向下推动现有的非收藏内容项,并且保持收藏内容项的列表1026完整。

项目保留组件1022还可以根据来自用户的指令,回顾性地将非收藏内容项的列表1028中的任何内容项标记为收藏,此时,项目保留组件1022将该内容项添加到收藏内容项的列表1026中。

补充处理组件906还可以包括其他处理组件。以举例说明而非限制的方式阐述了上述示例。进一步注意,图5仅表示用于调用特定复制模式的一种技术,以及与其相关联的处理组件。其他实现方式可以通过除了图5中所示的其他机制来调用复制模式及其处理组件。

前进到图11,该图是示出遗留应用程序912如何与图8的剪贴板组件808交互以执行粘贴操作的信号图,即使遗留应用程序912可能最初未被设计为与多项目剪贴板存储库交互。该图用描述了一系列操作的附图标记注解。

首先假设用户与遗留应用程序912交互,例如,通过最初使用输入设备按下控制键和v键持续超过规定的时间段。接下来假设用户在按住控制键的同时再按下v键另外两次,然后释放控制键。这一系列操作具有在多项目剪贴板存储库902中选择内容项c的效果。

在操作1102中,输入拦截组件910拦截并作用于用户的输入信号。例如,输入拦截组件910最初指示ui生成组件908(图11中未示出)显示多选项ui呈现。然后,输入拦截组件910指示ui生成组件908前进到内容项c。

在操作1104中,在用户选择内容项c时,输入拦截组件910指示存储库管理组件904执行准备动作,这里对应于将内容项c从多项目剪贴板存储库902中的第三位置移动到顶部位置。在操作1106中,存储库管理组件904按照指示执行操作。

在操作1108中,输入拦截组件910将应用程序触发信号发送到遗留应用程序912。遗留应用程序912提供的遗留应用程序功能1110将该触发信号视为好像其构成由用户直接发送的ctrl+v命令。作为响应,在操作1112中,遗留应用程序功能1110使用api来请求它期望的是多项目剪贴板存储库902中的唯一内容项(因为它被设计为与单项目剪贴板存储库交互,而不是多项目剪贴板存储库)。作为响应,在操作1114中,存储库管理组件904递送多项目剪贴板存储库902中的最顶部条目,其是内容项c。在操作1116中,遗留应用程序功能1110将内容项c粘贴到目标工作项中。

换句话说,输入拦截组件910执行修改多项目剪贴板存储库902的后台任务,使得用户选择的内容项是最顶部的内容项。之后提示遗留应用程序912取回最顶部的内容项。凭借整体技术,遗留应用程序912可以取回多项目剪贴板存储库902中的任何内容项,而无需知道它存储多个内容项。

上述一系列操作也适用于图3中所示的工作流程。在该场景中,用户在“粘性”多选项ui呈现306中选择内容项。然后,输入拦截组件910执行与上述相同的操作,例如,通过指示存储库管理组件904将所选择的内容项移动到多项目剪贴板存储库中的最顶层的槽,然后将应用程序触发信号发送到遗留应用程序912。

在图3的场景的情况下,焦点跟踪组件1118执行确定将接收内容项c的目标工作项的附加功能。然后,存储库管理组件118将内容项c传送到任何遗留应用程序控件或通过其它方式与目标工作项相关联。焦点跟踪组件1118可以以不同方式确定目标工作项。在一个实现方式中,焦点跟踪组件1118可以在参与多选项ui呈现306之前存储用户最后与之交互的工作项的标识。焦点跟踪组件1118挑选该工作项作为目标工作项,因为它是在用户参与多选项ui呈现306之前接收用户焦点的最后一个工作项。遗留应用程序(控制目标工作项)和/或焦点跟踪组件1118可以存储内容项将粘贴到目标工作项中的位置。

图12是示出遗留应用程序912如何利用图9的剪贴板组件来执行符合所选复制模式x的复制操作的信号图。在这仅仅是说明性的情况下,假设复制模式x涉及在本地多项目剪贴板存储库902中存储所选内容项,以及将内容项传送到远程计算设备1202,在远程计算设备1202中它也存储在该设备的本地多项目剪贴板存储库中。

假设用户执行图5中描述的动作以激活多选项ui呈现508,并且此后选择对应于复制模式x的选项。在操作1204中,输入拦截组件910拦截由用户的动作产生的用户的输入信号。在操作1206中,输入拦截组件910指示补充处理组件906选择复制模式x。在操作1208中,输入拦截组件910可以将应用程序触发信号发送到遗留应用程序912。

遗留应用程序功能1210接收应用程序触发信号并将其解释为来自用户的传统ctrl+c命令。作为响应,在操作1212中,遗留应用程序功能1210请求存储库管理组件904存储所选择的内容项。在操作1214中,存储库管理组件904将内容项存储在多项目剪贴板存储库902的最顶部的槽中。在操作1216中,补充处理组件906根据所选择的模式x将所选择的内容项传送到目标计算设备1202。注意,补充处理组件906将对其他各个模式执行其他动作。此外,其他实现方式可以以任何方式改变上述操作的顺序。

图13是示出多项目剪贴板感知(mic感知)应用程序914如何可以直接利用图9的剪贴板组件808的各种特征的信号图。更具体地,剪贴板组件808可以提供上述各种服务,每个服务与不同的api相关联。mic感知应用程序914的开发者可以通过使用其api来访问这样的剪贴板服务来利用任何这样的剪贴板服务。例如,mic感知应用程序914可以包括利用第一api与第一剪贴板服务交互的剪贴板利用组件a1302,利用第二api与第二剪贴板服务交互的剪贴板利用组件b1304,以及利用第三api与第三剪贴板服务交互的剪贴板利用组件c1306。该方法与图11和图12中描述的策略相反,其中包括遗留api的遗留应用程序912通过由输入拦截组件910提供的重定向来利用剪贴板组件808的服务。

在没有限制的情况下,剪贴板组件808可以托管以下服务,每个服务可以通过特定api访问:(a)当应用程序请求时从多项目剪贴板存储库902提供一组内容项的服务;(b)当应用程序请求时,从多项目剪贴板存储库902提供特定类型的内容项的子集的服务;(c)当应用程序请求时将一个或多个内容项添加到多项目剪贴板存储库902的服务;(d)为通过复制操作提供的每个内容项提供一个或多个补充项的服务,等等。另外,剪贴板组件808可以托管上面参考图10描述的任何服务;然而,在该实现方式中,应用程序可以通过相应的api直接与这些服务交互,而不是使用图5中所示的特定ui策略,或者作为使用图5中所示的特定ui策略的补充。例如,应用程序可以通过使用特定的mic感知副本api调用剪贴板组件808,来指示剪贴板组件808以特定复制模式存储内容项。该复制api可以接受要被复制的内容项作为输入参数,以及指定复制模式的参数值和/或任何其他模式特定参数值。

不同的mic感知应用程序可以以不同方式利用从api获得的信息。例如,第一mic感知应用程序可以通过调用特定api来从多项目剪贴板存储库902中取回所有内容项。然后,该mic感知应用程序可以使用特定于应用程序的逻辑来生成特定于应用程序的用户界面呈现,其呈现内容项的可视表示。另一个mic感知应用程序可以执行相同的操作,但是基于任何因素过滤掉内容项的子集。例如,mic感知应用程序可以删除那些对于mic感知应用程序执行的功能不起作用的内容项。

在一些实现方式中,mic感知应用的开发者可以选择禁用图11和12中描述的交互模式。在其他实现方式中,mic感知应用程序的开发者可以允许图11和12中描述的交互模式如上所述那样进行操作,同时提供利用上述增强的mic感知api的附加功能。在那种情况下,开发者可以允许用户通过两个或更多个访问策略访问多项目剪贴板存储库902的内容项。在其他情况下,开发者可以继续排他地使用遗留复制和粘贴api提供的遗留复制和粘贴操作,有效地忽略剪贴板组件808提供的增强的mic感知api。在该场景中,最终用户可以继续使用图11和12中描述的方法与多项目剪贴板存储库902交互。总之,为开发者提供了工具,使他或她能够创建应用程序,该应用程序通过各种访问策略将剪贴板组件808利用到不同的程度(包括根本不利用)来服务于许多不同的应用目标。

c.代表性计算功能

图14示出了可用于实现上述附图中阐述的机制的任何方面的计算功能1402。例如,图14中所示的计算功能1402的类型可用于实现图8的本地计算设备804。一般注意,图14中描述的特征集是说明性的,并且计算功能1402的任何特定的表现形式可以省略图14中所示的特征中的一个或多个,和/或添加图14中未示出的一个或多个特征。在所有情况下,计算功能1402表示一个或多个物理和有形的处理机制。

计算功能1402可以包括一个或多个硬件处理器设备1404,诸如一个或多个中央处理单元(cpu),和/或一个或多个图形处理单元(gpu)等。计算功能1402还可以包括用于存储任何类型的信息的任何存储资源(也称为计算机可读存储介质或计算机可读存储介质设备)1406,例如机器可读指令、设置、数据等。例如,不是限制,存储资源1406可以包括任何类型的ram、任何类型的rom、闪存设备、硬盘、光盘等中的任何一个。更一般地,任何存储资源都可以使用任何技术来存储信息。此外,任何存储资源都可以提供易失性或非易失性的信息保留。此外,任何存储资源可以表示计算功能1402的固定或可移除组件。计算功能1402还包括用于与任何存储资源交互的一个或多个驱动机制1408,例如硬盘驱动机制、光盘驱动机制等等。

当硬件处理器设备1404执行存储在任何存储资源或存储资源组合中的计算机可读指令时,计算功能1402可以执行上面在部分a和b中描述的任何功能。此外,计算功能1402可以使用任何存储资源或存储资源的组合来存储图9中所示的多项目剪贴板存储库902,或单项目剪贴板存储库。

计算功能1402还包括输入/输出组件1410,用于接收各种输入(通过输入设备1412),并用于提供各种输出(通过输出设备1414)。说明性输入设备包括键盘设备、鼠标输入设备、触摸屏输入设备、数字化垫、一个或多个摄像照相机、一个或多个深度相机、自由空间手势识别机构、一个或多个麦克风、语音识别机制、任何移动检测机制(例如,加速度计、陀螺仪等)、触觉输入机制等。一个特定的输出机制可以包括显示设备1416和相关的图形用户界面呈现(gui)1418。剪贴板组件可以在显示设备1416上呈现图中所示的其各种用户界面呈现。显示设备1416可以对应于电荷耦合显示设备、阴极射线管设备、投影机构等。计算功能1402还可以包括一个或多个网络接口1420,用于通过一个或多个通信管道1422与其他设备交换数据。一个或多个通信总线1424将上述组件通信地耦合在一起。

通信管道1422可以以任何方式实现,例如,通过局域计算机网络、广域计算机网络(例如,因特网)、点对点连接等或其任何组合。通信管道1422可以包括由任何协议或协议组合管理的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。

可替代地或另外地,前面部分中描述的任何功能可以至少部分地由一个或多个硬件逻辑组件来执行。例如但不限于,计算功能1402(及其硬件处理器)可以使用以下中的一个或多个来实现:现场可编程门阵列(fpga);专用集成电路(asic);特定应用标准产品(assp);片上系统(soc);复杂可编程逻辑器件(cpld)等。在这种情况下,机器可执行指令体现在硬件逻辑本身中。

以下概述提供了本文所述技术的说明性方面的非详尽列表。

根据第一方面,本文描述了一种计算设备,其包括具有至少多项目剪贴板存储库和输入拦截组件的剪贴板组件。多项目剪贴板存储库存储由一个或多个应用程序提供的一个或多个内容项。输入拦截组件被配置为:在用户与特定应用程序交互的过程中,响应于用户与输入设备的交互,检测选项选择事件;响应于所述选项选择事件,指示所述剪贴板组件执行准备动作;以及将应用程序触发信号发送到特定应用程序。该特定应用程序被配置为响应于所述应用程序触发信号而与所述剪贴板组件交互以执行剪贴板动作。

根据第二方面,剪贴板组件由计算设备的操作系统实现。

根据第三方面,所述准备动作对应于将所述多项目剪贴板存储库中的所选内容项移动到所述多项目剪贴板存储库中的特定位置。此外,所述特定应用程序通过从所述特定位置接收所选内容项来执行剪贴板动作,并将所选内容项粘贴到由所述特定应用程序提供的目标工作项中。

根据第四方面,准备动作对应于从一组复制模式中设置特定复制模式。特定应用程序通过将所选内容项发送到剪贴板组件来执行剪贴板动作,此时,剪贴板组件根据已设置的特定复制模式对所选项执行处理。

根据第五方面,输入拦截组件还被配置为:响应于用户与输入设备的交互,检测用户界面(ui)激活事件;并且,响应于ui激活事件,调用多选项用户界面(ui)呈现。

根据第六方面,多选项ui呈现提供多项目剪贴板存储库中的一个或多个内容项的表示。

根据第七方面,多选项ui呈现提供用于复制所选内容项的一个或多个复制模式的表示。

根据第八方面,输入拦截组件被配置为响应于检测到用户已经以第一规定方式激活了至少第一输入键和第二输入键,来检测ui激活事件。

根据第九方面,输入拦截组件被配置为响应于检测到用户已经以第二规定方式激活第一输入键和第二输入键,来检测选项选择事件。

根据第十方面,所述输入拦截组件被配置为通过检测用户在多选项用户界面(ui)呈现中选择了所选内容项来检测所述选项选择事件。此外,所述剪贴板组件还被配置为确定对应于在用户参与多选项ui呈现之前处于焦点的工作项的目标工作项。

根据第十一方面,描述了一种方法,该方法由一个或多个计算设备实现,用于与剪贴板存储库交互。该方法包括:响应于用户与输入设备的交互,检测用户界面(ui)激活事件;响应于所述ui激活事件而呈现多选项用户界面(ui)呈现;响应于用户与输入设备的交互,检测选项选择事件;响应于选项选择事件,在多选项ui呈现中选择特定选项;以及执行与特定选项相对应的影响剪贴板存储库的特定剪贴板动作。响应于与ui激活事件相同的一组用户界面控制机制的致动而产生选项选择事件。

根据第十二方面,通过检测用户已经以第一规定方式激活了至少第一输入键和第二输入键来检测所述ui激活事件。此外,通过检测用户已经以第二规定方式激活第一输入键和第二输入键来检测所述选项选择事件。

根据第十三方面,该方法还包括,在另一种情况下,响应于用户以第三规定方式致动第一输入键和第二输入键,执行默认剪贴板动作。第三规定方式至少部分地基于用户致动输入中的至少一个键的时间量而与第一规定方式区分开。

根据第十四方面,剪贴板存储库是多项目剪贴板存储库。此外,所述多选项ui呈现提供所述多项目剪贴板存储库中的一个或多个内容项的表示。此外,所选择的特定选项对应于所述多项目剪贴板存储库中的所选内容项。此外,所述特定剪贴板动作包括将所选内容项提供给应用程序,用于将所选内容项粘贴到用户正与之交互的目标工作项中。

根据第十五方面,多选项ui呈现提供用于复制所选内容项的一个或多个复制模式的表示。此外,所选择的特定选项对应于用于复制所选内容项的所选复制模式。此外,特定剪贴板动作对应于按照所选复制模式复制所选内容项。

根据第十六方面,特定剪贴板动作涉及将所选内容项传送到一个或多个目标计算设备。

根据第十七方面,特定剪贴板动作涉及提供通过一个或多个目标共享系统共享所选内容项的邀请。

根据第十八方面,特定剪贴板动作涉及将所选内容项存储在剪贴板存储库中,使得所选内容项具有一个或多个指定属性,每个属性控制剪贴板存储库进行以下操作的方式:保留所选内容项;和/或提供对所选内容项的访问。

根据第十九方面,本文描述了一种用于存储计算机可读指令的计算机可读存储介质。当由一个或多个处理器设备执行时,计算机可读指令执行一种方法,该方法包括:在第一种情况下,通过检测用户已经执行了默认剪贴板手势来检测默认剪贴板事件;并且响应于默认剪贴板事件,执行默认剪贴板动作。该方法还包括,在第二种情况下,通过检测用户已经执行了ui激活手势来检测用户界面(ui)激活事件。至少部分地基于用户致动用户界面控制机制的时间量,将ui激活手势与默认剪贴板手势区分开。该方法还包括:响应于ui激活事件,呈现多选项用户界面(ui)呈现;响应于用户与多选项ui呈现的交互,检测选项选择事件;并且响应于选项选择事件,在多选项ui呈现中选择特定选项。

根据第二十方面,上面提到的默认剪贴板事件的检测,上面提到的ui激活事件的检测,以及上面提到的选项选择事件的检测涉及检测到用户以不同的相应方式激活同一组用户界面控制机制。

根据第二十一方面,描述了一种用于将内容项复制到剪贴板存储库的方法。该方法包括响应于用户与输入设备的交互来检测用户界面(ui)激活事件。该方法然后包括响应于ui激活事件而呈现多选项用户界面(ui)呈现。多选项ui呈现提供用于复制所选内容项的一种或多种复制模式的表示。该方法还包括响应于用户与输入设备的交互来检测选项选择事件,以及响应于选项选择事件来选择多选项ui呈现中的特定选项。所选的特定选项对应于用于复制所选内容项的所选复制模式。该方法还包括根据所选复制模式复制所选内容项。

根据第二十二方面,描述了一种用于将内容项复制到剪贴板存储库的方法。该方法包括接收用户对与所选内容项相对应的要复制的内容项的选择。用户通过第一计算设备进行选择。该方法还包括参考一个或多个规则和/或其他逻辑确定至少一个通信信道,以将所选内容项从第一计算设备传送到至少第二计算设备。所选择的通信信道构成所选择的通信信道。该方法然后经由所选择的通信信道将所选内容项传送到第二计算设备。在接收到所选内容项时,第二计算设备可以可选地将所选项存储在其本地剪贴板存储库中。

根据第二十三方面,基于以下的任意组合来选择所选择的通信信道:所选内容项的大小;第二计算设备相对于第一计算设备的位置;通信信道中的一个或多个的表现等。

根据第二十四方面,所选择的通信信道包括:第一通信信道,用于传送与所选内容项有关的元数据;以及第二通信信道,用于传送与所选内容项相关联的内容。

第二十五方面对应于上述第一至第二十四方面的任何组合(例如,任何逻辑上兼容的置换或子集)。

第二十六方面对应于与第一至第二十五方面相关的任何方法对应物、设备对应物、系统对应物、单元加功能对应物、计算机可读存储介质对应物、数据结构对应物、制品对应物、图形用户界面表示对应物等。

最后,这里描述的功能可以采用各种机制来确保以符合适用法律、社会规范以及个人用户的期望和偏好的方式处理任何用户数据。例如,该功能可以允许用户明确地选择加入(然后明确地选择退出)功能的规定。该功能还可以提供合适的安全机制以确保用户数据的隐私(例如数据清理机制、加密机制、密码保护机制等)。

尽管用结构特征和/或方法动作专用的语言描述了本主题,但应理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。而是,公开了上述具体特征和动作作为实现权利要求的示例形式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1