桌面共享是怎么实现的? 有没有人研究过,给个思路? 谢谢

解决方案 »

  1.   

    是共享另外一台机子的桌面吗?
    应该是远程监控方面的东东,把别人机子拷屏,socket传送到本地,显示出位图来
      

  2.   

    定时显示远程计算机的桌面http://www.vckbase.com/document/viewdoc/?id=1246
      

  3.   

    象NetMeeting里面那种效果的桌面共享, 连对方的鼠标的移动都能看到, 是传送图片吗? 传送图片我怀疑可能达不到这种速度吧?
      

  4.   

    看看netmeeting SDK的桌面共享的功能
      

  5.   

    netmeeting SDK是基于COM的开发,我想全部自已写代码实现, 想请教做过这方面东东的大侠,要实现它关键在什么地方?也就是怎么保证实时性和传输的信息量尽量少?
      

  6.   

    大的方面,就是图形+网络小细节:键盘Hook,鼠标Hook,  那边在不停的SendMessage,mouse_event
      

  7.   

    SendMessage,mouse_event 不知道是干什么用的?
      

  8.   

    去看看VNC吧,有源码,够你分析一阵子的。
    WWW.REALVNC.COM
      

  9.   

    谢谢楼上,我看了一下REALVNC,的确是强,不知道你分析过它的源码没有?给过大概思路,我想看但现在源码看起来还真让人有点生畏!
      

  10.   

    mirror driver不过这方面的资料很少,商家保密了。
      

  11.   

    采用什么协议无所谓,最主要的是能够捕获到屏幕的变化,并且快速截屏。NetMeeting采用的是内核驱动的方法(Mirror Driver),而vnc采用的是安装钩子的方法来实现捕获屏幕的变化的。
      

  12.   

    恩,我觉得比较理想的是Mirror Driver + Hook API + DirectX 来获取桌面
    Mirror Driver只支持Win2k/XP,98不支持,所以在98就必须要用Hook API
    另外上面的2个只能做到GDI的截图,如果你想传送由Windows Media Player播放的画面,就要用DirectX来获取显存传送了.其次就是数据压缩了,不过主要问题是解决实时获得桌面,这个问题解决了,其他的就好做了.键盘和鼠标方面用HOOK,Client Hook键盘和鼠标发送到Server并且吃掉这些消息,Server 接收到键盘和鼠标消息后调用keybd_event和mouse_event进行模拟,2k/xp下面还要注意那个Win键等系统键,否则Client按了Win键,Client自己的那个开始菜单也跳出来了...,问题就是mirror driver...我找了很久,都要钱的...
      

  13.   

    同意楼上的。我原来公司的东西就是这么做的.可以发送Windows Media Player播放的画面,使用DirectX来获取显存.压缩是当然的了.同时还基本可以显示屏幕保护,当然了,是在局域网.同时还可以实现登陆前遥控,就是用NT服务程序做的.
      

  14.   

    这种东西应该不用Driver吧
    直接mouse hook和keyboard hook,然后mouse_event和keyboard_event就行
    顺便ShowCursor,设置cursor的位置
      

  15.   

    NetMeeting和Windows Terminal Service使用RDP(Remote Desktop Protocal)进行通讯。对实现RDP客户端有兴趣的可以去微软找文档。RDP服务端的原理没有公开。
      

  16.   

    还是DirectX实际点,也比较实用,速度也不错。