在虚拟桌面中使用客户端输入法的方法、终端及服务端的制作方法

文档序号:7961073阅读:467来源:国知局
专利名称:在虚拟桌面中使用客户端输入法的方法、终端及服务端的制作方法
技术领域
本发明涉及虚拟桌面技术领域,尤其涉及一种在虚拟桌面中使用客户端输入法的方法、终端及服务端。
背景技术
虚拟桌面是将操作系统运行在服务器或服务器的虚拟机上,并将虚拟机的桌面通过网络发送给远程的客户端的一种服务。虚拟桌面主要由虚拟桌面服务端和客户端组成,服务端将桌面的信息,包括文字、图片、音视频等,发送给客户端,由客户端呈现这些信息,同时客户端会将用户操作的鼠标键盘事件发送给服务端。虚拟桌面服务端和客户端通过虚拟桌面协议进行通信,虚拟桌面协议内部分为多个逻辑通道,分别用于传送不同类型的信息,如屏幕显示信息、键盘信息、音频信息等。虚拟桌面系统架构如图1所示,101是运行操作系统的服务器或虚拟机(以下简称服务端)。102是终端(以下简称客户端),其上设置有虚拟桌面客户端模块,该终端可以是普通PC机,也可以是手机等移动终端设备。103是虚拟桌面服务端模块,它负责将操作系统的桌面信息发送给客户端进行显示,并将接收到的客户端发来的键盘鼠标事件发送给操作系统模块,就像本地的输入一样。104是操作系统模块,它负责将接收到的键盘事件发送给输入法管理器,以便后者进行输入法处理。105是输入法管理器,可以在其中预配置多种输入法,它将键盘事件发送给当前激活的输入法,并将接收到的当前激活的输入法返回的文字信息发送给应用程序模块。输入法管理器在不同的操作系统中可以有不同的形态,如可以是系统模块、动态库,也可以是独立服务进程。106是输入法管理器中预配置的本地输入法,包含输入法处理逻辑和字库。107是应用程序模块,它接收输入法输入的文字。108是键盘事件通道,客户端将本地所有的键盘事件通过此通道发送给服务端。在这个架构中,键盘事件都是由客户端直接发送给服务端的,没有经过客户端输入法,因此客户端输入法在用户使用的虚拟桌面中是不起作用的。当客户端设备与服务端设备的输入方式有明显区别时,如服务端是普通PC机的 Windows操作系统,客户端是手机,用户通过触摸屏进行文字输入时,那用户输入文字将十分困难。因为,按照现有技术,手机作为虚拟桌面的客户端时,不能使用专为手机优化设计的输入法,而是只能使用服务端为PC设计的输入法。这样就严重降低了手机用户使用虚拟桌面的用户体验。

