CN104683449B - 一种基于窗口结构的远程桌面控制方法 - Google Patents

一种基于窗口结构的远程桌面控制方法 Download PDF

Info

Publication number
CN104683449B
CN104683449B CN201510064709.2A CN201510064709A CN104683449B CN 104683449 B CN104683449 B CN 104683449B CN 201510064709 A CN201510064709 A CN 201510064709A CN 104683449 B CN104683449 B CN 104683449B
Authority
CN
China
Prior art keywords
main control
controlled terminal
control end
window
long
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
CN201510064709.2A
Other languages
English (en)
Other versions
CN104683449A (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.)
SHENZHEN YUNSHU NETWORK TECHNOLOGY Co Ltd
Original Assignee
SHENZHEN YUNSHU NETWORK TECHNOLOGY Co 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 SHENZHEN YUNSHU NETWORK TECHNOLOGY Co Ltd filed Critical SHENZHEN YUNSHU NETWORK TECHNOLOGY Co Ltd
Priority to CN201510064709.2A priority Critical patent/CN104683449B/zh
Publication of CN104683449A publication Critical patent/CN104683449A/zh
Application granted granted Critical
Publication of CN104683449B publication Critical patent/CN104683449B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明的一种基于窗口结构的远程桌面控制方法,其包括如下步骤:第一步,建立远程桌面控制连接:第二步,判断主控端和被控端是否处于同一局域网络中;第三步,若第二步中,判定主控端和被控端处于同一局域网中,则采用MirrorDriver驱动,进行远程桌面控制操作;第四步,若第二步中,判定主控端和被控端处于不同的局域网中,则对主控端和被控端的分辨率进行协商;第五步,采用基于窗口的图像数据变化算法,进行远程桌面控制操作。本发明的一种基于窗口结构的远程桌面控制方法,其占用CPU低,节约网络资源,实时性强。

Description

