CN106293583B - 桌面窗口共享方法和*** - Google Patents

桌面窗口共享方法和*** Download PDF

Info

Publication number
CN106293583B
CN106293583B CN201610635412.1A CN201610635412A CN106293583B CN 106293583 B CN106293583 B CN 106293583B CN 201610635412 A CN201610635412 A CN 201610635412A CN 106293583 B CN106293583 B CN 106293583B
Authority
CN
China
Prior art keywords
window
terminal
desktop
mirror image
main
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201610635412.1A
Other languages
English (en)
Other versions
CN106293583A (zh
Inventor
李�根
谭小刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vtron Technologies Ltd
Original Assignee
Vtron Technologies Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Vtron Technologies Ltd filed Critical Vtron Technologies Ltd
Priority to CN201610635412.1A priority Critical patent/CN106293583B/zh
Publication of CN106293583A publication Critical patent/CN106293583A/zh
Priority to PCT/CN2017/095808 priority patent/WO2018024230A1/zh
Application granted granted Critical
Publication of CN106293583B publication Critical patent/CN106293583B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • G06F3/1431Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display using a single graphics controller

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及一种桌面窗口共享方法和***,其方法包括:将第一终端主桌面上的第一镜像窗口向预先为第一终端配置的第一虚拟桌面移动,所述第一虚拟桌面对应第二终端的主桌面;在所述第二终端向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据;根据所述窗口数据将移动至所述第一虚拟桌面中的第一镜像窗口镜像到所述第二终端的主桌面,得到第二镜像窗口。采用本发明方案,可以在不用受限于终端显卡性能的同时实现使应用窗口移动跨过任意多个终端桌面进行显示。

Description

桌面窗口共享方法和***
技术领域
本发明涉及计算机数据共享技术领域,特别是涉及桌面窗口共享方法和***。
背景技术
随着信息技术的不断发展,网络已成为信息传播的重要手段。基于远程控制与操作互动作为一种新的交互方式,让用户不需要身临其境便可以实现相同的互动,异地的观看与操作。其中桌面共享是数据共享中的一种重要应用,特别在网络视频会议、IM即时通讯工具等各类网络通讯***中经常被用于文档展示、操作演示、协同办公等,是音视频、文本消息等交互方式重要且有效的补充。
现在,越来越多的用户为了避免在会议中频繁的拉动线缆,而使用桌面共享功能,通过无线的方式将控制终端,(例如,笔记本终端)桌面上的文档内容共享到显示终端上显示。为了实现应用窗口在多台终端屏幕间移动,传统方式中的一种桌面共享的方式是:首先在终端A上创建多个虚拟屏幕,例如,虚拟屏幕1、虚拟屏幕2,虚拟屏幕3;然后,将终端A上的窗口分别移动到各虚拟屏幕,例如,窗口1移动到虚拟屏幕1、窗口2移动到虚拟屏幕2、窗口3移动到虚拟屏幕3,最后,在不同显示屏幕上显示不同的虚拟屏幕中的窗口,例如,显示屏幕1显示窗口1的镜像窗口1、显示屏幕2显示窗口2的镜像窗口2、显示屏幕3显示窗口3的镜像窗口3。
上述的桌面共享的方式理论上只要共享桌面的终端(如上的终端A)显卡性能支持,可以尽可能多的扩展虚拟屏幕,从而达到横跨多个屏幕的目的。但实际上,受限于终端显卡性能,一般显卡性能只能虚拟1或2个屏幕,加上1个实际物理屏幕,总共能实现应用程序窗口在2~3个终端屏幕上移动。
发明内容
本发明的目的在于提供一种桌面窗口共享方法和***,可以在不用受限于终端显卡性能的同时实现使应用窗口移动跨过任意多个终端桌面进行显示。
本发明的目的通过如下方案实现:
一种桌面窗口共享方法,包括:
将第一终端主桌面上的第一镜像窗口向预先为第一终端配置的第一虚拟桌面移动,所述第一虚拟桌面对应第二终端的主桌面;
在所述第二终端向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据;
根据所述窗口数据将移动至所述第一虚拟桌面中的第一镜像窗口镜像到所述第二终端的主桌面,得到第二镜像窗口。
一种桌面窗口共享***,至少包括第一终端和第二终端,所述第一终端包括第一移动单元,所述第二终端包括第一获取单元和第一镜像单元:
所述第一移动单元用于将第一终端主桌面上的第一镜像窗口向预先为第一终端配置的第一虚拟桌面移动,所述第一虚拟桌面对应第二终端的主桌面;
所述第一获取单元用于在所述第二终端向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据;
所述第一镜像单元用于根据所述窗口数据将移动至所述第一虚拟桌面中的第一镜像窗口镜像到所述第二终端的主桌面,得到第二镜像窗口。
一种桌面窗口共享***,包括第三移动单元、第三获取单元和第三镜像单元;
所述第三移动单元用于将当前终端主桌面上的镜像窗口或者原生窗口向预先为当前终端配置的虚拟桌面移动,所述虚拟桌面对应目标终端的主桌面;
所述第三获取单元用于在有镜像窗口或者原生窗口向对应所述当前终端主桌面的虚拟桌面移动时,向窗口源终端获取对应的原生窗口的窗口数据;
所述第三镜像单元用于根据所述窗口数据将移动至对应所述当前终端主桌面的虚拟桌面中的镜像窗口或者原生窗口镜像到所述当前终端主桌面。
根据上述本发明的方案,其是将第一终端主桌面上的第一镜像窗口向预先为第一终端配置的第一虚拟桌面移动,所述第一虚拟桌面对应第二终端的主桌面,在所述第二终端向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据,根据所述窗口数据将移动至所述第一虚拟桌面中的第一镜像窗口镜像到所述第二终端的主桌面,得到第二镜像窗口,由于预先为第一终端配置了第一虚拟桌面,该第一虚拟桌面对应第二终端的主桌面,先将第一终端主桌面上的第一镜像窗口向该第一虚拟桌面移动,且由于是向创建原生窗口的窗口源终端获取窗口数据,并根据该窗口数据将移动至所述第一虚拟桌面中的第一镜像窗口镜像到所述第二终端的主桌面,因此可以将从某个终端移动来的第一镜像窗口再移动到第二终端,采用这种方式,还可以将镜像窗口由第二终端向第三终端移动,再将镜像窗口由第三终端向第四终端移动,以此类推,可以实现一个窗口移动跨过任意多个终端的主桌面显示,且只需要每个终端分别配置一两个虚拟桌面既可以实现,不用受限于终端显卡性能。
附图说明
图1-1为本发明实施例一的桌面窗口共享方法的实现流程示意图;
图1-2为一个由依次排列的多个终端构成的终端群的组成结构示意图;
图1-3为图1-2中的终端群中的各终端的虚拟桌面的配置方式示意图;
图2为本发明实施例二的桌面窗口共享方法的实现流程示意图;
图3为本发明实施例三的桌面窗口共享方法的实现流程示意图;
图4为本发明实施例四的桌面窗口共享方法的实现流程示意图;
图5-1为本发明实施例五的桌面窗口共享***的组成流程示意图一;
图5-2为本发明实施例五的桌面窗口共享***的组成流程示意图二;
图5-3为本发明实施例五的桌面窗口共享***的组成流程示意图三;
图5-4为本发明实施例五的桌面窗口共享***的组成流程示意图四;
图6为本发明实施例六的桌面窗口共享***的组成流程示意图;
图7为本发明实施例七的桌面窗口共享***的组成流程示意图;
图8-1为本发明的一具体示例中的场景示意图;
图8-2为本发明的一具体示例中窗口移动过程示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
实施例一
本发明实施例一提供一种桌面窗口共享方法。参见图1-1所示,为本发明实施例一的桌面窗口共享方法的实现流程示意图。如图1-1所示,本实施例的桌面窗口共享方法包括如下步骤:
步骤S101:将第一终端主桌面上的第一镜像窗口向预先为第一终端配置的第一虚拟桌面移动,所述第一虚拟桌面对应第二终端的主桌面;
具体地,响应用户触发的鼠标移动消息(或称为鼠标移动事件)将第一终端主桌面上的第一镜像窗口向预先为第一终端配置的第一虚拟桌面移动。
这里,第一终端可以是终端群(由依次排列的多个终端构成)中的任意一个终端,例如,如图2所示,第一终端为终端群中的终端k。其中,终端群中的各终端均可以为包括移动终端,也可以为非移动终端,非移动终端包括台式计算机,移动终端包括智能手机(SmartPhone)、平板终端、笔记本终端、个人数字助理等。
这里,第一镜像窗口可以是第一终端的相邻终端向第一终端移动原生窗口或者镜像窗口后获得的,例如,第一镜像窗口是由终端k-1或者终端k+1向终端k移动原生窗口或者镜像窗口获得。这里,所述第二终端可以为所述第一终端的左邻终端或者右临终端,在所述第二终端为所述第一终端的左邻终端时,所述为所述第一终端配置的第一虚拟桌面为左侧虚拟桌面,在所述第二终端为所述第一终端的右邻终端时,所述为所述第一终端配置的第一虚拟桌面为右侧虚拟桌面。
为终端配置虚拟桌面的具体方式可以是:若当前终端(任意一个终端)具有左邻终端,则为该当前终端配置左侧虚拟桌面,该左侧虚拟桌面对应当前终端的左邻终端的主桌面,若当前终端具有右邻终端,则为该当前终端配置右侧虚拟桌面,该右侧虚拟桌面对应当前终端的右邻终端的主桌面,即根据当前终端与其他终端间的相邻关系为当前终端配置虚拟桌面,其中,主桌面对应的是物理屏幕,虚拟桌面对应的是虚拟屏幕。以图1-2中的终端群为例,其中的各终端置虚拟桌面的配置方式如图1-3所示,对于终端1仅具有右临终端,为其配置右侧虚拟桌面,对于终端n仅具有左邻终端,为其配置左侧虚拟桌面,对于终端2~终端n-1均具有左邻终端和右临终端,为这些终端分别配置左侧虚拟桌面和右侧虚拟桌面。其中,终端1的右侧虚拟桌面对应终端2的主桌面,终端2的左侧虚拟桌面对应终端1的主桌面,终端2的右侧虚拟桌面对应终端2的主桌面,终端3的左侧虚拟桌面对应终端2的主桌面,终端3的右侧虚拟桌面对应终端4的主桌面,......,终端n-1的左侧虚拟桌面对应终端n-2的主桌面,终端n-1的右侧虚拟桌面对应终端n的主桌面,终端n的左侧虚拟桌面对应终端n-1的主桌面。
此外,在为当前终端配置虚拟桌面时,一般还需要考虑各终端显示屏幕的分辨率,即根据当前终端与其他终端间的相邻关系以及其他终端的显示屏幕的分辨率为当前终端配置虚拟桌面。例如,对于图1-2的终端群中的终端k,配置与终端k-1的显示屏幕的分辨率一致的左侧虚拟桌面,配置终端k+1的显示屏幕的分辨率一致的右侧虚拟桌面。对于上述的第一虚拟桌面的分辨率与第二终端的主桌面的分辨率一致。
上述的第一虚拟桌面可以是第一终端的右侧虚拟桌面,也可以是第一终端的左侧虚拟桌面,一般地,在第二终端是第一终端的右临终端时,上述的第一虚拟桌面是第一终端的右侧虚拟桌面,在第二终端是第一终端的左临终端时,上述的第一虚拟桌面是第一终端的左侧虚拟桌面。
步骤S102:在所述第二终端向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据;
这里,原生窗口一般是在所述窗口源终端上创建,具体可以为终端上打开的应用窗口。
这里,窗口源终端可以与第一终端或者第二终端相邻,也可以不相邻,此外,以图1-2中的终端群为例,窗口源终端可以是两侧的终端,即终端1和终端n,也可以是终端1和终端n中间的某个终端。
具体地,第二终端可以向窗口源终端发送数据获取窗口数据请求信息,窗口源终端接收到该窗口数据请求信息,根据该窗口数据请求信息向第二终端返回第一镜像窗口对应的原生窗口的窗口数据;
步骤S103:根据所述窗口数据将移动至所述第一虚拟桌面中的第一镜像窗口镜像到所述第二终端的主桌面,得到第二镜像窗口。
考虑到窗口移动往往是非瞬时的,在其中一个实施例中,还可以包括:在将所述第一镜像窗口向所述第一虚拟桌面移动的过程中,根据所述第一镜像窗口在所述第一虚拟桌面中的位置信息同步移动所述第二终端的主桌面上的第二镜像窗口。
此外,在其中一个实施例中,还可包括:在将所述第一镜像窗口完整的镜像到所述第二终端的主桌面后,将所述窗口源终端的鼠标事件信息的发送目标由所述第一终端更改为所述第二终端;
具体地,第二终端判断第一镜像窗口是否完全移动到自身的主桌面内,即判断所述第一镜像窗口是否完整的镜像到所述第二终端的主桌面,若第二终端判定第一镜像窗口完全移动到自身的主桌面内,即判定已将所述第一镜像窗口完整的镜像到所述第二终端的主桌面,则向窗口源终端发送鼠标事件请求信息,所述窗口源终端根据该鼠标事件请求信息将所述窗口源终端的鼠标事件信息的发送目标由所述第一终端更改为所述第二终端。
在其中一个实施例中,还可包括:在将所述第一镜像窗口完整的镜像到所述第二终端的主桌面时,停止向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据。具体地,第二终端在判定已将所述第一镜像窗口完整的镜像到所述第二终端的主桌面时,向窗口源终端发送停止发送窗口数据请求信息,窗口源终端接收到该窗口数据请求信息后,停止向第二终端发送所述窗口数据。
根据上述本实施例的方案,其是将第一终端主桌面上的第一镜像窗口向预先为第一终端配置的第一虚拟桌面移动,所述第一虚拟桌面对应第二终端的主桌面,在所述第二终端向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据,根据所述窗口数据将移动至所述第一虚拟桌面中的第一镜像窗口镜像到所述第二终端的主桌面,得到第二镜像窗口,由于预先为第一终端配置了第一虚拟桌面,该第一虚拟桌面对应第二终端的主桌面,先将第一终端主桌面上的第一镜像窗口向该第一虚拟桌面移动,且由于是向创建原生窗口的窗口源终端获取窗口数据,并根据该窗口数据将移动至所述第一虚拟桌面中的第一镜像窗口镜像到所述第二终端的主桌面,因此可以将从某个终端移动来的第一镜像窗口再移动到第二终端,采用这种方式,还可以将镜像窗口由第二终端向第三终端移动,再将镜像窗口由第三终端向第四终端移动,以此类推,可以实现一个窗口移动跨过任意多个终端的主桌面显示,且只需要每个终端分别配置一两个虚拟桌面既可以实现,不用受限于终端显卡性能。
实施例二
本发明实施例二提供一种桌面窗口共享方法。本实施例二与实施例一的不同之处在于,在本实施例二中增加了原生窗口的移动过程。参见图2所示,为本发明实施例二的桌面窗口共享方法的实现流程示意图。如图2所示,本实施例二的桌面窗口共享方法包括如下步骤:
步骤S201:将窗口源终端主桌面上的原生窗口向预先为窗口源终端配置的第二虚拟桌面移动,所述第二虚拟桌面对应第一终端的主桌面;
这里,第一终端为窗口源终端的左邻终端或者右临终端,一般地,在第一终端为窗口源终端的左邻终端时,第二虚拟桌面为窗口源终端的左侧虚拟桌面,在第一终端为窗口源终端的右邻终端时,第二虚拟桌面为窗口源终端的右侧虚拟桌面。
步骤S202:在所述第一终端向窗口源终端获取所述原生窗口的窗口数据;
具体地,第一终端可以向窗口源终端发送数据获取窗口数据请求信息,窗口源终端接收到该窗口数据请求信息,根据该窗口数据请求信息向第一终端返回所述原生窗口的窗口数据。
步骤S203:根据所述窗口数据将移动至所述第二虚拟桌面中的原生窗口镜像到所述第一终端的主桌面,得到所述第一镜像窗口;
考虑到窗口移动往往是非瞬时的,在其中一个实施例中,还可以包括:在将原生窗口向第二虚拟桌面移动的过程中,根据所述原生窗口在所述第二虚拟桌面中的位置信息同步移动所述第一终端的主桌面上的第一镜像窗口。
此外,还可以包括:窗口源终端在检测到已将原生窗口完全移动至第二虚拟桌面后,屏蔽在本地响应鼠标消息的。第一终端在将原生窗口完整的镜像到所述第一终端的主桌面后,向窗口源终端发送鼠标事件消息请求信息,所述鼠标事件消息请求信息包括鼠标事件消息请求命令和目标终端标志,窗口源终端根据鼠标事件消息请求命令中目标终端标志确定鼠标事件消息的发送地址。
此外,还可以包括:在原生窗口完全移动至第二虚拟桌面时,停止所述的在所述第一终端向窗口源终端获取所述原生窗口的窗口数据。
步骤S204:将第一终端主桌面上的第一镜像窗口向预先为第一终端配置的第一虚拟桌面移动,所述第一虚拟桌面对应第二终端的主桌面;
步骤S205:在所述第二终端向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据;
步骤S206:根据所述窗口数据将移动至所述第一虚拟桌面中的第一镜像窗口镜像到所述第二终端的主桌面,得到第二镜像窗口。
此外,在其中一个实施例中,还可以包括:在将所述第一镜像窗口完整的镜像到所述第二终端的主桌面后,将所述窗口源终端的鼠标事件信息的发送目标由所述第一终端更改为所述第二终端。在其中一个实施例中,还可以包括:在将所述第一镜像窗口完整的镜像到所述第二终端的主桌面时,停止在所述第二终端向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据。
需要说明的是,在本实施例中第一镜像窗口是由窗口源终端主桌面上的原生窗口向第一终端的主桌面移动后获得的,但这并不构成对本发明方案的限定。本实施例中的其他技术特征与实施例一中的一致,在此不予赘述。
此外,需要说明的是,上述的相邻是指逻辑上的相邻,并不要求必须是物理上的相邻,例如,对于图1-2中的终端k,是在逻辑上与终端k-1和终端k+1相邻,但并不需要终端k必须在实际空间上与终端k-1和终端k+1相邻。
基于上述两个实施例的方案,以下通过几个示例针对几种不同的移动情形分别进行详细阐述。
示例1
本示例1是以窗口源终端为图1-2中的终端1、需要将终端1的主桌面上显示的原生窗口A0从终端1右移到终端5的主桌面上显示为例进行说明。
首先,将原生窗口A0从终端1的主桌面中移动到终端1的右侧虚拟桌面,并镜像该右侧虚拟桌面中的原生窗口A0到终端2的主桌面中,得到镜像窗口A1;接着,将镜像窗口A1从终端2的主桌面移动到终端2的右侧虚拟桌面,并镜像该右侧虚拟桌面中的镜像窗口A1到终端3的主桌面中,得到镜像窗口A2;再接着,将镜像窗口A2从终端3的主桌面移动到终端3的右侧虚拟桌面,并镜像该右侧虚拟桌面中的镜像窗口A2到终端4的主桌面中,得到镜像窗口A3;最后,将镜像窗口A3从终端4的主桌面移动到终端4的右侧虚拟桌面,并镜像该右侧虚拟桌面中的镜像窗口A3到终端5的主桌面中,得到镜像窗口A4。重复以上动作,还可以继续向右跨越任意多个终端的主桌面。
示例2
本示例2是以窗口源终端为图1-2中的终端n、需要将终端1的主桌面上显示的原生窗口B0从终端n左移到终端n-4的主桌面上显示为例进行说明。
首先,将原生窗口B0从终端n的主桌面中移动到终端1的左侧虚拟桌面,并镜像该左侧虚拟桌面中的原生窗口B0到终端n-1的主桌面中,得到镜像窗口B1;接着,将镜像窗口B1从终端n-1的主桌面移动到终端n-1的左侧虚拟桌面,并镜像该左侧虚拟桌面中的镜像窗口B1到终端n-2的主桌面中,得到镜像窗口B2;再接着,将镜像窗口B2从终端n-2的主桌面移动到终端3的左侧虚拟桌面,并镜像该左侧虚拟桌面中的镜像窗口B2到终端n-3的主桌面中,得到镜像窗口B3;最后,将镜像窗口B3从终端n-3的主桌面移动到终端n-3的左侧虚拟桌面,并镜像该左侧虚拟桌面中的镜像窗口B3到终端n-4的主桌面中,得到镜像窗口B4。重复以上动作,还可以继续向左跨越任意多个终端的主桌面。
示例3
本示例3是以窗口源终端为图1-2中的终端k、需要将终端k的主桌面上显示的原生窗口C0从终端k左移到终端k-2的主桌面上显示并需要将终端k的主桌面上显示的原生窗口D0从终端k右移到终端k+3的主桌面上显示为例进行说明。
对于原生窗口C0的左移操作,首先,将原生窗口C0从终端k的主桌面中移动到终端1的左侧虚拟桌面,并镜像该左侧虚拟桌面中的原生窗口C0到终端k-1的主桌面中,得到镜像窗口C1;接着,将镜像窗口C1从终端k-1的主桌面移动到终端k-1的左侧虚拟桌面,并镜像该左侧虚拟桌面中的镜像窗口C1到终端k-2的主桌面中,得到镜像窗口C2。
对于原生窗口D0的右移操作,将原生窗口D0从终端k的主桌面中移动到终端1的右侧虚拟桌面,并镜像该右侧虚拟桌面中的原生窗口D0到终端k+1的主桌面中,得到镜像窗口D1;接着,将镜像窗口D1从终端k+1的主桌面移动到终端k+1的右侧虚拟桌面,并镜像该右侧虚拟桌面中的镜像窗口D1到终端k+2的主桌面中,得到镜像窗口D2;最后,将镜像窗口D2从终端k+2的主桌面移动到终端3的右侧虚拟桌面,并镜像该右侧虚拟桌面中的镜像窗口D2到终端k+3的主桌面中,得到镜像窗口D3。
实施例三
根据上述的实施例一、实施例二,本发明的实施例三提供一种桌面窗口共享方法。本实施例三与实施例二的不同之处在于,在本实施例三中增加终端间的指令交互过程,且是以向右移动窗口为例进行说明。参见图3所示,为本发明实施例二的桌面窗口共享方法的实现流程示意图。如图3所示,本实施例的桌面窗口共享方法包括如下步骤:
步骤S301:窗口源终端在检测到主桌面上的原生窗口移动到右边缘位置时,向第一终端发送第一镜像指示信息,所述第一镜像指示信息包括镜像命令、源终端标识和窗口位置信息;
具体地,窗口源终端在检测到主桌面上的原生窗口移动到右边缘位置时,若存在右侧虚拟桌面,则获取所述原生窗口的窗口数据,并向第一终端发送第一镜像指示信息,所述第一镜像指示信息包括镜像命令、源终端标识和窗口位置信息,若不存在右侧虚拟桌面,则不处理。
步骤S302:第一终端响应所述第一镜像指示信息,向所述源终端标识对应的窗口源终端发送第一窗口数据请求信息,所述第一窗口数据请求信息包括第一目标终端标识,其中,第一目标终端标识为第一终端的标识信息;
具体地,第一终端接收到第一镜像指示信息后,若基于该第一镜像指示信息中的源终端标识判定源终端标识非本机标识(即源终端标识不是第一终端的标识),则通过网络向所述源终端标识对应的窗口源终端发送第一窗口数据请求信息,并基于第一镜像指示信息中的窗口位置信息进行相应的显示操作,例如,视频渲染。
步骤S303:所述窗口源终端在接收所述第一窗口数据请求信息后,根据所述第一目标终端标识向所述第一目标终端标识对应的第一终端返回所获取的窗口数据;
具体地,所述窗口源终端在接收所述第一窗口数据请求信息后,根据所述第一目标终端标识判断第一目标终端标识非本机标识(即第一目标终端标识不是窗口源终端的标识),则通过网络向所述第一目标终端标识对应的第一终端返回所获取的窗口数据;
步骤S304:窗口源终端将所述原生窗口向预先为所述窗口源终端配置的右侧虚拟桌面中移动;
具体地,响应用户触发的鼠标移动消息(或称为鼠标移动事件)将窗口源终端主桌面上的原生窗口向预先为窗口源终端配置的右侧虚拟桌面移动。
步骤S305:第一终端根据所述窗口数据将移动至所述窗口源终端的虚拟桌面中的所述原生窗口镜像到所述第一终端的主桌面,得到第一镜像窗口;
考虑到窗口移动是非瞬时的,为此,还可以包括步骤:窗口源终端在判定所述原生窗口处在由主桌面移动到右侧虚拟桌面的过程中,定时向第一终端发送第一窗口位置同步指示信息,第一窗口位置同步指示信息包括窗口位置同步命令和窗口位置信息;第一终端在接收到第一窗口位置同步指示信息,根据第一窗口位置同步指示信息中的窗口位置信息同步移动第一镜像窗口。
步骤S306:第一终端在检测到主桌面上的第一镜像窗口移动到右边缘位置时,发送第二镜像指示信息至第二终端,所述第二镜像指示信息包括镜像命令、源终端标识和窗口位置信息;
具体地,第一终端在检测到主桌面上的原生窗口移动到右边缘位置时,若存在右侧虚拟桌面,则向第一终端发送第二镜像指示信息,若不存在右侧虚拟桌面,则不处理;
步骤S307:第二终端响应所述第二镜像指示信息,向所述第二镜像指示信息中的数据源标识对应的窗口源终端发送第二窗口数据请求信息,所述第二窗口数据请求信息包括第二目标终端标识,其中,第二目标终端标识为第二终端的标识信息;
具体地,第二终端接收到第二镜像指示信息后,若基于该第二镜像指示信息中的源终端标识判定源终端标识非本机标识(即源终端标识不是第二终端的标识),则通过网络向所述源终端标识对应的窗口源终端发送第二窗口数据请求信息,并基于第二镜像指示信息中的窗口位置信息进行相应的显示操作,例如,视频渲染。
步骤S308:窗口源终端在接收第二所述窗口数据请求信息后,根据所述第二所述窗口数据请求信息中的所述第二目标终端标识向所述第二终端返回所述镜像窗口对应的原生窗口的窗口数据;
具体地,所述窗口源终端在接收所述第二窗口数据请求信息后,根据所述第二目标终端标识判断第二目标终端标识非本机标识(即第二目标终端标识不是窗口源终端的标识),则通过网络向所述第二目标终端标识对应的第二终端返回所获取的窗口数据。
步骤S309:第一终端将所述第一镜像窗口向预先为第一终端配置的右侧虚拟桌面中移动;
具体地,响应用户触发的鼠标移动消息(或称为鼠标移动事件)将第一终端主桌面上的第一镜像窗口向预先为第一终端配置的右侧虚拟桌面移动。
步骤S310:根据所述窗口数据将移动至所述第一终端的虚拟桌面中的第一镜像窗口镜像到所述第二终端的主桌面,得到第二镜像窗口;
考虑到窗口移动是非瞬时的,为此,还可以包括步骤:第一终端在判定所述第一镜像窗口处在由主桌面移动到右侧虚拟桌面的过程中,定时向第二终端发送第二窗口指示信息,第二窗口指示信息包括窗口位置同步命令和窗口位置信息;第二终端在接收到第二窗口指示信息,根据第二窗口指示信息中的窗口位置信息同步移动第二镜像窗口。
实施例四
根据上述的实施例一、实施例二,本发明的实施例三提供一种桌面窗口共享方法。本实施例三与实施例二的不同之处在于,在本实施例三中增加终端间的指令交互过程,且是以向左移动窗口为例进行说明。参见图4所示,为本发明实施例二的桌面窗口共享方法的实现流程示意图。如图4所示,本实施例的桌面窗口共享方法包括如下步骤:
步骤S401:窗口源终端在检测到主桌面上的原生窗口移动到左边缘位置时,向第一终端发送第一镜像指示信息,所述第一镜像指示信息包括镜像命令、源终端标识和窗口位置信息;
具体地,窗口源终端在检测到主桌面上的原生窗口移动到左边缘位置时,若存在左侧虚拟桌面,则获取所述原生窗口的窗口数据,并向第一终端发送第一镜像指示信息,所述第一镜像指示信息包括镜像命令、源终端标识和窗口位置信息,若不存在左侧虚拟桌面,则不处理。
步骤S402:第一终端响应所述第一镜像指示信息,向所述源终端标识对应的窗口源终端发送第一窗口数据请求信息,所述第一窗口数据请求信息包括第一目标终端标识,其中,第一目标终端标识为第一终端的标识信息;
具体地,第一终端接收到第一镜像指示信息后,若基于该第一镜像指示信息中的源终端标识判定源终端标识非本机标识(即源终端标识不是第一终端的标识),则通过网络向所述源终端标识对应的窗口源终端发送第一窗口数据请求信息,并基于第一镜像指示信息中的窗口位置信息进行相应的显示操作,例如,视频渲染。
步骤S403:所述窗口源终端在接收所述第一窗口数据请求信息后,根据所述第一目标终端标识向所述第一目标终端标识对应的第一终端返回所获取的窗口数据;
具体地,所述窗口源终端在接收所述第一窗口数据请求信息后,根据所述第一目标终端标识判断第一目标终端标识非本机标识(即第一目标终端标识不是窗口源终端的标识),则通过网络向所述第一目标终端标识对应的第一终端返回所获取的窗口数据;
步骤S404:窗口源终端将所述原生窗口向预先为所述窗口源终端配置的左侧虚拟桌面中移动;
具体地,响应用户触发的鼠标移动消息(或称为鼠标移动事件)将窗口源终端主桌面上的原生窗口向预先为窗口源终端配置的左侧虚拟桌面移动。
步骤S405:第一终端根据所述窗口数据将移动至所述窗口源终端的虚拟桌面中的所述原生窗口镜像到所述第一终端的主桌面,得到第一镜像窗口;
考虑到窗口移动是非瞬时的,为此,还可以包括步骤:窗口源终端在判定所述原生窗口处在由主桌面移动到左侧虚拟桌面的过程中,定时向第一终端发送第一窗口位置同步指示信息,第一窗口位置同步指示信息包括窗口位置同步命令和窗口位置信息;第一终端在接收到第一窗口位置同步指示信息,根据第一窗口位置同步指示信息中的窗口位置信息同步移动第一镜像窗口。
步骤S406:第一终端在检测到主桌面上的第一镜像窗口移动到左边缘位置时,发送第二镜像指示信息至第二终端,所述第二镜像指示信息包括镜像命令、源终端标识和窗口位置信息;
具体地,第一终端在检测到主桌面上的原生窗口移动到左边缘位置时,若存在左侧虚拟桌面,则向第一终端发送第二镜像指示信息,若不存在左侧虚拟桌面,则不处理;
步骤S407:第二终端响应所述第二镜像指示信息,向所述第二镜像指示信息中的数据源标识对应的窗口源终端发送第二窗口数据请求信息,所述第二窗口数据请求信息包括第二目标终端标识,其中,第二目标终端标识为第二终端的标识信息;
具体地,第二终端接收到第二镜像指示信息后,若基于该第二镜像指示信息中的源终端标识判定源终端标识非本机标识(即源终端标识不是第二终端的标识),则通过网络向所述源终端标识对应的窗口源终端发送第二窗口数据请求信息,并基于第二镜像指示信息中的窗口位置信息进行相应的显示操作,例如,视频渲染。
步骤S408:窗口源终端在接收第二所述窗口数据请求信息后,根据所述第二所述窗口数据请求信息中的所述第二目标终端标识向所述第二终端返回所述镜像窗口对应的原生窗口的窗口数据;
具体地,所述窗口源终端在接收所述第二窗口数据请求信息后,根据所述第二目标终端标识判断第二目标终端标识非本机标识(即第二目标终端标识不是窗口源终端的标识),则通过网络向所述第二目标终端标识对应的第二终端返回所获取的窗口数据。
步骤S409:第一终端将所述第一镜像窗口向预先为第一终端配置的左侧虚拟桌面中移动;
具体地,响应用户触发的鼠标移动消息(或称为鼠标移动事件)将第一终端主桌面上的第一镜像窗口向预先为第一终端配置的左侧虚拟桌面移动。
步骤S410:根据所述窗口数据将移动至所述第一终端的虚拟桌面中的第一镜像窗口镜像到所述第二终端的主桌面,得到第二镜像窗口;
考虑到窗口移动是非瞬时的,为此,还可以包括步骤:第一终端在判定所述第一镜像窗口处在由主桌面移动到左侧虚拟桌面的过程中,定时向第二终端发送第二窗口指示信息,第二窗口指示信息包括窗口位置同步命令和窗口位置信息;第二终端在接收到第二窗口指示信息,根据第二窗口指示信息中的窗口位置信息同步移动第二镜像窗口。
上述的终端标识(包括第一目标终端标识、第二目标终端标识和源终端标识)可以为任意可区分不同终端的标识,一般可以选用终端IP作为终端标识,但也不限于此。
实施例五
根据上述实施例中的桌面窗口共享方法,本发明还提供一种桌面窗口共享***。图5-1为本发明实施例五的桌面窗口共享***的组成结构示意图一。如图5-1所示,本实施例五的桌面窗口共享***至少包括第一终端501和第二终端502,第一终端501包括第一移动单元5011,第二终端502包括第一获取单元5021和第一镜像单元5022:
第一移动单元5011用于将第一终端501主桌面上的第一镜像窗口向预先为第一终端501配置的第一虚拟桌面移动,所述第一虚拟桌面对应第二终端502的主桌面;
第一获取单元5021用于在第二终端502向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据;
第一镜像单元5022用于根据所述窗口数据将移动至所述第一虚拟桌面中的第一镜像窗口镜像到第二终端502的主桌面,得到第二镜像窗口。
在其中一个实施例中,如图5-2所示,本实施例的桌面窗口共享***,还可以包括窗口源终端503,窗口源终端503包括第二移动单元5031,所述第一终端还包括第二获取单元5012和第二镜像单元5013:
第二移动单元5031用于将窗口源终端503主桌面上的所述原生窗口向预先为窗口源终端503配置的第二虚拟桌面移动,所述第二虚拟桌面对应第一终端501的主桌面;
第二获取单元5012用于在所述第一终端501向窗口源终端503获取所述窗口数据;
第二镜像单元5013用于根据所述窗口数据将移动至所述第二虚拟桌面中的原生窗口镜像到第一终端501的主桌面,得到所述第一镜像窗口。
在其中一个实施例中,如图5-3所示,第二终端502还可以包括同步单元5023;
同步单元5023用于在将所述第一镜像窗口向所述第一虚拟桌面移动的过程中,根据所述第一镜像窗口在所述第一虚拟桌面中的位置信息同步移动第二终端502的主桌面上的第二镜像窗口。
在其中一个实施例中,如图5-4所示,窗口源终端503还可以包括鼠标目标更改单元,鼠标目标更改单元503用于在第一镜像单元5022将完整的第一镜像窗口镜像到第二终端502的主桌面后,将窗口源终端503的鼠标事件信息的发送目标由第一终端501更改为第二终端502。
在其中一个实施例中,第一获取单元5021用于在第一镜像单元5022将完整的第一镜像窗口镜像到第二终端502的主桌面时,停止向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据。
本发明实施例提供的桌面窗口共享***,需要指出的是:以上对于桌面窗口共享***的描述,与上述桌面窗口共享方法的描述是类似的,并且具有上述桌面窗口共享方法的有益效果,为节约篇幅,不再赘述;因此,以上对本发明实施例提供的桌面窗口共享***中未披露的技术细节,请参照上述提供的桌面窗口共享方法的描述。
实施例六
根据上述实施例中的桌面窗口共享方法,本发明还提供一种桌面窗口共享***。图6为本发明实施例六的桌面窗口共享***的组成结构示意图。如图6所示,本实施例六的桌面窗口共享***包括第三移动单元601、第三获取单元602和第三镜像单元603;
第三移动单元601用于将当前终端主桌面上的镜像窗口或者原生窗口向预先为当前终端配置的虚拟桌面移动,所述虚拟桌面对应目标终端的主桌面;
这里,当前终端是多个终端中的任意一个终端,是指镜像窗口或者原生窗口本次移动前所在的窗口,而目标终端也是多个终端中的任意一个终端,是指镜像窗口或者原生窗口本次移动后所在的窗口;
第三获取单元602用于在有镜像窗口或者原生窗口向对应所述当前终端主桌面的虚拟桌面移动时,向窗口源终端获取对应的原生窗口的窗口数据;
第三镜像单元603用于根据所述窗口数据将移动至对应所述当前终端主桌面的虚拟桌面中的镜像窗口或者原生窗口镜像到所述当前终端主桌面。
本发明实施例提供的桌面窗口共享***,需要指出的是:以上对于桌面窗口共享***的描述,与上述桌面窗口共享方法的描述是类似的,并且具有上述桌面窗口共享方法的有益效果,为节约篇幅,不再赘述;因此,以上对本发明实施例提供的桌面窗口共享***中未披露的技术细节,请参照上述提供的桌面窗口共享方法的描述。
根据本发明实施例六的桌面窗口共享***,本发明还可以提高一种终端,该终端包括实施例六的桌面窗口共享***。
实施例七
基于上述各实施例,本发明实施例七提供一种较佳的桌面窗口共享***,如图7所示,为本发明实施例七的桌面窗口共享***的组成结构示意图。需要说明的是图7中的提供的是一种较佳的方案,根据实际需要可以包括图7中的部分模块,也可以包括图7中的全部模块。
本实施例七中的桌面窗口共享***包括初始化配置模块701、窗口检测模块702、控制决策模块703、鼠标事件消息检测模块704、窗口抓取模块705、视频编码器模块706、网络发送模块707、网络接收模块708、数据解析模块709、视频解码器模块710、窗口视频渲染模块711、窗口位置同步模块712、鼠标事件响应模块713。
初始化配置模块701在当前终端屏幕存在实际左终端物理屏幕/右终端物理屏幕时,为当前***配置对应的左虚拟桌面/右虚拟桌面,并绑定对应左右终端的网络IP,在当前终端屏幕不存在实际左终端物理屏幕/右终端物理屏幕时,不配置对应虚拟屏幕和绑定IP。
窗口检测模块702用于检测窗口类型,即检测窗口是镜像窗口(由本发明方案创建的渲染窗口)或原生窗口(不是本发明方案创建的窗口),以及镜像窗口/原生窗口的位置和分辨率。
控制决策模块703,用于根据配置信息、窗口检测或数据解析结果,具体地:
(A)在判定原生窗口移动至主桌面右(左)边缘位置时,若存在右(左)侧虚拟桌面,则通知窗口抓取模块705抓取原生窗口视频帧;同时通过网络发送模块707,将数据(镜像命令+源视频IP+窗口位置)发送给右(左)侧终端;若不存在,则不处理。
(B)判断原生窗口在由主桌面移动到右(左)侧虚拟桌面的过程中,定时通过网络发送模块706向右(左)侧终端发送(窗口位置同步命令+位置信息)。
(C)接收到数据解析模块709送来的(镜像命令+源视频IP+窗口位置)信息,判断源视频IP非本机IP,则通过网络发送模块,将(视频请求命令+目标机IP(本机IP))发送给源视频IP的终端;同时将窗口位置信息发送给窗口视频渲染711模块。若是本机IP,则将位置信息发送给窗口位置同步模块同步原生窗口位置。
(D)接收到数据解析模块709送来的(窗口位置同步命令+位置信息)信息,通知窗口位置同步模块712移动窗口位置。
(E)判定原生窗口完全移动至右(左)侧虚拟桌面内,则通知鼠标事件消息检测模块704屏蔽***响应鼠标消息。
(F)判定镜像窗口由左(右)侧虚拟屏幕完全移动至主桌面内,则通过网络发送模块707向源视频IP所在终端发送(鼠标事件消息请求命令+目标机IP(本机IP))信息。
(G)判定镜像窗口移动至主桌面右(左)侧边缘位置时,若存在右(左)侧虚拟桌面,则通过网络发送模块发送数据(镜像命令+源视频IP+窗口位置)到右(左)侧终端;若不存在,则不处理。
(H)判定镜像窗口由主桌面移动到右(左)侧虚拟桌面的过程中,定时通过网络发送模块707向右(左)侧终端发送(窗口位置同步命令+位置信息)。
(I)判断镜像窗口完全移动至右(左)侧虚拟桌面内时,通过网络发送模块707向源视频IP所在终端发送信息(请求停止视频+目标机IP),并销毁镜像窗口。
(J)接收到数据解析模块709送来的(请求停止视频+目标机IP)信息时,通知网络发送模块707,停止向目标机IP发送视频数据。
(K)接收到数据解析模块709送来的(鼠标请求命令+目标机IP)信息,判断目标机IP非本机IP,则通知网络发送模块707更换鼠标事件消息数据发送地址为当前目标机IP;
(L)判断原生窗口由右(左)侧虚拟桌面移回至主桌面时,通知鼠标事件消息检测模块704开放***响应鼠标事件,并停止向网络发送模块发送鼠标事件消息数据。
鼠标事件消息检测模块704,用于检测***鼠标事件消息,具有屏蔽/开放***响应鼠标事件功能。
窗口抓取模块705,用于抓取指定窗口视频帧。
视频编码器模块706,用于对窗口视频帧进行编码压缩处理。
网络发送模块707,向网络指定IP发送数据。
网络接收模块708,接收网络上发来的数据。
数据解析模块709,解析数据格式,将不同的数据类型分发给不同的模块处理。
视频解码器模块710,对视频压缩编码数据进行解码处理。
窗口视频渲染模块711,在指定位置创建窗口视频显示。
窗口位置同步模块712,将原生/镜像窗口移动到指定位置。
鼠标事件响应模块713,处理其他终端传来的鼠标事件消息,然后提交给操作***响应。
需要说明的是,在本实施例中,是以窗口数据为窗口视频帧,终端标识为终端的IP为例进行说明,但这并不构成对本发明方案的限定。
为了便于理解本发明的方案,以下通过一个具体的示例进行说明。在本示例中仅以3台终端为例,将终端1桌面上的原生窗口1由位置A移动到终端3的主桌面的位置F”上显示,然后再从终端3桌面移动回终端1的桌面位置A的过程。
在终端1、终端2和终端3上分别运行本发明的如图7所示的***,如图8-1所示,终端1、终端2和终端3按照从左到右依次放置。
终端1桌面,右侧存在终端2,因此初始化配置模块为终端1配置右侧虚拟桌面对应终端2的主桌面;
终端2桌面,左侧存在终端1,右侧存在终端3,因此初始化配置模块为终端2同时配置左侧虚拟桌面对应终端1的主桌面,配置右侧虚拟桌面对应终端3的主桌面;
终端3桌面,左侧存在终端2,因此初始化配置模块为终端3配置左侧虚拟桌面对应终端2的主桌面。
用户使用终端1的鼠标将原生窗口1由位置A移动到主桌面右侧边缘位置B时,终端1的窗口检测模块检测到原生窗口移动至主桌面右侧边缘时,通知终端1的控制决策模块。
终端1的控制决策模块,判定原生窗口1移动到主桌面右侧边缘位置B时,通知窗口抓取模块抓取该窗口视频帧,然后送到视频编码器进行压缩编码,然后将视频压缩码流送到网络发送模块等待发送。同时通过网络发送模块发送(镜像命令+终端1的IP(源视频IP)+位置B)数据到终端2。
终端2的网络接收模块接收到终端1发的数据后,送到数据解析模块,解析数据为镜像命令+终端1的IP(源视频IP)+位置B后,提交给控制决策模块,控制决策模块判定源视频IP非本机IP(终端2的IP)时,通过网络发送模块向终端IP(源视频IP)发送视频请求命令。同时控制决策模块,将位置B信息送到窗口位置同步模块。
终端1的网络接收模块,接收到数据后,送到数据解析模块,解析为终端2的视频请求命令后,将(视频请求命令+目标机IP(终端2的IP))提交控制决策模块。控制决策模块,判断目标机IP不是本机IP(终端1的IP),则通知网络发送模块向终端2发送视频数据。
终端2的网络接收模块,接收到终端1发送的数据后,送到数据解析模块解析为视频数据,送到视频解码器模块进行解压缩处理,然后送到窗口视频渲染模块在指定位置B’创建镜像窗口1显示。
用户在终端1将原生窗口由主桌面位置B移动到虚拟桌面位置C的过程中,控制决策模块,不断通过网络发送模块,将(同步命令+原生窗口的位置)信息发送给终端2。
终端2收到(窗口位置同步命令+窗口的位置)后,由控制决策模块,通知窗口同步模块,不断同步更新镜像窗口1的位置。
当终端1的控制决策模块,判断原生窗口已完全移动到右侧虚拟桌面内(位置C)时,则通知鼠标事件消息检测模块屏蔽终端1的操作***响应鼠标命令。此时,用户通过终端1的鼠标操作命令不被终端1的操作***响应。
同时当终端2的控制决策模块,判断镜像窗口1已完全移动到主桌面内(位置C’)时,则向终端1(源视频IP)发送(鼠标事件请求命令+目标机IP(终端2的IP))信息。
终端1接收到终端2的(鼠标事件消息请求命令+终端2的IP(目标机IP))后,控制决策模块判断目标机IP(终端2的IP)不是本机IP,因此通知,网络发送模块,将鼠标事件消息检测的鼠标信息发送给终端2。
终端2网络接收模块,接收到终端1发送的数据,送到数据解析模块解析为鼠标事件消息,则送到鼠标事件响应模块处理。此时,用户通过终端1的鼠标操作命令在终端2响应。
用户此时通过鼠标继续移动的窗口为终端2的镜像窗口1,而原生窗口将停留在位置C。
用户将镜像窗口1,由位置C’移动至位置D’时,控制决策模块判断镜像窗口1移动至主桌面右侧边缘,则通过网络发送模块向右侧的终端3发送(镜像命令+终端1的IP(源视频IP)+位置D’)信息。
终端3的网络接收模块接收到终端2的数据后,送到数据解析模块解析为(镜像命令+终端1的IP(源视频IP)+位置D’),送到控制决策模块。控制决策模块,判断终端1的IP非本机IP,则通过网络发送模块向终端1发送(视频请求命令+目标机IP(终端3的IP))信息。
终端1的网络接收模块接收到终端3的数据信息后,送到数据解析模块解析为(视频请求命令+目标机IP(终端3的IP)),送到控制决策模块。控制决策模块,判断目标机IP不是本机IP(终端1的IP),则通知网络发送模块向终端3发送视频数据。
终端3的网络接收模块,接收到终端1发送的数据后,送到数据解析模块解析为视频数据,送到视频解码器模块进行解压缩处理,然后送到窗口视频渲染模块在指定位置D”创建镜像窗口2显示。
用户在终端2将镜像窗口1由主桌面位置D’移动到虚拟桌面位置E’的过程中,控制决策模块,不断通过网络发送模块,将(同步命令+镜像窗口的位置)信息发送给终端3。
终端3收到(窗口位置同步命令+窗口的位置)后,由控制决策模块,通知窗口同步模块,不断同步更新镜像窗口2的位置。
当终端2的控制决策模块,判断镜像窗口1已完全移动到右侧虚拟桌面内(位置E’)时,则通过网络发送模块向源视频IP(终端1)发送信息(请求停止视频+目标机IP(终端2)),并销毁右侧虚拟桌面位置E’的镜像窗口1。
终端1控制决策模块接收到数据解析模块送来的(请求停止视频+目标机IP(终端2))信息时,通知网络发送模块,停止向终端2发送视频数据。
终端3的控制决策模块,判断镜像窗口2已完全移动到主桌面内(位置E”)时,则向终端1(源视频IP)发送(鼠标事件请求命令+目标机IP(终端3的IP))信息。
终端1接收到终端3的(鼠标事件消息请求命令+终端3的IP(目标机IP))后,控制决策模块判断目标机IP(终端3的IP)不是本机IP,因此通知,网络发送模块,将鼠标事件消息检测的鼠标信息发送的目标IP由终端2改为终端3。
终端3网络接收模块,接收到终端1发送的数据,送到数据解析模块解析为鼠标事件消息,则送到鼠标事件响应模块处理。此时,用户通过终端1的鼠标操作命令在终端3响应。
用户此时通过鼠标继续移动的窗口为终端3的镜像窗口2,可将镜像窗口2移动至终端3主桌面位置F”处。
以上,就完成了将窗口由终端1桌面位置A移动至终端3桌面位置F”过程。以下,说明将窗口由终端3桌面位置F”移回至终端1桌面位置A的过程。
用户将终端3的镜像窗口由位置F”移动至位置G”时,控制决策模块判断镜像窗口2移动至主桌面左侧边缘,则通过网络发送模块向左侧的终端2发送(镜像命令+终端1的IP(源视频IP)+位置G”)信息。
终端2的网络接收模块接收到终端3的数据后,送到数据解析模块解析为(镜像命令+终端1的IP(源视频IP)+位置G”),送到控制决策模块。控制决策模块,判断终端1的IP非本机IP,则通过网络发送模块向终端1发送(视频请求命令+目标机IP(终端2的IP))信息。
终端1的网络接收模块接收到终端2的数据信息后,送到数据解析模块解析为(视频请求命令+目标机IP(终端2的IP)),送到控制决策模块。控制决策模块,判断目标机IP不是本机IP(终端1的IP),则通知网络发送模块向终端2发送视频数据。
终端2的网络接收模块,接收到终端1发送的数据后,送到数据解析模块解析为视频数据,送到视频解码器模块进行解压缩处理,然后送到窗口视频渲染模块在指定位置G’创建镜像窗口3显示。
用户在终端3将镜像窗口2由主桌面位置G”移动到左侧虚拟桌面位置H”的过程中,控制决策模块,不断通过网络发送模块,将(同步命令+窗口的位置)信息发送给终端2。
终端2收到(同步命令+窗口的位置)后,由控制决策模块,通知窗口同步模块,不断同步更新镜像窗口3的位置。
当终端3的控制决策模块,判断镜像窗口2已完全移动到左侧虚拟桌面内(位置H”)时,则通过网络发送模块向源视频IP(终端1)发送信息(请求停止视频+目标机IP(终端3)),并销毁左侧虚拟桌面位置H”的镜像窗口2。
终端1控制决策模块接收到数据解析模块送来的(请求停止视频+目标机IP(终端3))信息时,通知网络发送模块,停止向终端3发送视频数据。
终端2的控制决策模块,判断镜像窗口3已完全移动到主桌面内(位置H’)时,则向终端1(源视频IP)发送(鼠标事件请求命令+目标机IP(终端2的IP))信息。
终端1接收到终端2的(鼠标事件消息请求命令+终端2的IP(目标机IP))后,控制决策模块判断目标机IP(终端2的IP)不是本机IP,因此通知,网络发送模块,将鼠标事件消息检测的鼠标信息发送的目标IP由终端3改为终端2。
终端2网络接收模块,接收到终端1发送的数据,送到数据解析模块解析为鼠标事件消息,则送到鼠标事件响应模块处理。此时,用户通过终端1的鼠标操作命令在终端2响应。
用户此时通过鼠标继续移动的窗口为终端2的镜像窗口3,可将镜像窗口3移动至终端2主桌面位置I’处。
终端2的控制决策模块,判断镜像窗口3移动至主桌面左侧边缘,则通过网络发送模块向左侧的终端1发送(镜像命令+终端1的IP(源视频IP)+位置I’)信息。
终端1的网络接收模块接收到终端2的数据后,送到数据解析模块解析为(镜像命令+终端1的IP(源视频IP)+位置I’),送到控制决策模块。控制决策模块,判断源视频IP是本机IP,则将位置信息I’发送给窗口位置同步模块,将原生窗口1由位置C移动至位置I。
用户在终端2将镜像窗口3由主桌面位置I’移动到左侧虚拟桌面位置J’的过程中,控制决策模块,不断通过网络发送模块,将(同步命令+窗口的位置)信息发送给终端1。
终端1收到(同步命令+窗口的位置)后,由控制决策模块,通知窗口同步模块,不断同步更新原生窗口1的位置。
当终端2的控制决策模块,判断镜像窗口3已完全移动到左侧虚拟桌面内(位置J’)时,则通过网络发送模块向源视频IP(终端1)发送信息(请求停止视频+目标机IP(终端2)),并销毁左侧虚拟桌面位置J’的镜像窗口3。
终端1控制决策模块接收到数据解析模块送来的(请求停止视频+目标机IP(终端2))信息时,通知网络发送模块,停止向终端2发送视频数据。
终端1的控制决策模块,判断原生窗口1已完全移动到主桌面内(位置J)时,则通知鼠标事件消息检测模块开发***响应鼠标事件,并停止向网络发送模块发送鼠标事件消息数据。
此时终端1的***可以响应鼠标事件消息,用户通过鼠标将原生窗口由位置J移动至位置A。
到此,就介绍完成了窗口由终端1位置A到终端3位置F”,再回到终端1的位置A的移动过程。
从以上示例可以看出,虽然过程简单,但多台终端之间的信息交互比较繁琐。为了简单说明,才只采用了在3台终端间移动窗口来说明。但同样的方法可以在任意多台终端间完成窗口的移动过程。而且,也不必是要从最左边终端开始移动窗口,从任意一台终端,向任意方向移动窗口,使用本发明方案都是可行的。
需要说明的是,术语“第一”、“第二”和“第三”仅用于描述目的,而不能理解为指示或者暗示相对重要性。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,作为独立的产品销售或使用。所述程序在执行时,可执行如上述各方法的实施例的全部或部分步骤。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
或者,本发明上述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。在本申请所提供的几个实施例中,应该理解到,所揭露的方法和***,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个模块或组件可以结合,或可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
另外,在本发明各实施例中的各功能模块可以全部集成在一个处理模块中,也可以是各模块分别单独作为一个模块,也可以两个或两个以上模块集成在一个模块中;上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种桌面窗口共享方法,其特征在于,包括:
将第一终端主桌面上的第一镜像窗口向预先为第一终端配置的第一虚拟桌面移动,所述第一虚拟桌面对应第二终端的主桌面;
在所述第二终端向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据;
根据所述窗口数据将移动至所述第一虚拟桌面中的第一镜像窗口镜像到所述第二终端的主桌面,得到第二镜像窗口;
递归实现窗口共享。
2.根据权利要求1所述的桌面窗口共享方法,其特征在于,还包括:
将窗口源终端主桌面上的所述原生窗口向预先为窗口源终端配置的第二虚拟桌面移动,所述第二虚拟桌面对应第一终端的主桌面;
在所述第一终端向窗口源终端获取所述窗口数据;
根据所述窗口数据将移动至所述第二虚拟桌面中的原生窗口镜像到所述第一终端的主桌面,得到所述第一镜像窗口。
3.根据权利要求1所述的桌面窗口共享方法,其特征在于:
所述第二终端为所述第一终端的左邻终端或者右临终端,在所述第二终端为所述第一终端的左邻终端时,所述为所述第一终端配置的第一虚拟桌面为左侧虚拟桌面,在所述第二终端为所述第一终端的右邻终端时,所述为所述第一终端配置的第一虚拟桌面为右侧虚拟桌面。
4.根据权利要求1所述的桌面窗口共享方法,其特征在于,还包括:
在将所述第一镜像窗口向所述第一虚拟桌面移动的过程中,根据所述第一镜像窗口在所述第一虚拟桌面中的位置信息同步移动所述第二终端的主桌面上的第二镜像窗口。
5.根据权利要求1所述的桌面窗口共享方法,其特征在于,还包括:
在将所述第一镜像窗口完整的镜像到所述第二终端的主桌面后,将所述窗口源终端的鼠标事件信息的发送目标由所述第一终端更改为所述第二终端;
在将所述第一镜像窗口完整的镜像到所述第二终端的主桌面时,停止向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据。
6.一种桌面窗口共享***,其特征在于,至少包括第一终端和第二终端,所述第一终端包括第一移动单元,所述第二终端包括第一获取单元和第一镜像单元:
所述第一移动单元用于将第一终端主桌面上的第一镜像窗口向预先为第一终端配置的第一虚拟桌面移动,所述第一虚拟桌面对应第二终端的主桌面;
所述第一获取单元用于在所述第二终端向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据;
所述第一镜像单元用于根据所述窗口数据将移动至所述第一虚拟桌面中的第一镜像窗口镜像到所述第二终端的主桌面,得到第二镜像窗口;
递归实现窗口共享。
7.根据权利要求6所述的桌面窗口共享***,其特征在于,还包括窗口源终端,所述窗口源终端包括第二移动单元,所述第一终端还包括第二获取单元和第二镜像单元:
所述第二移动单元用于将窗口源终端主桌面上的所述原生窗口向预先为窗口源终端配置的第二虚拟桌面移动,所述第二虚拟桌面对应第一终端的主桌面;
所述第二获取单元用于在所述第一终端向窗口源终端获取所述窗口数据;
所述第二镜像单元用于根据所述窗口数据将移动至所述第二虚拟桌面中的原生窗口镜像到所述第一终端的主桌面,得到所述第一镜像窗口。
8.根据权利要求6所述的桌面窗口共享***,其特征在于,所述第二终端还包括同步单元;
所述同步单元用于在将所述第一镜像窗口向所述第一虚拟桌面移动的过程中,根据所述第一镜像窗口在所述第一虚拟桌面中的位置信息同步移动所述第二终端的主桌面上的第二镜像窗口。
9.根据权利要求7所述的桌面窗口共享***,其特征在于:
所述窗口源终端还包括鼠标目标更改单元,鼠标目标更改单元用于在所述第一镜像单元将完整的第一镜像窗口镜像到所述第二终端的主桌面后,将所述窗口源终端的鼠标事件信息的发送目标由所述第一终端更改为所述第二终端;
所述获取单元用于在所述移动单元将所述第一镜像窗口完全移动至所述第一虚拟桌面中时,停止向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据。
10.一种桌面窗口共享***,其特征在于,包括第三移动单元、第三获取单元和第三镜像单元;
所述第三移动单元用于将当前终端主桌面上的镜像窗口或者原生窗口向预先为当前终端配置的虚拟桌面移动,所述虚拟桌面对应目标终端的主桌面;
所述第三获取单元用于在有镜像窗口或者原生窗口向对应所述当前终端主桌面的虚拟桌面移动时,向窗口源终端获取对应的原生窗口的窗口数据;
所述第三镜像单元用于根据所述窗口数据将移动至对应所述当前终端主桌面的虚拟桌面中的镜像窗口或者原生窗口镜像到所述当前终端主桌面;
递归实现窗口共享。
CN201610635412.1A 2016-08-03 2016-08-03 桌面窗口共享方法和*** Expired - Fee Related CN106293583B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610635412.1A CN106293583B (zh) 2016-08-03 2016-08-03 桌面窗口共享方法和***
PCT/CN2017/095808 WO2018024230A1 (zh) 2016-08-03 2017-08-03 桌面窗口共享方法和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610635412.1A CN106293583B (zh) 2016-08-03 2016-08-03 桌面窗口共享方法和***

Publications (2)

Publication Number Publication Date
CN106293583A CN106293583A (zh) 2017-01-04
CN106293583B true CN106293583B (zh) 2019-10-11

Family

ID=57665374

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610635412.1A Expired - Fee Related CN106293583B (zh) 2016-08-03 2016-08-03 桌面窗口共享方法和***

Country Status (2)

Country Link
CN (1) CN106293583B (zh)
WO (1) WO2018024230A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106293583B (zh) * 2016-08-03 2019-10-11 广东威创视讯科技股份有限公司 桌面窗口共享方法和***
CN110515580B (zh) * 2019-09-02 2022-08-19 联想(北京)有限公司 一种显示控制方法、装置及终端
CN114442969B (zh) * 2020-10-30 2024-06-18 华为技术有限公司 一种设备间屏幕协同方法及设备
CN114398112B (zh) * 2021-12-01 2024-05-14 瑞芯微电子股份有限公司 控制屏幕切换的方法、***和计算机可读介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4738805B2 (ja) * 2004-12-16 2011-08-03 株式会社リコー 画面共有システム、画面共有方法、画面共有プログラム
CN101447998B (zh) * 2008-12-25 2012-07-11 广东威创视讯科技股份有限公司 桌面共享方法及***
US20150326642A1 (en) * 2013-03-06 2015-11-12 Junwei Cao Content-based desktop sharing
CN105407169A (zh) * 2015-12-08 2016-03-16 广东威创视讯科技股份有限公司 桌面共享方法和***
CN106293583B (zh) * 2016-08-03 2019-10-11 广东威创视讯科技股份有限公司 桌面窗口共享方法和***

Also Published As

Publication number Publication date
WO2018024230A1 (zh) 2018-02-08
CN106293583A (zh) 2017-01-04

Similar Documents

Publication Publication Date Title
CN106293583B (zh) 桌面窗口共享方法和***
KR101695917B1 (ko) 그룹 메시지를 관리하기 위한 방법과 시스템 및 기록 매체
CN103369477B (zh) 显示媒体信息方法、装置、客户端,图形控件显示方法和装置
US9590929B2 (en) Directed message notification in chat sessions
CN104902017B (zh) 一种支持QoS的多屏同步显示的远程互动方法
JP2013541075A5 (zh)
CN108595401A (zh) 批注同步***、方法、装置、设备和存储介质
CN104778022B (zh) 一种数据处理方法及电子设备
Lea et al. Representations of the group and group processes in CSCW research: A case of premature closure?
CN109542294A (zh) 意见反馈方法、装置与存储介质
CN103442060A (zh) 基于远程桌面本地应用访问方法及装置
CN104811752A (zh) 同一局域网内的多屏同步方法及播放***
CN110493122A (zh) 一种会话信息的同步方法、装置、计算设备及存储介质
CN103929377A (zh) 一种有线网络与无线网络联合调度方法、相关设备及***
CN109565462A (zh) 使用客户端数据库的复制进行消息收发的技术
CN109358941A (zh) 一种控制方法及电子设备
Basu et al. A reverse path-flow mechanism for latency aware controller placement in vsdn enabled 5g network
CN110913013A (zh) 多屏互动方法及***
CN105634909A (zh) 消息显示方法和消息显示装置
CN103986759A (zh) 基于网络传输的多人实时同步图形编辑及显示的方法
CN104618499B (zh) 一种信息处理方法及电子设备
WO2021120206A1 (zh) 页面展示方法、显示***及存储介质
CN110515489A (zh) 智能交互设备及其控制方法
CN102185870B (zh) 一种实现即时通讯与网络会议模式切换的方法及***
CN107070955A (zh) 一种电力***数据的传输方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20191011