socket应用(二) 用C语言写远程屏幕监视程序

本文分享了一款使用C语言编写的远程屏幕监视程序。程序基于服务器和客户端模式,服务器端通过API获取屏幕信息并发送给客户端,客户端接收数据并在本地显示。服务器端主要涉及屏幕信息采集、数据发送,客户端则负责数据接收和显示。
摘要由CSDN通过智能技术生成

      前一段时间写了一个可以远程监视对方屏幕的程序,拿来分享。关键代码在资源里http://download.csdn.net/user/sophisticated

      该系统采用服务器和客户端模式。

      首先是服务器和客户端的连接,这一部分在(socket应用一)中已经详细说明了,不再详述。

      接下来就是数据的发送和接收了,服务器负责采集屏幕信息,向客户端发送,客户端负责接收数据,将其显示在屏幕上。

      服务器端:首先是屏幕信息的采集,调用系统API【GetDC】,参数传入桌面窗口的句柄,即【GetDesktopWindow】的返回值,得到屏幕的DC,为了将数据保存下来以便操作,在内存中创建一个兼容DC,调用函数【CreateCompatibleDC】,将上面得到的DC作为参数传入,得到兼容DC的句柄。其实如果不是要传输而是在本地窗口上显示屏幕的话,就不用创建兼容DC,而直接调用【StretchBlt】就可以显示桌面了。为了得到位图信息,还得创建一个兼容位图,这个位图是用来保存屏幕位图的信息的,存在于内存中,其实屏幕的显示就是一幅位图,这幅位图保存在屏幕窗口的DC中,我们要做的就是将这幅位图复制出来,放到我们创建的兼容DC,即内存DC中,然后发送出去。创建兼容位图要调用【CreateCompatibleBitmap】,传入参数依然为屏幕DC,得到兼容位图的句柄。为了使兼容DC和兼容位图联系起来,我们调用【SelectObject】将其选入兼容DC中,下来就是要复制屏幕DC中

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值