一种文本输入实现方法及装置与流程

文档序号:12596192阅读:213来源:国知局
一种文本输入实现方法及装置与流程

本发明涉及电子技术领域,尤其涉及一种文本输入实现方法及装置。



背景技术:

当前,人们使用PC的机会越来越多,需要输入文本的情况也非常多。当需要多种语言混合输入的时候,经常需要在多种语言之间来回切换,但是输入法状态条因为会遮挡界面的缘故,通常最小化显示在任务栏,观察不便,所以当用户需要切换输入法的时候,通常是通过状态切换试错来达到目的。

例如,用户当前是系统默认的英文输入法,但是想要输入中文,正确的做法是按下中文输入法的快捷键,就可以启动中文输入法切换到中文输入状态了。但是用户通常的情况是尝试输入字符,观察文本输入显示结果,如果这时用户观察到的结果是英文且误以为当前是中文输入法的英文状态,他就会按下该中文输入法的相应快捷键尝试切换到该中文输入法的中文状态,结果发现输入的还是英文,这时才能反应过来,中文输入法尚未开启。再次按下调用中文输入法的快捷键,开启中文输入法,此时才能够正确输入中文字符。

从上面这个例子来看,如果操作正确,只要一次按键就可以把输入法切换到正确状态;但是如果操作错误,需要输入字符->观察结果->按键切换->再次输入字符->再次观察结果->再次按键切换,总共6个步骤才能达到目的,这样会大大降低用户文本输入的速度。

为了解决上述问题,现有技术中提供了两种解决方案,具体包括:

一、根据前后文自动切换输入法。具体实现方案为:捕获焦点所在位置, 检测光标前后文本语言类型,自动切换输入法到相应的状态。

但是当用户需要多种语言混合输入的时候,比如中英文混合,软件将无法做出正确判断并把输入法切换到正确状态。

二、根据文本控件类型自动切换输入法。具体实现方案为:软件检测到焦点所在文本窗口是指定类型,比如密码框时,自动切换输入法到相应的状态。

该方案只能对指定文本窗口且在该窗口内只用到一种输入法,且只用到该种输入法的一种语言状态的情形有效,比如中文输入法的中文状态。对于普通文本输入窗口,需要输入多种语言的情况无效。



技术实现要素:

本发明提供一种文本输入实现方法及装置,本发明所提供的方法和装置解决现有技术中输入法切换方法会降低用户文本输入的效率的问题。

第一方面,提供一种文本输入实现方法,该方法具体包括:

电子设备检测焦点窗口是否为可编辑状态,如果是,则获取电子设备当前输入法的状态信息,并根据所述状态信息生成状态条;

将所述状态条显示在目标位置,其中,所述目标位置与所述焦点窗口中光标所在位置之间的距离小于预设阈值。

结合第一方面,在第一种可能的实现方式中,将所述状态条显示在目标位置之前,该方法进一步包括:

若检测到所述目标位置有显示内容,则调整所述状态条的透明度,使得所述显示内容透过所述状态条显示。

结合第一方面,或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,当所述电子设备的操作系统为视窗Windows操作系统,则所述电子设备检测焦点窗口是否为可编辑状态包括:

调用应用程序接口GetGUIThreadInfo获得所述光标所在窗口的句柄;

检测所述光标所在窗口的句柄是否为空,如果不为空,则确定所述焦点窗口为可编辑状态;如果为空,则确定所述焦点窗口为不可编辑状态。

结合第一方面,或者第一方面的第一至二种可能的实现方式中任意一种,在第三种可能的实现方式中,所述将所述状态条显示在目标位置之后,该方法进一步包括:

电子设备再次检测当前焦点窗口是否为可编辑状态,如果所述当前焦点窗口为不可编辑状态,则隐藏或最小化所述状态条。

结合第一方面,或者第一方面的第一至三种可能的实现方式中任意一种,在第四种可能的实现方式中,将所述状态条显示在目标位置包括:

根据预设的光标所在位置与目标位置的对应关系,确定所述光标所在位置对应的第一目标位置,并将所述状态条显示在所述第一目标位置;或者

根据接收到的描述所述目标位置的输入参数确定所述状态条的第二目标位置,并将所述状态条显示在所述第二目标位置。

结合第一方面,或者第一方面的第一至四种可能的实现方式中任意一种,在第五种可能的实现方式中,当所述焦点窗口通过电子设备的显示单元进行显示,则将所述状态条显示在目标位置之前,包括:

确定所述光标所在位置与所述显示单元的每条边框之间的距离;

根据所述距离确定所述目标位置,其中,当该目标位置与所述状态条的左上角坐标对应,则所述目标位置与所述显示单元的底边线之间的距离大于所述状态条的高;所述目标位置与所述显示单元的右侧边线之间的距离大于所述状态条的宽。

第二方面,提供一种电子设备,该电子设备包括:

状态条生成单元,用于检测焦点窗口是否为可编辑状态,如果是,则获取电子设备当前输入法的状态信息,并根据所述状态信息生成状态条;

输出单元,用于将所述状态条显示在目标位置,其中,所述目标位置与所述焦点窗口中光标所在位置之间的距离小于预设阈值。

结合第二方面,在第一种可能的实现方式中,该电子设备还包括:

透明度调整单元,用于将所述状态条显示在目标位置之前,用于检测到所述目标位置有显示内容,则调整所述状态条的透明度,使得所述显示内容透过所述状态条显示。

结合第二方面,或者第二方面的第一种可能的实现方式,在第二种可能的实现方式中,当该电子设备的操作系统为视窗Windows操作系统,所述状态条生成单元检测焦点窗口是否为可编辑状态包括:

调用应用程序接口GetGUIThreadInfo获得所述光标所在窗口的句柄;

检测所述光标所在窗口的句柄是否为空,如果不为空,则确定所述焦点窗口为可编辑状态;如果为空,则确定所述焦点窗口为不可编辑状态。

结合第二方面,或者第二方面的第一至二种可能的实现方式中任意一种,在第三种可能的实现方式中,所述输出单元将所述状态条显示在目标位置之后,所述状态条生成单元还用于再次检测当前焦点窗口是否为可编辑状态,如果所述当前焦点窗口为不可编辑状态,则隐藏或最小化所述状态条。

结合第二方面,或者第二方面的第一至三种可能的实现方式中任意一种,在第四种可能的实现方式中,所述输出单元将所述状态条显示在目标位置包括:

根据预设的光标所在位置与目标位置的对应关系,确定所述光标所在位置对应的第一目标位置,并将所述状态条显示在所述第一目标位置;或者

根据接收到的描述所述目标位置的输入参数确定所述状态条的第二目标位置,并将所述状态条显示在所述第二目标位置。

结合第二方面,或者第二方面的第一至四种可能的实现方式中任意一种,在第五种可能的实现方式中,当所述焦点窗口通过电子设备的显示单元进行显示,该电子设备还包括:

目标位置调整单元,用于将所述状态条显示在目标位置之前,用于确定所述光标所在位置与所述显示单元的每条边框之间的距离;根据所述距离确定所述目标位置,其中,当该目标位置与所述状态条的左上角坐标对应,则所述目标位置与所述显示单元的底边线之间的距离大于所述状态条的高;所述目标位置与所述显示单元的右侧边线之间的距离大于所述状态条的宽。

上述技术方案中的一个或两个,至少具有如下技术效果:

本发明公开的方法和装置检测到用户对文本编辑框操作时,将电子设备当前输入法的状态显示在光标附近可以让用户直接在光标处观察到输入法状态,降低用户试错的几率,从而提高用户的文本输入速度和工作效率。

附图说明

图1为本发明实施例一提供的一种文本输入实现方法的流程示意图;

图2为本发明实施例中状态条与光标相对位置关系的示意图;

图2a为具体应用中状态条显示的示意图;

图2b为本发明实施例中最小化显示状态条的示意图;

图3为本发明实施例中状态条半透明方式显示时的示意图;