一种基于窗口结构的远程桌面控制方法
技术领域
本发明涉及计算机远程桌面控制技术领域,尤其涉及一种基于窗口结构的远程桌面控制方法。
背景技术
目前国内外著名的Windows远程桌面控制软件有TeamViewer,VNC,向日葵等,基本的屏幕传输数据流程大致相同如下:
首先,被控端获取桌面图像的变化数据;然后,被控端对获取的图像变化数据进行压缩然后发送给主控端;然后,主控端收到被控端发送过来的图像数据后解压,并将数据还原出来,显示在某个窗口中;再然后,主控端将窗口上的鼠标和键盘以及输入法的输入发给被控端;最后,被控端收到主控端的鼠标和键盘消息的时候,使用系统的API来模拟鼠标键盘在本地的动作。实现远程桌面控制。
无论使用哪一种远程桌面控制软件,如何高效地抓取桌面的变化部分并在有限的带宽进行快速有效地传输一直是这个领域在解决和优化的主题,目前关于如何有效获取图像的变化数据主要做法有三种:
其一,通过系统的API定时抓取整个桌面的图像(如Windows下的BitBlt),通过比较出变化的部分,然后将变化的数据发送给主控端。这种方式的缺点是靠定时获取桌面的图像来计算出桌面的变化区域,这种方式比较被动,不管桌面上的数据是否存在变化,都要有一个抓屏的动作,且刷新频率较难控制,如果刷新频率过快,则被控端的CPU会很高,如果刷新频率较低,则获取变化数据的实时性不够。
其二,通过windows的钩子来捕获windows下图像相关的刷新消息,然后检查刷新区域是否变化,有变化就将变化的图像数据进行压缩发送。这种做法克服了第一种方法的被动抓图的缺点,靠钩子钩到的事件来获取需要检查是否发生图像变化的区域,但是存在的问题就是有些事件获取不到,如word中的插入符等。
其三,通过Mirror Driver的驱动,在MirrorDriver里面获取windows的屏幕数据,然后发给被控端的应用程序进行处理。这种方式也属于主动抓图,在局域网里播放视频的时候效果最好且占用CPU较低,但是产生的数据流很大,一旦在外网模式下带宽有限,在远程操作的实时性上效果不会太好。
发明内容
本发明的目的在于提供一种基于窗口结构的远程桌面控制方法,其解决了目前远程桌面控制占用网络资源多,实时性差的技术问题。
为达到上述目的,本发明所提出的技术方案在基于对远程控制的行为进行分析统计基础上,得出如下结论:
用户控制的单位以窗口为单位,平时的操作主要有窗口移动,窗口创建、关闭,窗口大小变化,窗口显示顺序调整等。
在此结论的基础上本发明提出一种基于窗口结构的远程桌面控制方法,其包括如下步骤:
第一步,建立远程桌面控制连接:
主控端向被控端发起远程桌面控制请求,并且建立网络通信连接;
第二步,判断主控端和被控端是否处于同一局域网络中;
第三步,若第二步中,判定主控端和被控端处于同一局域网中,则采用MirrorDriver驱动,进行远程桌面控制操作:
第四步,若第二步中,判定主控端和被控端处于不同的局域网中,则对主控端和被控端的分辨率进行协商;
第五步,采用基于窗口的图像数据变化算法,进行远程桌面控制操作。
其中,所述第二步判断主控端和被控端是否处于同一局域网,包括如下步骤:
第一步,被控端将子网掩码,局域网IP和局域网连接端口上报服务器;
第二步,主控端将其子网掩码上报服务器;
第三步,判断主控端和被控端的外网IP是否相同,若不同,则二者处于外网;
第四步,若第三步中,主控端和被控端的外网IP相同,则进一步判断子网掩码是否相同,相同则二者处于同一局域网,反之则二者处于外网。
其中,所述的第五步,基于窗口的数据图像变化算法包括如下步骤:
第一步,初始化信息窗口;
第二步,挂载钩子;
第三步,采用MirrorDriver获取桌面数据;
第四步,当主控端和被控端断开连接时,卸载钩子,并销毁窗口数据。
其中,所述第四步中的分辨率协商算法如下:协商后的分辨率为(W4,H4);其中W4=W1*Scale3,H4=H1*Scale3;Scale3为W3/W1和H3/H1之中较小值;W3为W1和W2之中较小值,H3为H1和H2之中较小值;其中被控端分辨率为(W1,H1);主控端分辨率为(W2,H2)。
其中,所述的初始化信息窗口的步骤中,桌面控制的过程中以窗口数据作为传输单元。
与现有技术相比,本发明的一种基于窗口结构的远程桌面控制方法,其占用CPU低,节约网络资源,实时性强。
附图说明
图1为本发明一种基于窗口结构的远程桌面控制方法的流程图;
图2为本发明一种基于窗口结构的远程桌面控制方法的判定主控端和被控端是否处于同一网络的流程图;
图3为本发明一种基于窗口结构的远程桌面控制方法的基于窗口信息的图像数据变化算法的流程图。
具体实施方式
以下参考附图,对本发明予以进一步地详尽阐述。
请参阅图1,本发明的一种基于窗口结构的远程桌面控制方法,其包括如下步骤:
第一步S1,建立远程桌面控制连接:
当主控端向被控端发起远程桌面控制请求时,二者之间建立网络通信连接,准备进行远程控制;
第二步S2,判断主控端和被控端是否处于同一局域网络中;通过判断主控端和被控端是否处于同一网络,从而选择不同的远程控制方式,从而使网络资源使用更加合理高效;
第三步S31,若第二步S2中,判定主控端和被控端处于同一局域网中,则采用MirrorDriver驱动,进行远程桌面控制操作:在MirrorDriver里面获取windows的屏幕数据,然后发给被控端的应用程序进行处理。
第四步S3,若第二步S2中,判定主控端和被控端处于不同的局域网中,则对主控端和被控端的分辨率进行协商;
第五步S4,采用基于窗口的图像数据变化算法,进行远程桌面控制操作。
请参阅附图2,更具体的,首先,根据主动端和被控端是否处于同一个网络动态选择桌面图像抓取算法。在主控端对被控端进行连接的时候,先检查主控端和被控端是否处于同一个网络,即判断主控端和被控端是否处于同一局域网中。具体的判定主控端和被控端是否处于同一局域网的方法如下:
第一步S11,被控端登陆服务器的时候,同时将自己的子网掩码、局域网IP地址、局域网的连接等端口报上去,服务端可以根据客户端的登陆IP请求,自动获取到被控电脑的外网IP地址。
第二步S12,主控端要与被控端进行连接的时候,也将主控端的子网掩码报上去,服务器同样可以自动获取主控端的外网IP地址。
第三步S13,服务端收到主控端的连接请求的时候,判断主控端和被控端的外网IP地址是否相同,如果不同,则他们之间的连接方式是外网,即S141判定主控端和被控端处于不同的网络中;如果相同则进一步检查子网掩码S14,如果子网掩码相同则说明主控端和被控端处于同一局域网S15中,若子网掩码不同则用主控端端和被孔段处于外网通信模式S151。服务器确定连接方式后,给主控端一个应答,告知其用什么方式来连接,如果是局域网则告知其被控端的局域网IP和局域网等待端口。如果是外网则告知主控端和被控端外网服务器的IP地址和端口。
如果主控端和被控端处于一个局域网,则根据局域网的特点选择MirrorDriver的方式来获取桌面数据。其中所述的MirrorDriverd的工作过程为:Windows中所有显示器上的输出,都是要输出到显卡中,要显示的像素都存储在显卡缓冲区中,而显卡缓冲区的数据主要是通过windows的光栅API操作而来,如不同画笔的画线动作,不同颜色的填充操作等。MirrorDriver的作用就是开辟一片内存,当windows的驱动中收到具体的光栅动作时,除了在向卡缓冲区上生成数据外,还能在MirrorDriver的缓冲区生成相应的数据。这种方式是在驱动级别获取桌面并且可以捕获到所有的光栅操作及参数,基于这些参数就可以提取到屏幕的刷新区域。
如果主控端和被控端处于外网中,则首先对主控端和被控端的分辨率进行协商。
首先,根据主控端和被控端的分辨率来做分辨率协商,确定一个适合主控端的最佳分辨率,设定被控端的分辨率为(W1,H1),主控端的工作区的分辨率为(W2,H2),具体的计算算法如下:
首先,比较W1和W2,W3=较小的那个值;
再比较H1和H2,H3=较小的那个值。
然后,W3除以W1得到缩放系数Scale1,H3除以H1得到缩放系数Scale2;比较Scale1和Scale2取小的那个值即为Scale3的值。
最后,W1乘上Scale3得到W4,H1乘上Scale3得到H4,W4和H4即为双方协商的分辨率。
在公网上被控端根据主控端的分辨率,进行分辨率协商,确定一个新的分辨率作为截图的分辨率。
通常情况下,不同的接入设备分辨率和被控端的分辨率不一样,如Android和IOS,因此没有必要传输的时候按照被控端的分辨率来传输,一种比较合适的做法就是在正式传输桌面数据前,先将主控设备的分辨率发给被控端,被控端根据主控端发送过来的分辨率和自己当前的分辨率进行一个计算,算出一个一个比较合适的缩小系数,然后发给被户端,以后被控端所有发送的图像数据,都基于这个协商后的分辨率来发送。这样的优点是当主控端和被控端的分辨率差别较大的时候,协商出来的分辨率能够让手机控制时,使分辨率更符合手机,另外一个优点就是可以有效地减少图像在公网上的传输数据大小,因为分辨率小了,传输的数据量自然就少了。
在公网远程控制上使用基于窗口信息的图像数据变化算法,进行远程桌面控制操作。
桌面窗口上的数据分为两个个区域:任务栏和工作区,其中工作区是显示应用程序窗口的地方。
在公网上基于窗口信息的算法,是基于用户操作界面的单位是窗口这样一个条件建立的,窗口包含的基本属性,包括窗口的大小,位置(左上角坐标及Z序)、窗口的缓冲区等,具体的算法步骤包括如下几步:
第一步T1,初始化窗口信息。该步骤当主控端开始连接的时候,被控端将桌面上已经打开的可见窗口的基本信息获取,并通过自定义的协议将这些窗口数据发给主控端,主控端收到这些信息后就可以将当前的桌面绘制出来。被控端发过来的消息是基于窗口结构的,包括创建窗口,窗口移动,窗口销毁,窗口数据更新,窗口Z序变化,窗口最大化最下化等。在初始化的过程中,被控端会发送窗口的图像数据等信息给主控端,发完后发送一条桌面刷新命令。其中,所述的初始化信息窗口的步骤中,桌面控制的过程中以窗口数据作为传输单元。
主控端收到这些消息后,建立相应的窗口缓冲区,并记下相关的窗口属性。当收到窗口刷新消息的时候,按照Z序将相关的窗口的像素数据在一个主控端屏幕那么大的缓冲区上复制一遍,然后通知界面显示。
第二步T2,挂载钩子。钩子就是windows下的一种机制,windows下所有的窗口都是靠消息循环来驱动的,钩子就是在消息循环中在处理前或者处理后拦截到这些消息和这些消息对应的参数。通过钩子来检测具体的窗口事件,如窗口移动,窗口状态变化(最大化、最小化,窗口销毁等)。
第三步T3,为了随时可以获取到某个坐标位置的最新桌面图像并让抓图的CPU占用量小,则采用MirrorDriver来获取桌面数据,这种方式会比通过BitBlt的方式节省CPU占用率。在驱动级别获取窗口刷新局域,将刷新的局域和原来窗口缓冲区的数据进行比较,如果发生变化就按新的区域向主控端发送图像更新请求。窗口变化事件的检测,当钩子中捕获到窗口相关的具体事件后,将这些信息发给被控端程序,被控端负责修改窗口的相关属性,并将变化事件通过自定义协议发给主控端,主控端进行相关窗口缓冲区的重新计算,绘制出最新的被控端界面。这些事件包括窗口移动、窗口图像变化数据、窗口销毁等。
第四步T4,当被控端收到主控端断开连接消息时,先卸载钩子然后销毁所有窗口数据。
上述内容,仅为本发明的较佳实施例,并非用于限制本发明的实施方案,本领域普通技术人员根据本发明的主要构思和精神,可以十分方便地进行相应的变通或修改,故本发明的保护范围应以权利要求书所要求的保护范围为准。