发明内容
本发明提出一种在虚拟桌面中使用客户端输入法的方法、终端及服务端,以克服现有客户端只能使用服务端提供的输入法所带来的用户体验差的缺陷。为解决上述问题,本发明提供了一种在虚拟桌面中使用客户端输入法的方法,包括
客户端将接收到的用户通过虚拟桌面选择使用本地输入法的请求发送给服务端;所述服务端与所述客户端在完成协商后,请求所述客户端激活所述客户端上的输入法;所述客户端激活本地输入法,使用本地当前激活的输入法对用户输入的信息进行逻辑处理后,将得到的用户确认输入的信息发送给所述服务端;所述服务端收到后,将所述用户确认输入的信息作为在本地输入的信息进行处理。进一步地,所述用户确认输入的信息包括文字或者功能键信息;将所述用户确认输入的信息作为在本地输入的信息进行处理,具体包括当所述用户确认输入的信息为文字时,对所述文字进行处理;当所述用户确认输入的信息为功能键信息,则执行该功能键对应的控制命令。进一步地,所述服务端与客户端完成协商,具体包括所述服务端向所述客户端发起建立输入法通道请求;所述客户端在建立输入法通道后,向所述服务端回复通道建立成功消息。进一步地,所述将得到的用户确认输入的信息发送给所述服务端,具体包括通过所述输入法通道将得到的所述用户确认输入的信息发送给服务端。进一步地,除将得到的用户确认输入的信息发送给所述服务端外,所述客户端还将所述用户输入的原始按键信息一并发送给所述服务端。进一步地,所述服务端在与所述客户端完成协商后,还将本端焦点窗口的属性信息发送给所述客户端;其中,所述属性信息包括焦点窗口在虚拟桌面上的位置坐标及大小信息;所述客户端收到后,根据所述属性信息调整本地当前激活的输入法的窗口的位置及大小。相应地,本发明还提供了一种终端,包括虚拟桌面客户端模块,还包括客户端输入法模块;所述虚拟桌面客户端模块用于将接收到的用户通过虚拟桌面选择使用本地输入法的请求发送给服务端;还用于在与所述服务端完成协商,并在接收所述服务端发来的激活本终端上的输入法的请求后,激活所述客户端输入法模块中设置的输入法;还用于将用户输入的信息发送给所述客户端输入法模块,并将经过所述客户端输入法模块处理后得到的用户确认输入的信息发送给所述服务端;所述客户端输入法模块用于使用当前激活的输入法对所述虚拟桌面客户端发来的用户输入的信息进行逻辑处理后,将将得到的用户确认输入的信息发送给所述虚拟桌面客户端模块。进一步地,
所述虚拟桌面客户端模块还用于与所述服务端进行协商的过程中,建立输入法通道;其中所述虚拟桌面客户端通过所述输入法通道将所述用户确认输入的信息发送给所述服务端。进一步地,所述虚拟桌面客户端模块还用于将所述用户输入的原始按键信息一并发送给所述服务端。进一步地,所述虚拟桌面客户端模块还用于在接收到所述服务端发来的焦点窗口的属性信息后,根据所述属性信息调整本地当前激活的输入法的窗口的位置及大小。相应地,本发明还提供了一种服务端,包括依次相连的虚拟桌面服务端模块、操作系统模块、输入法管理器及应用程序模块,还包括位于所述输入法管理器中的客户端输入法代理模块;所述虚拟桌面服务端模块用于将设有虚拟桌面客户端模块的终端发来的用户选择使用所述终端上的输入法的请求通过所述操作系统模块发送给所述输入法管理器;还用于在与所述终端完成协商后,将所述终端发来的用户确认输入的信息通过所述操作系统模块发送给所述客户端输入法代理模块;所述输入法管理器用于在收到所述请求后,启动所述客户端输入法代理模块;所述客户端输入法代理模块用于在启动后,对接收到所述用户确认输入的信息作为在本地输入的信息进行处理。进一步地,所述用户确认输入的信息包括文字或者功能键信息;所述客户端输入法代理模块将所述用户确认输入的信息作为在本地输入的信息进行处理,具体包括当所述用户确认输入的信息为文字时,所述客户端输入法代理模块将所述发送给所述应用程序模块进行处理;当所述用户确认输入的信息为功能键信息,所述客户端输入法代理模块将所述信息发送给所述操作系统模块,由所述操作系统模块执行该功能键对应的控制命令。进一步地,所述客户端输入法代理模块还用于将本服务端焦点窗口的属性信息通过所述操作系统模块及虚拟桌面服务端模块发送给所述客户端;其中,所述属性信息包括焦点窗口在虚拟桌面上的位置坐标及大小信息。本发明能够将用户客户端设备的输入法集成到虚拟桌面中,使用户在虚拟桌面中能够使用对用户终端进行优化过的输入法,提高了输入效率,增强了用户体验。


