WEB开发网
开发学院软件开发VC 基于套接字通信的远程截屏显示与控制技术 阅读

基于套接字通信的远程截屏显示与控制技术

 2008-05-31 21:39:12 来源:WEB开发网   
核心提示: recv(sktClient,(char*)&StopFlag,sizeof(int)+1,0);}(3)当屏幕位图数据不是刚好等于分块尺寸倍数的时候,用于处理余下的数据传送;if (ScrInfo.dwSize %SENDBLOCK)send(sktClient,(char*)plmag

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 结论

通过上述方式,客户端可以定时接收服务端当前的屏幕信息,同时服务端也可以对客户端的鼠标事件作出响应,从而实现本地机对目的机的远程控制。本显示控制技术已经被成功应用于电子测量仪器的远程监控系统中。

上一页  1 2 3 4 5 6 

Tags:基于 套接字 通信

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接