Claims (5)

1.一种基于窗口结构的远程桌面控制方法,其特征在于,包括如下步骤:
第一步,建立远程桌面控制连接:
主控端向被控端发起远程桌面控制请求,并且建立网络通信连接;
第二步,判断主控端和被控端是否处于同一局域网络中;
第三步,若第二步中,判定主控端和被控端处于同一局域网中,则采用MirrorDriver驱动,进行远程桌面控制操作:
第四步,若第二步中,判定主控端和被控端处于不同的局域网中,则对主控端和被控端的分辨率进行协商;
第五步,采用基于窗口的图像数据变化算法,进行远程桌面控制操作。
2.如权利要求1所述的基于窗口结构的远程桌面控制方法,其特征在于,所述第二步判断主控端和被控端是否处于同一局域网,包括如下步骤:
第一步,被控端将子网掩码,局域网IP和局域网连接端口上报服务器;
第二步,主控端将其子网掩码上报服务器;
第三步,判断主控端和被控端的外网IP是否相同,若不同,则二者处于外网;
第四步,若第三步中,主控端和被控端的外网IP相同,则进一步判断子网掩码是否相同,相同则二者处于同一局域网,反之则二者处于外网。
3.如权利要求1所述的基于窗口结构的远程桌面控制方法,其特征在于,所述的第五步,基于窗口的图像数据变化算法包括如下步骤:
第一步,初始化信息窗口;
第二步,挂载钩子;
第三步,采用MirrorDriver获取桌面数据;
第四步,当主控端和被控端断开连接时,卸载钩子,并销毁窗口数据。
4.如权利要求1所述的基于窗口结构的远程桌面控制方法,其特征在于,所述第四步中的分辨率协商算法如下:协商后的分辨率为(W4,H4);其中W4=W1*Scale3,H4=H1*Scale3;Scale3为W3/W1和H3/H1之中较小值;W3为W1和W2之中较小值,H3为H1和H2之中较小值;其中被控端分辨率为(W1,H1);主控端分辨率为(W2,H2)。
5.如权利要求3所述的基于窗口结构的远程桌面控制方法,其特征在于,所述的初始化信息窗口步骤中,桌面控制的过程中以窗口数据作为传输单元。
CN201510064709.2A 2015-02-05 2015-02-05 一种基于窗口结构的远程桌面控制方法 Expired - Fee Related CN104683449B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510064709.2A CN104683449B (zh) 2015-02-05 2015-02-05 一种基于窗口结构的远程桌面控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510064709.2A CN104683449B (zh) 2015-02-05 2015-02-05 一种基于窗口结构的远程桌面控制方法