图1是现有技术系统架构图;图2是本发明实施例中虚拟桌面中使用客户端输入法的方法流程图;图3是本发明实施例中系统架构图;图4是本发明实施例中触发客户端输入法的过程流程图5是本发明实施例中在客户端进行文字输入过程流程图;图6是本发明实施例中客户端和服务端进行输入窗口协调的过程示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。在本实施例中,一种在虚拟桌面中使用客户端输入法的方法,如图2所示,包括步骤10 客户端将接收到的用户通过虚拟桌面选择使用本地输入法的请求发送给服务端;步骤20 服务端与客户端在完成协商后,请求客户端激活本地输入法;步骤30 客户端激活本地输入法,使用本地当前激活的输入法对用户输入的信息进行逻辑处理后,将得到的用户确认输入的信息发送给服务端;其中,该信息包括用户确认输入的文字(包括汉字、字母、数字等)或功能键信息;步骤40 服务端收到后,将用户确认输入的信息作为在本地输入的信息进行处理。如果用户确认输入的信息为文字信息,则可进行处理(如显示等);如用户确认输入的是功能键信息,则执行该功能键对应的控制命令。在具体实现时,服务端与客户端完成协商,具体包括以下步骤服务端向客户端发起建立输入法通道请求;客户端在建立输入法通道后,向服务端回复通道建立成功消息。其中,该输入法通道可以是一个逻辑通道,建立该通道的过程可以是客户端打开某特定端口或者建立一个 socket (套接字),也可以在原有socket上建立一个逻辑通道。此后,客户端通过该通道向服务端发送用户确认输入的信息。在用户输入过程中,由于某些按键事件可能会被服务端的操作系统解释成控制信息,而不是文字信息,因此为了防止服务端识别错误,客户端在发送用户确认输入的信息的同时,还需要将原始按键信息一同发送给服务端。图3是本实施例的系统架构。301是客户端输入法代理模块,它对于操作系统来说就是一个输入法模块,是按照服务端操作系统输入法规范开发的输入法软件模块,但它本身没有输入法逻辑和字库,而是负责将客户端输入法逻辑处理的结果映射到本操作系统中。302是新建的输入法通道,它是在虚拟桌面协议上扩展的一个逻辑通道,用于传送用户通过客户端输入法确认输入的信息。303是客户端上预配置的输入法。用户在客户端上的输入经客户端输入法进行逻辑处理后,将处理后得到的信息经由虚拟桌面客户端模块、输入法通道、虚拟桌面服务端模块到达客户端输入法代理模块,由客户端输入法代理模块将这些信息转换为符合本地输入法规范的信息发送给应用程序。其中,上述终端中包括虚拟桌面客户端模块,还包括客户端输入法模块;所述虚拟桌面客户端模块用于将接收到的用户通过虚拟桌面选择使用本地输入法的请求发送给服务端;还用于在与所述服务端完成协商,并在接收所述服务端发来的激活本终端上的输入法的请求后,激活所述客户端输入法模块中设置的输入法;还用于将用户输入的信息发送给所述客户端输入法模块,并将经过所述客户端输入法模块处理后得到的用户确认输入的信息发送给所述服务端;所述客户端输入法模块用于使用当前激活的输入法对所述虚拟桌面客户端发来的用户输入的信息进行逻辑处理后,将将得到的用户确认输入的信息发送给所述虚拟桌面客户端模块。较佳地,所述虚拟桌面客户端模块还用于与所述服务端进行协商的过程中,建立输入法通道;其中所述虚拟桌面客户端通过所述输入法通道将所述用户确认输入的信息发送给所述服务端。较佳地,所述虚拟桌面客户端模块还用于将所述用户输入的原始按键信息一并发送给所述服务端。较佳地,所述虚拟桌面客户端模块还用于在接收到所述服务端发来的焦点窗口的属性信息后,根据所述属性信息调整本地当前激活的输入法的窗口的位置及大小。一种服务端,包括依次相连的虚拟桌面服务端模块、操作系统模块、输入法管理器及应用程序模块,还包括位于所述输入法管理器中的客户端输入法代理模块;所述虚拟桌面服务端模块用于将设有虚拟桌面客户端模块的终端发来的用户选择使用所述终端上的输入法的请求通过所述操作系统模块发送给所述输入法管理器;还用于在与所述终端完成协商后,将所述终端发来的用户确认输入的信息通过所述操作系统模块发送给所述客户端输入法代理模块;所述输入法管理器用于在收到所述请求后,启动所述客户端输入法代理模块;所述客户端输入法代理模块用于在启动后,对接收到所述用户确认输入的信息作为在本地输入的信息进行处理。较佳地,所述用户确认输入的信息包括文字或者功能键信息;所述客户端输入法代理模块将所述用户确认输入的信息作为在本地输入的信息进行处理,具体包括当所述用户确认输入的信息为文字时,所述客户端输入法代理模块将所述发送给所述应用程序模块进行处理;当所述用户确认输入的信息为功能键信息,所述客户端输入法代理模块将所述信息发送给所述操作系统模块,由所述操作系统模块执行该功能键对应的控制命令。较佳地,所述客户端输入法代理模块还用于将本服务端焦点窗口的属性信息通过所述操作系统模块及虚拟桌面服务端模块发送给所述客户端;其中,所述属性信息包括焦点窗口在虚拟桌面上的位置坐标及大小信息。图4是触发客户端输入法的过程。虚拟桌面初始状态是采用服务端的输入法,当用户希望使用客户端的输入法时,需要激活客户端的输入法。过程如下步骤401,由于客户端输入法代理模块是按照标准输入法开发的,因此它在系统中与其它输入法没有区别,有一个输入法名称,用户在虚拟桌面显示的输入法工具上按此名称选择客户端输入法,客户端输入法代理模块启动;步骤402,客户端输入法代理模块启动后,通过操作系统模块向虚拟桌面服务端模块请求激活客户端输入法;步骤403,虚拟桌面服务端模块向虚拟桌面客户端模块请求建立输入法通道;步骤404,虚拟桌面客户端模块返回通道建立成功消息,通道建立;步骤405,虚拟桌面服务端模块向虚拟桌面客户端模块请求启动客户端的输入法;步骤406,虚拟桌面客户端模块激活客户端的输入法;步骤407-409,客户端向服务端返回成功消息。此时,客户端输入法开始接收用户输入,并将经过当前激活的输入法的逻辑处理的输入信息发送给虚拟桌面客户端模块。由于输入法与操作系统有很强的关联关系,因此客户端输入法代理模块的实现方式,以及虚拟桌面客户端模块与客户端输入法的交互方式都是与实际操作系统相关的,根据不同的操作系统需要调用不同的开发接口来实现。图5是本实施例中用户使用客户端输入法输入文字的过程,由于不同客户端和操作系统输入法的实现方式不一样,本实施例描述其中一种方式,过程如下步骤501,客户端检测到用户按键后,发送键盘事件到客户端输入法模块;步骤502,客户端输入法模块根据输入法逻辑变换成输入文字或输入过程中的中间信息,如候选文字,并将这些信息包括用户按键的原始信息发送给虚拟桌面客户端模块;步骤503,虚拟桌面客户端模块通过新建的输入法通道,将输入信息发送给虚拟桌面服务端模块;步骤504,虚拟桌面服务端模块通过操作系统模块将输入信息转发给客户端输入法代理模块;步骤505,客户端输入法代理模块查看输入消息,如判断出用户按键是控制信息, 则转发给操作系统模块进行处理,否则提取输入的文字,通过文字输入事件发送给应用程序模块,由应用程序模块进行显示等处理。图6是客户端输入法窗口与虚拟桌面输入焦点互相协调的过程。虚拟桌面输入焦点指的是在服务端侧的虚拟桌面中能够获取键盘输入的那个窗口。这个窗口的大小和位置是由服务端的操作系统决定的,而客户端输入法的窗口是由客户端绘制的,因此两者如果不协调,可能会出现输入法窗口覆盖焦点窗口的可能,也不能保证将输入法窗口放在虚拟桌面的最佳位置,方便用户输入。因此,为了提高用户体验,需要客户端调整当前激活的输入法的窗口大小和位置,以使输入法窗口与虚拟桌面更好的融合。客户端的输入法窗口与虚拟桌面互相协作的过程如下步骤601,客户端输入法代理模块检测到键盘焦点事件,获取服务端上键盘焦点窗口的属性,包括窗口的位置坐标及大小信息;步骤602,客户端输入法代理模块将获取的焦点窗口的属性发送给虚拟桌面服务端模块;步骤603,虚拟桌面服务端模块通过输入法通道转发焦点窗口的属性给虚拟桌面客户端模块;
步骤604,虚拟桌面客户端模块根据该焦点窗口的属性,计算输入法窗口在虚拟桌面的位置;其中,该位置要保证不能遮盖当前显示字符的区域,但要尽量靠近该区域;步骤605,虚拟桌面客户端模块通过本地接口调整当前激活的客户端输入法的窗口属性,达到上述计算出的位置和大小。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。以上所述仅为本发明的优选实施例而已,并非用于限定本发明的保护范围。根据本发明的发明内容,还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种在虚拟桌面中使用客户端输入法的方法,包括客户端将接收到的用户通过虚拟桌面选择使用本地输入法的请求发送给服务端; 所述服务端与所述客户端在完成协商后,请求所述客户端激活所述客户端上的输入法;所述客户端激活本地输入法,使用本地当前激活的输入法对用户输入的信息进行逻辑处理后,将得到的用户确认输入的信息发送给所述服务端;所述服务端收到后,将所述用户确认输入的信息作为在本地输入的信息进行处理。
2.如权利要求1所述的方法,其特征在于所述用户确认输入的信息包括文字或者功能键信息; 将所述用户确认输入的信息作为在本地输入的信息进行处理,具体包括 当所述用户确认输入的信息为文字时,对所述文字进行处理;当所述用户确认输入的信息为功能键信息,则执行该功能键对应的控制命令。
3.如权利要求1所述的方法,其特征在于 所述服务端与客户端完成协商,具体包括所述服务端向所述客户端发起建立输入法通道请求; 所述客户端在建立输入法通道后,向所述服务端回复通道建立成功消息。
4.如权利要求3所述的方法,其特征在于所述将得到的用户确认输入的信息发送给所述服务端,具体包括 通过所述输入法通道将得到的所述用户确认输入的信息发送给服务端。
5.如权利要求1 4中任意一项所述的方法,其特征在于除将得到的用户确认输入的信息发送给所述服务端外,所述客户端还将所述用户输入的原始按键信息一并发送给所述服务端。
6.如权利要求1所述的方法,其特征在于所述服务端在与所述客户端完成协商后,还将本端焦点窗口的属性信息发送给所述客户端;其中,所述属性信息包括焦点窗口在虚拟桌面上的位置坐标及大小信息;所述客户端收到后,根据所述属性信息调整本地当前激活的输入法的窗口的位置及大
7.—种终端,包括虚拟桌面客户端模块,其特征在于,还包括客户端输入法模块; 所述虚拟桌面客户端模块用于将接收到的用户通过虚拟桌面选择使用本地输入法的请求发送给服务端;还用于在与所述服务端完成协商,并在接收所述服务端发来的激活本终端上的输入法的请求后,激活所述客户端输入法模块中设置的输入法;还用于将用户输入的信息发送给所述客户端输入法模块,并将经过所述客户端输入法模块处理后得到的用户确认输入的信息发送给所述服务端;所述客户端输入法模块用于使用当前激活的输入法对所述虚拟桌面客户端发来的用户输入的信息进行逻辑处理后,将将得到的用户确认输入的信息发送给所述虚拟桌面客户端模块。
8.如权利要求7所述的终端,其特征在于所述虚拟桌面客户端模块还用于与所述服务端进行协商的过程中,建立输入法通道; 其中所述虚拟桌面客户端通过所述输入法通道将所述用户确认输入的信息发送给所述服务端。
9.如权利要求7或8所述的终端,其特征在于所述虚拟桌面客户端模块还用于将所述用户输入的原始按键信息一并发送给所述服务端。
10.如权利要求7所述的终端,其特征在于所述虚拟桌面客户端模块还用于在接收到所述服务端发来的焦点窗口的属性信息后, 根据所述属性信息调整本地当前激活的输入法的窗口的位置及大小。
11.一种服务端,包括依次相连的虚拟桌面服务端模块、操作系统模块、输入法管理器及应用程序模块,其特征在于,还包括位于所述输入法管理器中的客户端输入法代理模块;所述虚拟桌面服务端模块用于将设有虚拟桌面客户端模块的终端发来的用户选择使用所述终端上的输入法的请求通过所述操作系统模块发送给所述输入法管理器;还用于在与所述终端完成协商后,将所述终端发来的用户确认输入的信息通过所述操作系统模块发送给所述客户端输入法代理模块;所述输入法管理器用于在收到所述请求后,启动所述客户端输入法代理模块;所述客户端输入法代理模块用于在启动后,对接收到所述用户确认输入的信息作为在本地输入的信息进行处理。
12.如权利要求11所述的服务端,其特征在于所述用户确认输入的信息包括文字或者功能键信息;所述客户端输入法代理模块将所述用户确认输入的信息作为在本地输入的信息进行处理,具体包括当所述用户确认输入的信息为文字时,所述客户端输入法代理模块将所述发送给所述应用程序模块进行处理;当所述用户确认输入的信息为功能键信息,所述客户端输入法代理模块将所述信息发送给所述操作系统模块,由所述操作系统模块执行该功能键对应的控制命令。
13.如权利要求11所述的服务端,其特征在于所述客户端输入法代理模块还用于将本服务端焦点窗口的属性信息通过所述操作系统模块及虚拟桌面服务端模块发送给所述客户端;其中,所述属性信息包括焦点窗口在虚拟桌面上的位置坐标及大小信息。
全文摘要
本发明公开了一种在虚拟桌面中使用客户端输入法的方法、终端及服务端,所述方法包括客户端将接收到的用户通过虚拟桌面选择使用本地输入法的请求发送给服务端;所述服务端与所述客户端在完成协商后,请求所述客户端激活所述客户端上的输入法;所述客户端激活本地输入法,使用本地当前激活的输入法对用户输入的信息进行逻辑处理后,将得到的用户确认输入的信息发送给所述服务端;所述服务端收到后,将所述用户确认输入的信息作为在本地输入的信息进行处理。本发明能够将用户客户端设备的输入法集成到虚拟桌面中,使用户在虚拟桌面中能够使用对用户终端进行优化过的输入法,提高了输入效率,增强了用户体验。
文档编号H04L29/06GK102427448SQ20111034359
公开日2012年4月25日 申请日期2011年11月3日 优先权日2011年11月3日
发明者马苏安 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1