VC下远程控制(桌面)的完整实现

源码位置在:http://download.csdn.net/detail/dijkstar/5564789,http://www.pudn.com/downloads552/sourcecode/windows/network/detail2276709.html

一、功能介绍:

分为两个软件,一个为【主机】,一个为【远程终端】。【远程终端】通过鼠标键盘可以控制【主机】程序;【主机】将界面传送到【远程终端】显示。

二、设计介绍:

① 【主机】端的界面位图传输功能使用的是《Visual C++C6.0技术内幕第五版》源码ex34a的Blocksock,这个TCP套接字类非常好用,因为带了“超时取消”功能,建议在工程中多多使用这样的类;

② 【主机】端的桌面位图捕获,见CopyBitmap、ToMemory两个函数,分为实现了获取桌面HBITMAP和将这个HBITMAP完整的按bitmap格式保存到内存中。ToMemory的第三个参数为像素颜色,可选择32、24、16、8,自己试一试,会占用不同的内存容量,建议取8,这样一幅800×600的位图不压缩时占用480K字节多;

③ 【主机】端的位图压缩,采用了开源项目miniLZO,这个开源压缩项目非常好用。经验证,一般界面下的位图,压缩后压缩比可以达到90%而且速度超快。这些比例数字都在程序中显示;

④ 鼠标键盘控制信息采用了低级钩子的方法获取,注意,低级钩子它们并不需要单独写DLL。这一部分参见http://blog.csdn.net/dijkstar/article/details/9007167(VC6捕获鼠标事件(移动、单击等)的一些总结(MFC消息、DriectInput、钩子)),说明了为什么要使用低级钩子来换取;

⑤ 鼠标键盘的控制信息传输采用了UDP,在Lan.cpp中实现;

⑥ 为了提高程序的健壮性,使用毫秒级的多媒体测时函数,测量发送、接收花费的时间,做到心中有数;

⑦ 【远程终端】把收到的压缩位图,解压后,使用函数GetHBmp得到HBIMAP,并使用一个位图控件做显示。


使用时,先将每个程序的IP地址设一下(每个程序有两处IP需要设,IP指的是都是对方的IP地址),先运行【远程终端】,再运行【主机】程序。




  • 1
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值