Publications (2)

Publication Number Publication Date
CN104683449A CN104683449A (zh) 2015-06-03
CN104683449B true CN104683449B (zh) 2017-12-12

Family

ID=53318018

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510064709.2A Expired - Fee Related CN104683449B (zh) 2015-02-05 2015-02-05 一种基于窗口结构的远程桌面控制方法

Country Status (1)

Country Link
CN (1) CN104683449B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105610857A (zh) * 2016-01-26 2016-05-25 杭州德澜科技有限公司 一种自动识别本地与远程网络的方法
CN114706642B (zh) * 2022-03-25 2023-07-25 曲阜师范大学 一种基于网页命令行与子图快速匹配的远程桌面操作方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101447998A (zh) * 2008-12-25 2009-06-03 广东威创视讯科技股份有限公司 桌面共享方法及系统
CN101764989A (zh) * 2009-11-05 2010-06-30 广东威创视讯科技股份有限公司 本地计算机桌面图像通过视频会议系统远程显示的装置
CN103763610A (zh) * 2013-12-27 2014-04-30 华为技术有限公司 一种远程桌面的重定向方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8140610B2 (en) * 2007-05-31 2012-03-20 Microsoft Corporation Bitmap-based display remoting
US7831661B2 (en) * 2008-12-18 2010-11-09 Vmware, Inc. Measuring client interactive performance using a display channel

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101447998A (zh) * 2008-12-25 2009-06-03 广东威创视讯科技股份有限公司 桌面共享方法及系统
CN101764989A (zh) * 2009-11-05 2010-06-30 广东威创视讯科技股份有限公司 本地计算机桌面图像通过视频会议系统远程显示的装置
CN103763610A (zh) * 2013-12-27 2014-04-30 华为技术有限公司 一种远程桌面的重定向方法及装置