图4为本发明实施例二提供的一种文本输入实现方法的流程示意图;

图5为本发明实施例三提供的一种电子设备结构示意图;

图6为本发明实施例四提供的一种电子设备结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面结合说明书附图对本发明实施例作进一步详细描述。

如图1所示,本发明实施例提供一种文本输入实现方法,该方法具体包括步骤:

步骤101,电子设备检测焦点窗口是否为可编辑状态,如果是,则获取电子设备当前输入法的状态信息,并根据所述状态信息生成状态条;

在本发明实施例中,该状态信息用于描述系统输入法当前的状态,其中,该状态信息可以是输入法中的全角、半角、中文、英文等相关状态信息。并且焦点窗口在可编辑状态下,焦点窗口中的内容是可以进行调整的。

因为一般情况下系统当前的输入法状态都是以最小化语言栏的方式显示在显示单元中的任务栏,但是用户进行文本输入时,一般只是关注光标所在位置,所以距离光标所在位置远的输入法状态很多时候都不能被用户注意到,从而很多时候会导致误操作。在本发明实施例中,为了使得用户能够方便查看当前输入法的状态,则可以获取电子设备当前输入法的状态信息,并基于该状态信息生成一个状态条。

如果本发明实施例提供的方案应用到视窗(Windows)操作系统,在windows操作系统中,因为光标只在焦点窗口中存在,而且窗口存在光标则可以确定该窗口可编辑,所以在该实施例中可以通过判断光标所在窗口的句柄是 否为空,进而确定焦点窗口是否为可编辑状态。所以在该实施例中,电子设备检测焦点窗口是否为可编辑状态具体实现可以是:

调用应用程序接口GetGUIThreadInfo获得所述光标所在窗口的句柄;

检测所述光标所在窗口的句柄是否为空,如果不为空,则确定所述焦点窗口为可编辑状态;如果为空,则确定所述焦点窗口为不可编辑状态。

在具体实现时,根据用户的不同操作焦点窗口会出现不断切换的情况,所以焦点窗口是否可编辑的判断需要实时执行才能让状态条的显示满足焦点窗口切换的需求,所以在该实施例中调用应用程序接口GetGUIThreadInfo获得光标所在窗口的句柄的操作可以采用定时循环重复执行的方式。

步骤102,将所述状态条显示在目标位置,其中,所述目标位置与所述焦点窗口中光标所在位置之间的距离小于预设阈值。

在用户进行文本输入时,视线一般会集中在光标周围,所以本发明实施例所提供的方法中,在形成状态条之后会把状态条显示在光标附近的位置;具体实现方式可以是:

根据预设的光标所在位置与目标位置的对应关系,确定所述光标所在位置对应的第一目标位置,并将所述状态条显示在所述第一目标位置;或者

根据接收到的描述所述目标位置的输入参数确定所述状态条的第二目标位置,并将所述状态条显示在所述第二目标位置。

其中,该目标位置可以与状态条左上角的坐标也可以与状态条中心点的坐标对应,在具体的实际操作应用中可以根据需要进行调整和设定。

例如,设定状态条的中心点或者左上角顶点与目标位置坐标点对应,如果以状态条的中心点与目标位置的坐标点对应;用户可以设置预设阈值为0.5cm,状态条的中心点与目标位置的坐标对应,则光标所在位置与目标位置的对应关 系可以是:目标位置设置在以光标为圆心0.5cm为半径的圆圈范围内,更进一步的位置可以是圆圈范围中的光标右下角(具体实例如图2所示,具体的应用环境中状态条与光标的显示示意如图2a所示)。

进一步,为了避免状态条遮挡其他显示内容,如果电子设备切换焦点窗口,则该方法进一步包括:

电子设备再次检测当前焦点窗口是否为可编辑状态,如果所述当前焦点窗口为不可编辑状态,则隐藏或最小化所述状态条(状态条最小化之后的示意图如图2b所示)。

