用 VB 做屏幕监控的三座大山。。。你能克服吗?

来源:互联网 发布:软件测试报告的内容 编辑:程序博客网 时间:2024/05/29 05:12

前言:

现在大多VB做的屏幕监控都是一样的原理,截屏---发送---显示,这里我们不讨论具体细节,只分析思路。
以下讨论均建立在此基础上。。

第一座山  截屏

有2种方法,但其实是一样的。1 用BitBlt     2  模拟PRT键
无论哪一种,截屏的时候都很占系统资源
想要实时监控只有不断截屏,才能进行下面的操作,解决不了这个问题,什么都免谈。
我测试的结果是 P3 -1G的CPU即使设置TIMER为1秒,也会出现鼠标迟钝的现象。
现在解决这个问题的方法是:换个好点的CPU,至少P4 -2.4 以上。

第二座山 压缩

截屏得到的图象是BMP的,1280*800的分辨率截屏后得到的文件至少2.9M,如果不压缩,在INTERNET上根本没有用武之地。
怎么压缩呢?好吧,转换为JPG试试,恩,不错,能压到200K,呵呵,勉强可以用了。但是如果色差很大的话能上300K。在公网上传300K看一幅图片,P2P之间至少要15秒。下面不用我说了吧。。。

有位高人提示我可以用ZLIB压缩字节数组,我试了一下,和转换成JPG效果差不多,相差不超过120K。
用这种方法是暂时最理想的方法了,但延迟还是很严重,不到RADMIN的20%,而且要带个ZLIB.DLL,我个人觉得很不爽。
CSDN有位兄台改进了一个俄罗斯的算法(很厉害的),可以不用DLL在VB里压缩数组。根据网友的测试,只比ZLIB差一点。
似乎我只能选择它了。。。。。。。

其实还有一种方法:但现在没人能用纯VB做出来,就是对比二幅图片的差值,然后发送,如果能把这个做出来基本万事OK了

第二座山 传输

这座山是最小的!

在INTERNET的环境中,压缩后的数据肯定是要分包发送的,得考虑很多因素,稍微疏忽一下,一幅图象就不完整了还得重传。
也就是说一个完整的图象接收后才能SHOW到IMAGE里,又近一步增加了延迟。。。
如果能直接SHOW缓存里的数据那该多好。。。。

小生学疏才浅,望各位指教。。。

原创粉丝点击