Also Published As

Publication number Publication date
CN104683449A (zh) 2015-06-03

Similar Documents

Publication Publication Date Title
US20100077085A1 (en) Systems and method for configuring display resolution in a terminal server environment
KR100772875B1 (ko) 사용자 선호도에 따른 사용자 인터페이스를 설정하는 장치및 그 방법
CN102750067B (zh) 一种基于手持设备的大屏幕交互方法
WO2007007949A1 (en) A method and system of computer remote control that optimized for low bandwidth network and low level personal communication terminal device
CN110493269B (zh) 一种Web远程Docker容器桌面的方法
CN112114928B (zh) 显示页面的处理方法和装置
CN106330986B (zh) 消息传输方法及装置
CN103856793B (zh) 媒体内容缓冲
WO2015184770A1 (zh) 一种信息处理方法、系统及终端
CN104683449B (zh) 一种基于窗口结构的远程桌面控制方法
CN104253804B (zh) 一种传输图像数据的方法及装置
CN108347452A (zh) 远程获取屏幕截图的方法及装置
CN111741353A (zh) 设备协同工作的方法、终端设备及可读存储介质
JP5695597B2 (ja) 画面表示装置及び画面表示システム
CN103593046B (zh) 信息处理装置、投影装置、信息处理方法以及投影方法
CN103560933B (zh) 实现无显示器截取或/和录制图像的方法、装置及系统
US20170372681A1 (en) Method, apparatus, and storage medium
JP2016103117A (ja) 情報処理装置、端末装置、画像表示システムおよび画像送信プログラム
CN106790453B (zh) 一种操作请求的执行方法及装置
CN115586882A (zh) 多设备投屏处理方法、装置和电子设备
CN106375804A (zh) 移动端同步模拟智能设备界面的改良方法
CN103777993A (zh) 一种多用户计算机系统
CN106302631B (zh) 一种分享内容的方法和系统
JP5504370B1 (ja) 動画をクライアント端末に表示させるサーバ及び方法
CN107634955A (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
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Remote desktop control method based on window structure

Effective date of registration: 20180829

Granted publication date: 20171212

Pledgee: He Chunzhe

Pledgor: Shenzhen Yunshu Network Technology Co., Ltd.

Registration number: 2018980000150

PE01 Entry into force of the registration of the contract for pledge of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171212

Termination date: 20210205

CF01 Termination of patent right due to non-payment of annual fee