在该实施例所提供的方案中,因为设置的目标位置与所述光标所在位置之间的距离小于预设阈值,所以在光标调整位置的同时显示的状态条也会对应的调整位置,光标在调整位置的过程中,可能会移动到显示单元的角落,所以如果将光标与状态条的相对位置关系固定,则会导致在某些位置不能正确显示状态条,为了解决这个问题,本发明实施例所提供的方法中,当所述焦点窗口通过电子设备的显示单元进行显示,则将所述状态条显示在目标位置之前,包括:

确定所述光标所在位置与所述显示单元的每条边框之间的距离;

根据所述距离确定所述目标位置,其中,当该目标位置与所述状态条的左上角坐标对应,则所述目标位置与所述显示单元的底边线之间的距离大于所述状态条的高;所述目标位置与所述显示单元的右侧边线之间的距离大于所述状态条的宽。

例如:预设的状态条与光标的相对位置关系是:状态条显示在光标的右下角,则当光标移动到显示单元的右下角,并且光标移动到显示单元的右下角并且光标与显示单元任一边线之间的距离小于状态条的长或宽时,则可以将状态条调整显示在光标的左上角。

在具体的应用中,将状态条显示在目标位置的具体实现包括:

当显示单元宽度为L,高度为H;状态条长度为L,高度为H;光标移动的区域范围为显示单元左上角坐标(X1,Y1)和右下角坐标(X2,Y2)所确定的区域;Windows任务栏高度H任务栏;用户设置状态条与光标之间的距离为△(即步骤102中的预设阈值为△,在该实例中状态条与光标之间的距离是以状态条左上角坐标为基准测算的)。则状态条左上角屏幕坐标位置计算如下:

计算状态条左上角x坐标:如果X2+L+△>L,说明光标太靠近显示右侧边线,如果此时将状态条放在光标右下侧,会导致状态条无法完整显示,所以状态条左上角坐标应调整为X1–L–△;如果X2+L+△<L屏,,则左上角x坐标为X2+△。

计算状态条左上角y坐标:如果Y2+H+H任务栏+△>H,说明光标太靠近屏幕底边线,需要把状态条调整到光标上方,即调整为Y1–H–△;如果Y2+H+H任务栏+△<H则左上角y坐标为Y2+△。

在本发明实施例中,因为状态条是跟随光标的位置变化而调整位置的,所以如果直接显示状态条则会导致状态条遮挡屏幕显示内容的问题,为了避免这个问题,本发明实施例所提供的方法在将所述状态条显示在目标位置之前,还进一步包括:

若检测到所述目标位置有显示内容,则调整所述状态条的透明度,使得所述显示内容透过所述状态条显示(如图3所示)。

实施例二

本发明所提供的方案是基于操作系统开发的独立应用程序。为了进一步的说明本发明实施例所提供的方案(如图4所示),以下以Windows操作系统为 例(本实施例只是以Windows操作系统为例,但是本发明实施例所提供的方法并不局限于只能使用在Windows操作系统,本发明实施例所提供的方案也可以用于Mac OS X、Linux等操作系统),对本发明实施例所提供的方法进行详细的说明,具体包括:

步骤401、用户程序启动并驻留后台。

步骤402、启动定时器,定时循环调用Windows操作系统中的应用程序接口(Application Programming Interface,API)GetGUIThreadInfo获得前台线程的焦点窗口句柄、光标所在窗口句柄和光标所在位置。

步骤403、检测光标所在窗口句柄是否为空,如果为空,则可判定当前窗口不可编辑,如果已获取电子设备当前输入法的状态信息,并根据该状态信息生成了输入法状态对应的状态条,则隐藏或最小化该状态条,并转入步骤402;如果不为空,则表示焦点窗口可编辑,转入步骤404;

步骤404,获取电子设备当前输入法的状态信息,并根据该状态信息生成状态条,并将状态条显示在目标位置,并且该目标位置与焦点窗口中光标所在位置之间的距离小于预设阈值。

其中,确定目标位置的方式可以是:

