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

文档序号:8365565阅读:564来源:国知局
一种基于窗口结构的远程桌面控制方法
【技术领域】
[0001]本发明涉及计算机远程桌面控制技术领域,尤其涉及一种基于窗口结构的远程桌面控制方法。
【背景技术】
[0002]目前国内外著名的Windows远程桌面控制软件有TeamViewer,VNC,向日葵等,基本的屏幕传输数据流程大致相同如下:
[0003]首先,被控端获取桌面图像的变化数据;然后,被控端对获取的图像变化数据进行压缩然后发送给主控端;然后,主控端收到被控端发送过来的图像数据后解压,并将数据还原出来,显示在某个窗口中;再然后,主控端将窗口上的鼠标和键盘以及输入法的输入发给被控端;最后,被控端收到主控端的鼠标和键盘消息的时候,使用系统的API来模拟鼠标键盘在本地的动作。实现远程桌面控制。
[0004]无论使用哪一种远程桌面控制软件,如何高效地抓取桌面的变化部分并在有限的带宽进行快速有效地传输一直是这个领域在解决和优化的主题,目前关于如何有效获取图像的变化数据主要做法有三种:
[0005]其一,通过系统的API定时抓取整个桌面的图像(如Windows下的BitBlt),通过比较出变化的部分,然后将变化的数据发送给主控端。这种方式的缺点是靠定时获取桌面的图像来计算出桌面的变化区域,这种方式比较被动,不管桌面上的数据是否存在变化,都要有一个抓屏的动作,且刷新频率较难控制,如果刷新频率过快,则被控端的CPU会很高,如果刷新频率较低,则获取变化数据的实时性不够。
[0006]其二,通过windows的钩子来捕获windows下图像相关的刷新消息,然后检查刷新区域是否变化,有变化就将变化的图像数据进行压缩发送。这种做法克服了第一种方法的被动抓图的缺点,靠钩子钩到的事件来获取需要检查是否发生图像变化的区域,但是存在的问题就是有些事件获取不到,如word中的插入符等。
[0007]其三,通过Mirror Driver的驱动,在MirrorDriver里面获取windows的屏幕数据,然后发给被控端的应用程序进行处理。这种方式也属于主动抓图,在局域网里播放视频的时候效果最好且占用CPU较低,但是产生的数据流很大,一旦在外网模式下带宽有限,在远程操作的实时性上效果不会太好。

【发明内容】

