一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

远程应用和本地系统间的拖拽交互方法及系统与流程

2022-08-17 10:47:25 来源:中国专利 TAG:


1.本发明涉及计算机应用技术领域,尤其涉及一种远程应用和本地系统间的拖拽交互方法及系统。


背景技术:

2.远程应用(又称为应用推送、应用虚拟化)通过网络协议将运行在服务端上的应用程序窗口大小、位置、画面等信息传递到客户端,在客户端创建对应的窗口以实时显示远端窗口画面,并将客户端的键盘鼠标交互消息发送到服务端,在服务端模拟键盘鼠标消息发送给应用程序窗口。远程应用实现了远程服务端中运行的应用程序在客户端上的实时显示和交互,常用于在不同的操作系统上运行应用程序,如在linux桌面上运行远端服务器windows系统中的应用程序。
3.文件(或其他对象)的拖拽是应用交互中常用的操作,用户可以通过拖拽文件(或其他对象)的方式,将文件复制粘贴(或移动)到指定的位置。但在远程虚拟应用中,由于应用运行在远端,而远程应用在本地操作系统中是以窗口形式显示的,当用户从远程应用中拖动某个对象离开远程应用窗口范围之后,本地系统并不能获取到拖拽的对象,同时客户端将不再发送鼠标消息给服务端,在服务端拖拽的行为也无法正常终止,因此,拖拽交互难以实现。


技术实现要素:

4.本发明所要解决的技术问题在于提供一种远程应用和本地系统间的拖拽交互方法及系统,通过拖拽行为,可以将远程应用中的对象复制到本地系统中。
5.为解决上述技术问题,本发明采用如下所述的技术方案:
6.一种远程应用和本地系统间的拖拽交互方法,其包括有如下步骤:对在服务端上运行的远程应用的应用窗口进行扩大处理,在应用窗口外侧形成有一扩大区域;根据远程虚拟应用协议在客户端显示所述应用窗口和扩大区域;检测在客户端执行的拖拽事件,当检测出客户端的应用窗口中被选定的对象被拖动至扩大区域时,发送拖拽消息至服务端;根据拖拽消息在服务端执行拖拽事件,将服务端应用窗口中被选定的对象被拖动至扩大区域;根据拖拽对象类型,获取在服务端执行的拖拽事件的对象内容,并通过远程虚拟应用协议将获取的对象内容发送至客户端;在客户端模拟产生一个新的拖拽事件,并将客户端接收到的对象内容设置为新的拖拽事件的对象内容。
7.一种远程应用和本地系统间的拖拽交互系统,其包括有窗口处理模块、窗口显示模块、第一检测模块、事件执行模块、第一内容获取模块和第一事件产生模块;其中,窗口处理模块设置于服务端上,用于对在服务端上运行的远程应用的应用窗口进行扩大处理,以在应用窗口外侧形成有一扩大区域;窗口显示模块设置于客户端上,用于根据远程虚拟应用协议在客户端显示所述应用窗口和扩大区域;第一检测模块设置于客户端上,用于检测在客户端执行的拖拽事件,当检测出客户端的应用窗口中被选定的对象被拖动至扩大区域
时,发送拖拽消息至服务端;事件执行模块设置于服务端上,用于根据拖拽消息在服务端执行拖拽事件,将服务端应用窗口中被选定的对象被拖动至扩大区域;第一内容获取模块设置于服务端上,用于根据拖拽对象类型,获取在服务端执行的拖拽事件的对象内容,并通过远程虚拟应用协议将获取的对象内容发送至客户端;第一事件产生模块设置于客户端上,用于在客户端模拟产生一个新的拖拽事件,并将客户端接收到的对象内容设置为新的拖拽事件的对象内容。
8.本发明的有益技术效果在于:上述的远程应用和本地系统间的拖拽交互方法及系统,通过在服务端对应用窗口进行扩大处理而形成一扩大区域,并且客户端在应用窗口中被选定的对象被拖动至扩大区域时发送消息给服务端,使服务端的代理窗口可以正常终止拖拽行为,同时获取拖拽事件的对象内容并将获取到的对象内容传输给客户端,从而实现通过拖拽行为将远程应用中的对象复制到本地系统的技术效果。
附图说明
9.图1为本发明的远程应用和本地系统间的拖拽交互方法的流程示意图;
10.图2为本发明的应用窗口进行扩大处理的过程示意图;
11.图3为本发明的远程应用和本地系统间的拖拽交互过程示意图;
12.图4为本发明的远程应用和本地系统间的拖拽交互系统的结构示意框图。
具体实施方式
13.为使本领域的普通技术人员更加清楚地理解本发明的目的、技术方案和优点,以下结合附图和实施例对本发明做进一步的阐述。
14.如图1所示,在本发明一些实施例中,远程应用和本地系统间的拖拽交互方法包括有如下步骤:
15.s10、对在服务端上运行的远程应用的应用窗口进行扩大处理,在应用窗口外侧形成有一扩大区域。
16.本步骤在服务端上执行。在此之前,客户端会接收到用户点击应用图标的操作,接收到点击操作后,客户端通过远程虚拟应用协议向服务端发送应用打开指令,服务端在接受到客户端发送的应用打开指令后,会根据应用打开指令将对应的应用程序打开。应用程序打开后,服务端会对远程应用的应用窗口进行扩大处理而形成一扩大区域。
17.在本实施例中,将远程应用原有的应用窗口的四周边缘向外扩大n(n≥1)个像素,从而在应用窗口外侧形成有一围绕原有的应用窗口四周的扩大区域,如图2中阴影部分所示。当然,在其他实施例中,也可以将扩大区域设置于原有的应用窗口任意一侧、任意两侧、任意三侧或者其他位置。
18.s20、根据远程虚拟应用协议在客户端显示所述应用窗口和扩大区域。
19.本步骤在客户端上执行。客户端与服务端通过远程虚拟应用协议实现连接,服务端将应用窗口数据(包括大小、位置、画面等信息)和扩大区域数据(包括大小、位置等信息)实时传递给客户端,客户端对应用窗口数据和扩大区域数据进行解析,以窗口形式显示所述应用窗口和扩大区域。
20.在本实施例中,服务端以全屏的代理窗口放置所述应用窗口和扩大区域,因此,在
客户端上仅显示所述应用窗口和扩大区域,而不显示服务端的整个系统桌面。当然,在其他实施例中,服务端也可以以非全屏的代理窗口放置所述应用窗口和扩大区域,同时在客户端上显示服务端的整个系统桌面。
21.s30、检测在客户端执行的拖拽事件,当检测出客户端的应用窗口中被选定的对象被拖动至扩大区域时,发送拖拽消息至服务端。
22.本步骤在客户端上执行,如图3的过程