根据预设的光标所在位置与目标位置的对应关系,确定所述光标所在位置对应的第一目标位置,并将所述状态条显示在所述第一目标位置;或者

根据接收到的描述所述目标位置的输入参数确定所述状态条的第二目标位置,并将所述状态条显示在所述第二目标位置。

进一步,为了状态条不遮挡屏幕显示的其他内容,还可以在显示状态条时,将状态条调整为半透明状态。

在该实施例中,如果用户对输入法进行了切换,并且切换后的输入法有对 应的状态条,则可以隐藏状态条,然后将该状态条显示在所述状态条所显示的位置(其中,状态条也可以调整为半透明状态)。其中,在状态条中显示的内容可以包括:全、半角、中文、英文等相关状态。具体调用方式可以是:

调用Windows API GetKeyboardLayout获得输入法,调用Windows API ImmGetConversionStatus获得全/半角等相关状态信息。

在该实施例中,可以把半透明状态条显示在光标右下角。对于用户自定义了半透明状态条的,按照用户已定义的位置显示半透明状态条。

但是当计算出的位置到屏幕边框的位置不足以放下半透明状态条的时候,则把半透明状态条移动到反向位置。

实施例三

如图5所示,本发明实施例提供一种电子设备,该电子设备500包括:

状态条生成单元501,用于检测焦点窗口是否为可编辑状态,如果是,则获取电子设备当前输入法的状态信息,并根据所述状态信息生成状态条;

在本发明实施例中,该状态信息用于描述系统输入法当前的状态,其中,该状态信息可以是输入法中的全角、半角、中文、英文等相关状态信息。并且焦点窗口在可编辑状态下,焦点窗口中的内容是可以进行调整的。

当该电子设备的操作系统为视窗Windows操作系统,该状态条生成单元501检测焦点窗口是否为可编辑状态包括:

调用应用程序接口GetGUIThreadInfo获得所述光标所在窗口的句柄;

检测所述光标所在窗口的句柄是否为空,如果不为空,则确定所述焦点窗口为可编辑状态;如果为空,则确定所述焦点窗口为不可编辑状态。

输出单元502,用于将所述状态条显示在目标位置,其中,所述目标位置与所述焦点窗口中光标所在位置之间的距离小于预设阈值。

具体的,该输出单元502将所述状态条显示在目标位置的具体实现操作可以是:

根据预设的光标所在位置与目标位置的对应关系,确定所述光标所在位置对应的第一目标位置,并将所述状态条显示在所述第一目标位置;或者

根据接收到的描述所述目标位置的输入参数确定所述状态条的第二目标位置,并将所述状态条显示在所述第二目标位置。

进一步,为了避免状态条遮挡其他显示内容,如果电子设备切换焦点窗口,则输出单元502将所述状态条显示在目标位置之后,

状态条生成单元501还用于再次检测当前焦点窗口是否为可编辑状态,如果所述当前焦点窗口为不可编辑状态,则隐藏或最小化所述状态条。

可选的,因为状态条是跟随光标的位置变化而调整位置的,所以如果直接显示状态条则会导致状态条遮挡屏幕显示内容的问题,为了避免这个问题,该电子设备还包括:

透明度调整单元,用于将所述状态条显示在目标位置之前,用于检测到所述目标位置有显示内容,则调整所述状态条的透明度,使得所述显示内容透过所述状态条显示。

在该实施例所提供的方案中,因为设置的目标位置与所述光标所在位置之间的距离小于预设阈值,所以在光标调整位置的同时显示的状态条也会对应的调整位置,光标在调整位置的过程中,可能会移动到显示单元的角落,所以如果将光标与状态条的相对位置关系固定,则会导致在某些位置不能正确显示状态条,为了解决这个问题,当所述焦点窗口通过电子设备的显示单元进行显示,该电子设备还包括:

目标位置调整单元,用于将所述状态条显示在目标位置之前,用于确定所 述光标所在位置与所述显示单元的每条边框之间的距离;根据所述距离确定所述目标位置,其中,当该目标位置与所述状态条的左上角坐标对应,则所述目标位置与所述显示单元的底边线之间的距离大于所述状态条的高;所述目标位置与所述显示单元的右侧边线之间的距离大于所述状态条的宽。