[0008]本发明的目的在于提供一种基于窗口结构的远程桌面控制方法,其解决了目前远程桌面控制占用网络资源多,实时性差的技术问题。
[0009]为达到上述目的,本发明所提出的技术方案在基于对远程控制的行为进行分析统计基础上,得出如下结论:
[0010]用户控制的单位以窗口为单位,平时的操作主要有窗口移动,窗口创建、关闭,窗口大小变化,窗口显示顺序调整等。
[0011]在此结论的基础上本发明提出一种基于窗口结构的远程桌面控制方法,其包括如下步骤:
[0012]第一步,建立远程桌面控制连接:
[0013]主控端向被控端发起远程桌面控制请求,并且建立网络通信连接;
[0014]第二步,判断主控端和被控端是否处于同一局域网络中;
[0015]第三步,若第二步中,判定主控端和被控端处于同一局域网中,则采用MirrorDriver驱动,进行远程桌面控制操作:
[0016]第四步,若第二步中,判定主控端和被控端处于不同的局域网中,则对主控端和被控端的分辨率进行协商;
[0017]第五步,采用基于窗口的图像数据变化算法,进行远程桌面控制操作。
[0018]其中,所述第二步判断主控端和被控端是否处于同一局域网,包括如下步骤:
[0019]第一步,被控端将子网掩码,局域网IP和局域网连接端口上报服务器;
[0020]第二步,主控端将其子网掩码上报服务器;
[0021]第三步,判断主控端和被控端的外网IP是否相同,若不同,则二者处于外网;
[0022]第四步,若第三步中,主控端和被控端的外网IP相同,则进一步判断子网掩码是否相同,相同则二者处于同一局域网,反之则二者处于外网。
[0023]其中,所述的第五步,基于窗口的数据图像变化算法包括如下步骤:
[0024]第一步,初始化信息窗口 ;
[0025]第二步,挂载钩子;
[0026]第三步,采用MirrorDriver获取桌面数据;
[0027]第四步,当主控端和被控端断开连接时,卸载钩子,并销毁窗口数据。
[0028]其中,所述第四步中的分辨率协商算法如下:协商后的分辨率为(W4,H4);其中W4=Wl*Scale3,H4 = Hl*Scale3 ;Scale3 为 W3/W1 和 H3/H1 之中较小值;W3 为 Wl 和 W2 之中较小值,H3为Hl和H2之中较小值;其中被控端分辨率为(Wl,Hl);主控端分辨率为(W2,H2)。
[0029]其中,所述的初始化信息窗口的步骤中,桌面控制的过程中以窗口数据作为传输单元。
[0030]与现有技术相比,本发明的一种基于窗口结构的远程桌面控制方法,其占用CPU低,节约网络资源,实时性强。
【附图说明】
[0031]图1为本发明一种基于窗口结构的远程桌面控制方法的流程图;
[0032]图2为本发明一种基于窗口结构的远程桌面控制方法的判定主控端和被控端是否处于同一网络的流程图;
[0033]图3为本发明一种基于窗口结构的远程桌面控制方法的基于窗口信息的图像数据变化算法的流程图。
【具体实施方式】
[0034]以下参考附图,对本发明予以进一步地详尽阐述。
[0035]请参阅图1,本发明的一种基于窗口结构的远程桌面控制方法,其包括如下步骤:
[0036]第一步SI,建立远程桌面控制连接:
[0037]当主控端向被控端发起远程桌面控制请求时,二者之间建立网络通信连接,准备进行远程控制;
[0038]第二步S2,判断主控端和被控端是否处于同一局域网络中;通过判断主控端和被控端是否处于同一网络,从而选择不同的远程控制方式,从而使网络资源使用更加合理高效;
[0039]第三步S31,若第二步S2中,判定主控端和被控端处于同一局域网中,则采用MirrorDriver驱动,进行远程桌面控制操作:在MirrorDriver里面获取windows的屏幕数据,然后发给被控端的应用程序进行处理。
[0040]第四步S3,若第二步S2中,判定主控端和被控端处于不同的局域网中,则对主控端和被控端的分辨率进行协商;
[0041]第五步S4,采用基于窗口的图像数据变化算法,进行远程桌面控制操作。
[0042]请参阅附图2,更具体的,首先,根据主动端和被控端是否处于同一个网络动态选择桌面图像抓取算法。在主控端对被控端进行连接的时候,先检查主控端和被控端是否处于同一个网络,即判断主控端和被控端是否处于同一局域网中。具体的判定主控端和被控端是否处于同一局域网的方法如下:
[0043]第一步S11,被控端登陆服务器的时候,同时将自己的子网掩码、局域网IP地址、局域网的连接等端口报上去,服务端可以根据客户端的登陆IP请求,自动获取到被控电脑的外网IP地址。
[0044]第二步S12,主控端要与被控端进行连接的时候,也将主控端的子网掩码报上去,服务器同样可以自动获取主控端的外网IP地址。
[0045]第三步S13,服务端收到主控端的连接请求的时候,判断主控端和被控端的外网IP地址是否相同,如果不同,则他们之间的连接方式是外网,即S141判定主控端和被控端处于不同的网络中;如果相同则进一步检查子网掩码S14,如果子网掩码相同则说明主控端和被控端处于同一局域网S15中,若子网掩码不同则用主控端端和被孔段处于外网通信模式S151。服务器确定连接方式后,给主控端一个应答,告知其用什么方式来连接,如果是局域网则告知其被控端的局域网IP和局域网等待端口。如果是外网则告知主控端和被控端外网服务器的IP地址和端口。
[0046]如果主控端和被控端处于一个局域网,则根据局域网的特点选择MirrorDriver的方
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1