修正远程应用用户操作的方法、客户端和服务端技术领域
本发明涉及远程应用,尤其涉及一种修正远程应用用户操作的方法、客
户端和服务端。
背景技术
目前通过手机、平板电脑等手持设备使用远程应用已经相当普遍,但是
之前的远程应用一般为PC应用,其显示区域大小、分辨率、操作方式等与手
持设备有相对较大的不同,特别是鼠标和触摸屏的操作精度上的差别,造成
指针操作不能精确定位,对手持设备用户的操作造成不便。
例如用户通过触屏智能手机访问远程应用,受限于屏幕大小和分辨率,
远程应用的内容显示在手机上比较小,用户想用手指点界面上的按钮往往不
容易按中,这时必须把画面放大显示,让按钮变大到可以操作,但放大画面
会影响显示范围,放大后用户只能看到按钮周围的内容,为了继续操作或阅
读,还得把画面缩回去,如此每个操作都得先放大,操作后再缩小回来,相
当不便。
发明内容
本发明要解决的技术问题在于针对现有技术远程应用中用户操作有时难
以识别的缺陷,提供一种可以对用户操作进行修正以快速识别用户操作的修
正远程应用用户操作的方法、客户端和服务端。
本发明解决其技术问题所采用的技术方案是:
提供一种修正远程应用用户操作的方法,包括以下步骤:
与服务端建立远程应用会话,创建窗口;
从服务端获取窗口的元素特征数据,并保存为元素特征列表;
获取用户对该窗口的输入操作;
根据用户的输入操作确定用户操作的原始坐标,查找到与所述原始坐标
最接近的可操作窗口元素,生成表示用户操作该最接近的可操作窗口元素的
事件信息;
发送所述事件信息给服务端;
接收服务端根据所述事件信息返回的更新数据,更新窗口和元素特征列
表。
本发明所述的方法中,若所述最接近的窗口元素不可响应用户的输入操
作,则查找到与所述原始坐标第二接近的可响应用户输入操作的窗口元素,
生成表示用户操作该第二接近的窗口元素的事件信息,并将该事件信息发送
给服务端。
本发明所述的方法中,若所述原始坐标与最接近的窗口元素坐标的距离
超过预先设置的阀值,则直接生成表示用户操作原始坐标的事件信息并发送
给服务端。
本发明所述的方法中,若根据所述原始坐标无法识别最接近的元素位置,
则调用放大镜或者缩放屏幕工具,提示用户再次进行输入操作。
本发明解决其技术问题所采用的另一技术方案是:
提供一种修正远程应用用户操作的方法,包括以下步骤:
根据客户端的连接请求,启动远程应用会话,创建窗口;
提取所创建窗口的元素特征数据并记录;
获取客户端发送的用户对窗口输入操作的事件信息,所述事件信息包括
用户操作的原始坐标和操作行为;
查找到与所述原始坐标最接近的可操作元素位置,根据所述事件信息对
所述最接近的可操作元素进行操作,更新窗口;
将更新窗口数据发送给客户端。
本发明解决其技术问题所采用的第三技术方案是:
提供一种修正远程应用用户操作的客户端,包括:
远程应用会话模块,用于与服务端建立远程应用会话,创建窗口;
窗口数据获取模块,用于从服务端获取窗口的元素特征数据,并保存为
元素特征列表;
用户操作获取模块,用于获取用户对该窗口的输入操作;
修正模块,用于根据用户的输入操作确定用户操作的原始坐标,查找到
与所述原始坐标最接近的可操作窗口元素,生成表示用户操作该最接近的可
操作窗口元素的事件信息,并通过所述远程应用会话模块将所述事件信息发
送给服务端;
更新模块,用于通过所述窗口数据获取模块获取服务端根据所述事件信
息返回的更新数据,并根据所述更新数据更新窗口和元素特征列表。
本发明所述的客户端中,所述修正模块还用于在所述最接近的窗口元素
不可响应用户的输入操作时,查找到与所述原始坐标第二接近的可响应用户
输入操作的窗口元素,生成表示用户操作该第二接近的窗口元素的事件信息,
并通过所述远程会话模块将该事件信息发送给服务端。
本发明所述的客户端中,所述修正模块还用于在所述原始坐标与最接近
的窗口元素坐标的距离超过预先设置的阀值时,直接生成表示用户操作所述
原始坐标的事件信息,并通过所述远程会话模块将该事件信息发送给服务端。
本发明所述的客户端中,该客户端还包括:
辅助工具模块,用于在根据所述原始坐标无法识别最接近的元素位置时,
调用放大镜或者缩放屏幕工具,提示用户再次进行输入操作。
本发明解决其技术问题所采用的第四技术方案是:
提供一种修正远程应用用户操作的服务端,包括:
远程应用会话模块,用于根据客户端的连接请求,启动远程应用会话,
创建窗口;
提取元素特征模块,用于提取所创建窗口的元素特征数据并记录;
事件信息获取模块,用于获取客户端发送的用户对窗口输入操作的事件
信息,所述事件信息包括用户操作的原始坐标和操作行为;
修正模块,用于查找到与所述原始坐标最接近的可操作元素位置,根据
所述事件信息对所述最接近的可操作元素进行操作,更新窗口,并通过所述
远程应用会话模块将窗口更新数据发送给客户端。
本发明产生的有益效果是:本发明在远程应用中,通过服务端获取窗口
元素的特征数据,根据该特征数据,在客户端或者服务端对用户操作进行修
正,即使用户操作界面较小,也可以根据修正结果正确识别用户的操作,增
强了小屏幕终端在远程应用中的易用性,提高了用户操作的响应速度。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明实施例客户端修正远程应用用户操作的方法流程图;
图2是本发明实施例服务端收发数据流程图;
图3是本发明实施例服务端修正远程应用用户操作的方法流程图;
图4是本发明实施例操作元素位置示意图;
图5是本发明实施例用户输入操作示意图一;
图6是本发明实施例用户输入操作示意图二;
图7是本发明实施例用户输入操作示意图三;
图8是本发明实施例调用放大镜工具示意图;
图9是本发明实施例客户端结构示意图;
图10是本发明实施例服务端结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及
实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施
例仅用以解释本发明,并不用于限定本发明。
本发明实施例在远程应用中,通过在客户端或者服务端对用户的操作行
为进行修正,使得即使屏幕不大、分辨率不高的智能手机终端也能够很好地
识别用户的点击操作,准确判断用户输入操作的具体含义,服务端可以快速
返回用户所需要的窗口数据。
如图1所示,本发明实施例修正远程应用用户操作的方法,在客户端实
现,包括以下步骤:
S102客户端与服务端建立远程应用会话,创建窗口;
S104客户端判断远程会话是否结束,若远程会话被关闭,则结束此次会
话;
S106在远程会话未结束时,客户端从服务端获取窗口的元素特征数据,
并保存为元素特征列表。窗口的元素包括按钮、文本框、标签、控件、链接
和表单等,元素特征数据包括窗口元素的类型(如按钮、文本框等)、窗口元
素的位置和大小、窗口元素的状态(如是否禁用、是否选中、是否高亮)等。
如图4所示,图中方框部分即为窗口中的各个元素的位置。
S108服务端获取用户对该窗口的输入操作;
S110根据用户的输入操作确定原始坐标;
S112查找是否有与原始坐标最接近的可操作窗口元素,在本发明一个实
施例中该步骤又具体包括:将原始坐标与元素特征列表中的元素位置进行比
较,寻找离原始坐标最接近的窗口元素;判断该最接近元素是否可操作(即
用户是否可以对其进行操作,如是否能够被选中);
S114如果找到最接近的元素,且该元素可操作,则可以获取该元素的中
心坐标,生成表示用户操作该窗口元素坐标的事件信息;如图5所示,本发
明实施例中主要基于远程桌面协议RDP(Remote Desktop Protocol)进行远
程通信。以Windows XP资源管理器为例服务端监视资源管理器窗口的创建,
用户点击空心圆的位置,可以查找到最接近的可操作元素是“DISK1 VOL3
(E:)”,自动修正位置到实心圆,生成该点击事件。如图6所示,选取离用户
点击位置(空心圆)最近的元素“Administrator的文档”。
S116若所找到的最接近的元素不可操作(如禁用元素、Label元素),则
可以生成表示用户操作原始坐标的事件信息;
在本发明的另一实施例中,若最接近的窗口元素不可响应用户的输入操
作,则查找到与原始坐标第二接近的可响应用户输入操作的窗口元素,生成
表示用户操作该第二接近的窗口元素的事件信息;
若第二接近的窗口元素也不可操作,则可以继续找到第三、第四接近的
窗口元素,以此类推,直到与原始坐标的距离超过预先设定的阀值,在超过
阀值时,则直接生成表示用户操作原始坐标的事件信息。如图7所示,当用
户点击位置(原始坐标)离所有可操作元素都较远(大于预先设定的阀值),
则认为用户不是想点击窗口所列出的元素,直接生成表示用户操作原始坐标
的点击事件信息。
S118客户端发送事件信息给服务端;
S120客户端接收服务端根据事件信息返回的更新数据,更新窗口和元素
特征列表,并转入步骤S104。
在本发明的较佳实施例中,若根据原始坐标无法识别最接近的元素位置,
则调用放大镜或者缩放屏幕工具,提示用户再次进行输入操作。如图8所示,
为调用放大镜,提示用户重新输入。可以理解的,还可以统计用户输入数据
并对其进行学习,以减少用户干预的次数。
上述实施例通过服务端获得额外信息(窗口元素特征信息)作为修正的
依据,使用户即使在小面积界面的操作也能正确地按中界面元素,无需缩放
等额外动作,客户端无需复杂的运算也能精确地猜测用户操作的实际含义,
修正的准确性得到提高的同时也减少运算复杂度和实现难度,更适合移动终
端。
如果修正用户操作在客户端实现,则在服务端会进行如下步骤(如图2
所示):
S202服务端接收到客户端的连接请求,启动一个远程应用会话;
S204监视窗口的创建或者变动,服务端可通过HOOK钩子函数监视该会话
创建的窗口;
S206服务端监视窗口变动是否完毕;
S208若窗口变动未完成,服务端则继续监视窗口元素的创建;
S210窗口创建时(或窗口创建完成后),通过钩子函数获取到创建的窗口
元素特征数据,如元素位置、大小、状态等,并记录在服务端;并转入步骤
S206,每当新的元素或窗口被创建,重复步骤S208-S210,以记录所有窗口元
素的信息;
S212服务端窗口创建过程完成,远程会话建立后,服务端与客户端之间
建立虚拟通道,服务端把之前记录的信息发送到客户端,虚拟通道保持开启;
S214判断远程会话是否结束,若会话结束,则关闭虚拟通道并释放资源;
若未结束,进入步骤S204,直到会话结束。会话过程中,持续监视窗口和元
素的状态,当状态发生变化,记录新的状态并通过创建的虚拟通道立即发送
新的状态到客户端。
本发明实施例修正远程应用用户操作的方法还可以在服务端实现,若在
服务端实现,则只需要从客户端获得用户的原始输入操作数据,就可以在服
务端实现对用户操作的修正,准确识别和快速响应用户的操作。如图3所示,
在服务端实现修正远程应用用户操作的方法,主要包括以下步骤:
S302服务端接收客户端的连接请求;
S304服务端根据客户端的连接请求,启动远程应用会话,创建窗口;远
程会话建立后,服务端与客户端之间建立虚拟通道。
S306服务端提取所创建窗口的元素特征数据并记录;可通过挂钩子监视
该会话创建的窗口,窗口创建时(或窗口创建完成后),通过钩子函数获取到
创建的窗口或元素的特征数据并记录。在本发明的一个实施例中,提取元素
特征数据不限于监视窗口元素的方法,还可以采用包括安装浏览器插件或类
似模块获取网页内容可操作元素,如链接、表单等,以达到获取B/S(浏览器
/服务器)应用操作特征并修正的目的。可以理解的,也可以在客户端发生操
作的一刻,服务端才提取操作特征数据,以代替窗口监视。
S308服务端获取客户端发送的用户对窗口输入操作的事件信息,事件信
息包括用户操作的原始坐标和操作行为;
S310服务端查找是否有与原始坐标最接近的可操作元素位置,可将原始
坐标与所记录的窗口元素特征数据中的元素位置进行比较;
S312在找到与原始坐标最接近的可操作元素位置后,根据事件信息对最
接近的可操作元素进行操作,更新窗口;如何对用户操作进行修正,找到最
接近的可操作元素,在上文客户端的实现中已有详细描述,在此不赘述。
S314服务端将更新窗口数据发送给客户端;
S316判断远程会话是否结束,若结束则关闭会话,关闭虚拟通道并释放
资源;若未结束,则转入执行步骤S306。
在服务端实现对用户操作的修正,利用了服务端的现有资源,使得修正
处理速度更快,减轻了客户端的负担,可提高响应速度,增强用户的操作体
验。
如图9所示,本发明实施例修正远程应用用户操作的客户端900,与服务
端通信连接,具体包括:
远程应用会话模块902,用于与服务端建立远程应用会话,创建窗口;
窗口数据获取模块904,用于从服务端获取窗口的元素特征数据,并保存
为元素特征列表;
用户操作获取模块906,用于获取用户对该窗口的输入操作;
修正模块908,用于根据用户的输入操作确定用户操作的原始坐标,查找
到与原始坐标最接近的可操作窗口元素,生成表示用户操作该最接近的可操
作窗口元素的事件信息,并通过远程应用会话模块将事件信息发送给服务端;
更新模块910,用于通过窗口数据获取模块904获取服务端根据事件信息
返回的更新数据,并根据更新数据更新窗口和元素特征列表。
本发明实施例中,修正模块908还用于在最接近的窗口元素不可响应用
户的输入操作时,查找到与原始坐标第二接近的窗口元素,若该元素可响应
用户输入操作,则生成表示用户操作该第二接近的窗口元素的事件信息,并
通过远程会话模块902将该事件信息发送给服务端。若第二接近的窗口元素
也不可响应用户的操作,则可以继续找到第三、第四接近的窗口元素,以此
类推,直到与原始坐标的距离超过预先设定的阀值,在超过阀值时,则直接
生成表示用户操作原始坐标的事件信息。在原始坐标与最接近的窗口元素坐
标的距离超过预先设置的阀值时,直接生成用户操作原始坐标的事件信息,
并通过远程会话模块902将该事件信息发送给服务端。
在本发明的一个实施例中,在修正模块无法准确识别用户操作时,可以
通过请求用户干预,修正结果。如可包括辅助工具模块(图中未示出),用于
在根据原始坐标无法识别最接近的元素位置时,调用放大镜或者缩放屏幕工
具,提示用户再次进行输入操作。
如图10所示,本发明实施例修正远程应用用户操作的服务端1000,与客
户端通信连接,包括:
远程应用会话模块1002,用于根据客户端的连接请求,启动远程应用会
话,创建窗口;
提取元素特征模块1004,用于提取所创建窗口的元素特征数据并记录;
事件信息获取模块1006,用于获取客户端发送的用户对窗口输入操作的
事件信息,事件信息包括用户操作的原始坐标和操作行为;
修正模块1008,用于查找到与原始坐标最接近的可操作元素位置,根据
事件信息对最接近的可操作元素进行操作,更新窗口,并通过远程应用会话
模块1002将窗口更新数据发送给客户端。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改
进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。