基于套接字通信的远程截屏显示与控制技术
2008-05-31 21:39:12 来源:WEB开发网recv(sktClient,(char*)&StopFlag,sizeof(int)+1,0);}
(3)当屏幕位图数据不是刚好等于分块尺寸倍数的时候,用于处理余下的数据传送;
if (ScrInfo.dwSize %SENDBLOCK)
send(sktClient,(char*)plmagePoint,ScrInfo.dwSize%SENDBLOCK,0);
3.3客户端拼接屏幕数据并显示图像
客户端的屏幕数据拼接程序,刚好与服务端的屏幕数据切分程序相对应,首先是接收屏幕位图相关信息,然后按照指定的分块大小接收屏幕数据,最后将小于分块尺寸的屏幕数据单独进行接收处理,得到服务端完整的一次屏幕数据,位图采用StretchDIBits函数显示。
StretchDIBits(dc,0,0,rect.right,rect.bottom,0,0,
((LPBITMAPINFOHEADER)SvrData)->biWidth,
((LPBITMAPINFOHEADER)SvrData)->biHeight,
(LPBYTE)SvrData+(sizeof(BITMAPINFOHEADER)+color*sizeof(RGBQUAD)),
(LPBITMAPINFO)SvrData,DIB_RGB_COLORS,SRCCOPY);
3.4服务端响应客户端的鼠标事件
当使用鼠标点击客户端中显示服务端当前屏幕的区域,客户端程序将会记录下具体的左/右键,单/双击,X/Y坐标位置等信息,作为鼠标事件发送给服务端,服务端随后进行解析,并作出相应的响应,从而实现客户端得到服务端屏幕并加以控制的功能。
mouse_event(MOUSEEVENTF_LEFTDOWN ,0,0,0,GetMessageExtraInfo());
4 结论
通过上述方式,客户端可以定时接收服务端当前的屏幕信息,同时服务端也可以对客户端的鼠标事件作出响应,从而实现本地机对目的机的远程控制。本显示控制技术已经被成功应用于电子测量仪器的远程监控系统中。
- ››基于IP地址的vsftp服务器
- ››基于MySQL 水平分区的优化示例
- ››基于CentOS5的Linux下pptp和openvpn的搭建及配置
- ››基于JavaScript的网页版塔防游戏
- ››基于Android平台 QQ大战360手机游戏爆红
- ››基于Windows Azure的云计算应用设计
- ››基于AES算法实现对数据的加密
- ››基于SoPC目标板Flash编程设计的创建及应用
- ››基于SolidWarks齿轮机构的运动分析与仿真
- ››基于Windwos Server 2008故障转移群
- ››基于JavaScript的REST客户端框架
- ››基于JavaScript和CSS的Web图表框架横向对比
更多精彩
赞助商链接