实施例四

如图6所示,本发明实施例还提供另外一种电子设备,该电子设备600具体包括处理器601和显示器602:

处理器601,用于检测焦点窗口是否为可编辑状态,如果是,则获取电子设备当前输入法的状态信息,并根据所述状态信息生成状态条;并控制所述显示器602将所述状态条显示在目标位置,其中,所述目标位置与所述焦点窗口中光标所在位置之间的距离小于预设阈值;

在本发明实施例中,该状态信息用于描述系统输入法当前的状态,其中,该状态信息可以是输入法中的全角、半角、中文、英文等相关状态信息。并且焦点窗口在可编辑状态下,焦点窗口中的内容是可以进行调整的。

显示器602,用于显示所述状态条。

当该电子设备的操作系统为视窗Windows操作系统,该处理器602检测焦点窗口是否为可编辑状态包括:

调用应用程序接口GetGUIThreadInfo获得所述光标所在窗口的句柄;

检测所述光标所在窗口的句柄是否为空,如果不为空,则确定所述焦点窗口为可编辑状态;如果为空,则确定所述焦点窗口为不可编辑状态。

具体的,该处理器601控制将所述状态条显示在目标位置的控制所述显示器602将所述状态条显示在目标位置具体实现可以是:

根据预设的光标所在位置与目标位置的对应关系,确定所述光标所在位置 对应的第一目标位置,并将所述状态条显示在所述第一目标位置;或者

根据接收到的描述所述目标位置的输入参数确定所述状态条的第二目标位置,并将所述状态条显示在所述第二目标位置。

进一步,为了避免状态条遮挡其他显示内容,如果电子设备切换焦点窗口,则处理器601还用于再次检测当前焦点窗口是否为可编辑状态,如果所述当前焦点窗口为不可编辑状态,则隐藏或最小化所述状态条。

可选的,因为状态条是跟随光标的位置变化而调整位置的,所以如果直接显示状态条则会导致状态条遮挡屏幕显示内容的问题,为了避免这个问题,该电子设备还包括:

处理器601还用于将所述状态条显示在目标位置之前,用于检测到所述目标位置有显示内容,则调整所述状态条的透明度,使得所述显示内容透过所述状态条显示。

在该实施例所提供的方案中,因为设置的目标位置与所述光标所在位置之间的距离小于预设阈值,所以在光标调整位置的同时显示的状态条也会对应的调整位置,光标在调整位置的过程中,可能会移动到显示单元的角落,所以如果将光标与状态条的相对位置关系固定,则会导致在某些位置不能正确显示状态条,为了解决这个问题,当所述焦点窗口通过电子设备的显示单元进行显示,该电子设备还包括:

处理器601还用于将所述状态条显示在目标位置之前,用于确定所述光标所在位置与所述显示单元的每条边框之间的距离;根据所述距离确定所述目标位置,其中,当该目标位置与所述状态条的左上角坐标对应,则所述目标位置与所述显示单元的底边线之间的距离大于所述状态条的高;所述目标位置与所述显示单元的右侧边线之间的距离大于所述状态条的宽。

本申请实施例中的上述一个或多个技术方案,至少具有如下的技术效果:

本发明公开的方法和装置检测到用户对文本编辑框操作时,将电子设备当前输入法的状态显示在光标附近可以让用户直接在光标处观察到输入法状态,降低用户试错的几率,从而提高用户的文本输入速度和工作效率。

本发明在光标处显示输入法及其语言状态,从而让用户一次准确完成想要的切换。

本发明提供的方案解决了Windows下自定义控件是否可编辑的判断问题,达到了准确判断焦点窗口是否可编辑的有益效果。

本发明所述的方法并不限于具体实施方式中所述的实施例,本领域技术人员根据本发明的技术方案得出其它的实施方式,同样属于本发明的技术创新范围。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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