所示。客户端可以根据用户输入的操作指令,将客户端应用窗口中的某个对象进行选定,并将被选定的对象进行拖动。同时,客户端会对在其上执行的拖拽事件进行实时检测,当检测出客户端的应用窗口中被选定的对象被拖动至扩大区域时,发送拖拽消息(鼠标消息)至服务端。上述过程可以根据本地系统(即客户端系统)接收到的鼠标操作来识别,例如,获取客户端系统的鼠标左键长按操作和长按过程中光标的起始坐标和终止坐标,根据鼠标左键长按操作和长按过程中光标的起始坐标和终止坐标即可判断客户端的应用窗口中被选定的对象是否被拖动至扩大区域。
23.s40、根据拖拽消息在服务端执行拖拽事件,将服务端应用窗口中被选定的对象被拖动至扩大区域。
24.本步骤在服务端上执行,如图3的过程

所示。服务端接收到拖拽消息,会根据拖拽消息在服务端的代理窗口执行一个拖拽事件,将服务端应用窗口中被选定的对象被拖动至扩大区域,并在服务端的代理窗口终止拖拽行为。
25.s50、根据拖拽对象类型,获取在服务端执行的拖拽事件的对象内容,并通过远程虚拟应用协议将获取的对象内容发送至客户端。
26.本步骤在服务端上执行,如图3的过程

所示。拖拽行为终止后,服务端获取拖拽事件的对象内容,并通过远程虚拟应用协议将获取的对象内容发送至客户端。在本步骤中,可以根据拖拽对象类型分别获取不同的对象内容,并将获取的对象内容发送至客户端。若拖拽对象为文本内容或者图像内容时,由于文本内容或者图像内容较小,容易传输,服务端直接获取文本内容本身或者图像内容本身,并通过远程虚拟应用协议将文本内容本身或者图像内容本身发送给客户端;若拖拽对象为文件(例如ppt文件)时,由于文件内容往往较大,文件传输耗时较长,服务端不再直接获取文件本身,而是获取文件服务端路径信息,并通过远程虚拟应用协议将该文件服务端路径信息发送给客户端,如此,可以提升效率。
27.s60、在客户端模拟产生一个新的拖拽事件,并将客户端接收到的对象内容设置为新的拖拽事件的对象内容。
28.本步骤在客户端上执行,如图3的过程

