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

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

 2008-05-31 21:39:12 来源:WEB开发网   
核心提示: Winsock套接字主要工作流程如图1,①~⑩标识网络数据交换顺序,基于套接字通信的远程截屏显示与控制技术(3),图1 Winsock套接字主要工作流程2 远程截取屏幕显示服务端在接收到客户端的屏幕数据请求后,通过使用当前屏幕设备的句柄,从而确定截取屏幕的范围;ScreenX=GetSys

Winsock套接字主要工作流程如图1,①~⑩标识网络数据交换顺序。

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

图1 Winsock套接字主要工作流程

2 远程截取屏幕显示

服务端在接收到客户端的屏幕数据请求后,通过使用当前屏幕设备的句柄,开始向开辟的内存区域复制屏幕数据,得到与设备相关的GDI位图;然后再通过设置位图信息头、调色板等,最后得到与设备无关的DIB位图。

2.1获取当前屏幕的设备相关位图[3](DDB)

设备相关位图(DDB)也称为图形设备接口(GDI)位图,在MFC库中用CBitmap类来存储。该对象包含与设备相关的GDI模块数据结构。应用程序在截获屏幕显示数据的时候,将数据填充到开辟的相容性内存区域中,并与CBitmap对象的句柄建立关联,从而得到GDI位图数据的备份。但由于GDI位图中关于位的安排完全依赖于显示设备,在不同类型计算机间传递GDI位图是没有意义的。所以还需要进一步转化,得到设备无关位图DIB。

(1)得到当前屏幕的分辨率,从而确定截取屏幕的范围;

ScreenX=GetSystemMetrics(SM_CXSCREEN);

ScreenY=GetSystemMetrics(SM_CYSCREEN);

(2)得到屏幕HDC,并开辟相容性内存区域,建立相容性的HBITMAP;

HDC hdcmy=CreateDC("DISPLAY",NULL,NULL, NULL);

HDC hbufdc=CreateCompatibleDC(hdcmy);

HBITMAP hBit=CreateCompatibleBitmap(hdcmy, ScreenX,ScreenY);

(3)将当前屏幕内容复制到之前开辟的内存区域中,得到当前屏幕的GDI位图;

HBITMAP hOldBitmap=(HBITMAP)SelectObject(hbufdc,hBit);

上一页  1 2 3 4 5 6  下一页

Tags:基于 套接字 通信

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