一直想自己做点什么事情,终于有时间可以写些的软件了。凭心而论,我爱这一行,不过由于各种原因,或多或少的会感受到自己的才能没有被用到,所以我以这样的方式实现我的软件梦。以下便是开发一个简易远程控制程序的历程。稍后我会把代码发布到 CSDN 上。好,进入正题。
很明显要实现一个远程控制程序必须有以下功能:
一、捕捉屏幕
捕捉屏幕,也就是抓屏,一般有三种方式,分别是
1. GDI 函数
2. DirectX 方式
3. Windows Media API
我选择 GDI 函数,主要是原因是简单, 上到处是源码,以后有时间再做优化。
二、 络传输
通信双方的交互如下,这就需要先定义好消息头,还要准备一些通信代码(
服务器 客户端
桌面图像 —————————–>
对于以何种方式压缩图像有很多种选择,比如 H264, JPG, (什么你用 BMP我晕),这里我认为 JPG比较合适。理由是这样的,一般桌面大小是 1280X720(至少我是),如果使用 H264,服务器 CPU 将花费大量时间做这事,客户端 CPU 还要解码(当然 JPG 也需要),当然这也得看帧率等等(由于前面采用 GDI 抓屏,比较消耗资源,而且桌面一般不会有太大变动,所以我们可以降低抓屏的频率,比如降到 10帧每秒)。使用 Intel 的 ijl 库,ijl 库压缩的时候没有内存泄露,解压的时间长了就会内存泄露。
四、键鼠响应
使用 mouse_event 和 keybd_event 在服务器实现点击鼠标和敲击键盘的功能。
五、隐藏服务器界面
你总不希望服务器界面占着屏幕的一部分吧。
六、侦测服务器
使用 UDP 广播发现服务器,仅仅在局域 内可使用,毕竟我不是写黑客软件,仅仅是用来自娱自乐的。
代码放到了这里。
程序可能有些小 BUG,不过,目的也是给人以参考的,主要功能都实现了。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!