所示。客户端接收到服务端发送的对象内容后,会模拟产生一个新的拖拽事件,并为新的拖拽事件设置相应的对象内容,之后,本地系统就可以像本地正常的拖拽行为一样处理后续的本地拖拽行为,将新的拖拽事件的对象内容拖动到指定位置。
29.在本步骤中,若接收到的对象内容为文本内容本身或者图像内容本身,本地系统会直接模拟产生一个新的拖拽事件,并将文本内容本身或者图像内容本身设置给新的拖拽事件,之后,继续拖拽,将文本内容本身或者图像内容移动至目标位置。
30.在本步骤中,若接收到的对象内容为文件服务端路径信息,这时,在本地系统临时目录中新建一个目录存放该文件服务端路径信息,并通过用户自定义的文件系统管理这个目录,意即本地系统对此目录的查询、读取、修改,都通过客户端代码的回调函数实现。再模
拟产生一个新的拖拽事件,由于此时文件尚未传输到本地系统,不能将文件完整内容设置给新的拖拽事件,而仅仅能将目录相应的文件路径(此文件路径为目录在本地系统的文件路径)设置给新的拖拽事件。之后,继续拖拽,将目录移动至目标位置。本地系统检测到拖拽行为结束时,会试图读取目录中的相应文件,此时本地系统会回调用户文件系统的相应函数实现文件读取,在此函数中通过远程虚拟应用协议实现文件传输,从而将远程应用中的文件复制到本地系统中。
31.需要说明的是,用于管理新建目录的用户自定义的文件系统的类型取决于本地系统,如在linux下可采用fuse(filesystem in userspace,用户空间文件系统),在windows下可采用filter driver(过滤驱动程序)。
32.本实施例中的远程应用和本地系统间的拖拽交互方法,通过在服务端对应用窗口进行扩大处理而形成一扩大区域,并且客户端在应用窗口中被选定的对象被拖动至扩大区域时发送消息给服务端,使服务端的代理窗口可以正常终止拖拽行为,同时获取拖拽事件的对象内容并将获取到的对象内容传输给客户端,从而实现通过拖拽行为将远程应用中的对象复制到本地系统的技术效果。
33.如图1所示,在本发明一些优选实施例中,远程应用和本地系统间的拖拽交互方法还包括有如下步骤:
34.s70、检测在客户端执行的拖拽事件,当检测出客户端被选定的对象被拖动至应用窗口中时,发送拖拽消息至服务端。
35.本步骤在客户端上执行。客户端可以根据用户输入的操作指令,将客户端应用窗口外的某个对象进行选定,并将被选定的对象进行拖动。同时,客户端会对在其上执行的拖拽事件进行实时检测,当检测出客户端的应用窗口外被选定的对象被拖动至应用窗口中时,发送拖拽消息(鼠标消息)至服务端。上述过程可以根据本地系统(即客户端系统)接收到的鼠标操作来识别,例如,获取客户端系统的鼠标左键长按操作和长按过程中光标的起始坐标和终止坐标,根据鼠标左键长按操作和长按过程中光标的起始坐标和终止坐标即可判断客户端的应用窗口外被选定的对象是否被拖动至应用窗口中。
36.s80、根据拖拽对象类型,获取在客户端执行的拖拽事件的对象内容,并通过远程虚拟应用协议将获取的对象内容发送至服务端。
37.本步骤在客户端上执行。拖拽行为终止后,客户端可以获取拖拽事件的对象内容,并通过远程虚拟应用协议将获取的对象内容发送至服务端。
38.本步骤与步骤s50类似,可以根据拖拽对象类型分别获取不同的对象内容,并将获取的对象内容发送至服务端。若拖拽对象为文本内容或者图像内容时,由于文本内容或者图像内容较小,容易传输,客户端直接获取文本内容本身或者图像内容本身,并通过远程虚拟应用协议将文本内容本身或者图像内容本身发送给服务端;若拖拽对象为文件(例如ppt文件)时,由于文件内容往往较大,文件传输耗时较长,客户端不再直接获取文件本身,而是获取文件客户端路径信息,并通过远程虚拟应用协议将该文件客户端路径信息发送给服务端,如此,可以提升效率。
39.s90、根据拖拽消息在服务端模拟产生一个拖拽事件,并将服务端接收到的对象内容设置为拖拽事件的对象内容。
40.本步骤在服务端上执行。服务端接收到客户端发送的拖拽消息和对象内容后,会
模拟产生一个拖拽事件,并为拖拽事件设置相应的对象内容,之后,继续拖动,将拖拽事件的对象内容拖动到远程应用中的指定位置。
41.与步骤s60类似,在本步骤中,若接收到的对象内容为文本内容本身或者图像内容本身,服务端会直接模拟产生一个拖拽事件,并将文本内容本身或者图像内容本身设置给该拖拽事件,之后,继续拖拽,将文本内容本身或者图像内容移动至远程应用中的指定位置。
42.在本步骤中,若接收到的对象内容为文件客户端路径信息,这时,在服务端系统临时目录中新建一个目录存放该文件客户端路径信息,再模拟产生一个拖拽事件,由于此时文件尚未传输到服务端,不能将文件完整内容设置给拖拽事件,而仅仅能将目录相应的文件路径(此文件路径为目录在服务端系统的文件路径)设置给拖拽事件。之后,继续拖拽,将目录移动至目标位置。服务端系统检测到拖拽行为结束时,会试图读取目录中的相应文件,此时服务端系统会回调用户文件系统的相应函数实现文件读取,在此函数中,通过远程虚拟应用协议实现文件传输,从而将本地系统中的文件复制到远程应用中。
43.如图4所示,在本发明一些实施例中,远程应用和本地系统间的拖拽交互系统包括有窗口处理模块11、窗口显示模块12、第一检测模块13、事件执行模块14、第一内容获取模块15和第一事件产生模块16。
44.窗口处理模块11设置于服务端上,用于对在服务端上运行的远程应用的应用窗口进行扩大处理,以在应用窗口外侧形成有一扩大区域。
45.窗口显示模块12设置于客户端上,用于根据远程虚拟应用协议在客户端显示所述应用窗口和扩大区域。
46.第一检测模块13设置于客户端上,用于检测在客户端执行的拖拽事件,当检测出客户端的应用窗口中被选定的对象被拖动至扩大区域时,发送拖拽消息至服务端。
47.事件执行模块14设置于服务端上,用于根据拖拽消息在服务端执行拖拽事件,将服务端应用窗口中被选定的对象被拖动至扩大区域。
48.第一内容获取模块15设置于服务端上,用于根据拖拽对象类型,获取在服务端执行的拖拽事件的对象内容,并通过远程虚拟应用协议将获取的对象内容发送至客户端。
49.第一事件产生模块16设置于客户端上,用于在客户端模拟产生一个新的拖拽事件,并将客户端接收到的对象内容设置为新的拖拽事件的对象内容。
50.本实施例中的远程应用和本地系统间的拖拽交互系统,通过在服务端对应用窗口进行扩大处理而形成一扩大区域,并且客户端在应用窗口中被选定的对象被拖动至扩大区域时发送消息给服务端,使服务端的代理窗口可以正常终止拖拽行为,同时获取拖拽事件的对象内容并将获取到的对象内容传输给客户端,从而实现通过拖拽行为将远程应用中的对象复制到本地系统的技术效果。
51.如图1所示,在本发明一些优选实施例中,远程应用和本地系统间的拖拽交互系统还包括有第二检测模块17、第二内容获取模块18和第二事件产生模块19。
52.第二检测模块17设置于客户端上,用于检测在客户端执行的拖拽事件,当检测出客户端被选定的对象被拖动至应用窗口中时,发送拖拽消息至服务端。
53.第二内容获取模块18设置于客户端上,用于根据拖拽对象类型,获取在客户端执行的拖拽事件的对象内容,并通过远程虚拟应用协议将获取的对象内容发送至服务端。
54.第二事件产生模块19设置于服务端上,用于根据拖拽消息在服务端模拟产生一个拖拽事件,并将服务端接收到的对象内容设置为拖拽事件的对象内容。
55.本实施例中的远程应用和本地系统间的拖拽交互系统,通过拖拽行为,可以实现将本地系统中的对象复制到远程应用中的技术效果。
56.以上所述仅为本发明的优选实施例,而非对本发明做任何形式上的限制。本领域的技术人员可在上述实施例的基础上施以各种等同的更改和改进,凡在权利要求范围内所做的等同变化或修饰,均应落入本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献