黑客DELPHI(200分)

  • 主题发起人 主题发起人 star.yu
  • 开始时间 开始时间
用DELPHI中的JPEG来完成,过程如下
一个屏幕一般也有30到60K
这因该是最好的压缩率了!!
要再降的话,要想其它的办法.


 
FlyKnight2>JPG压缩有损啊
其实可以直接将BMP压缩,既保持了清晰度,压缩也比较小.
如果连鼠标形状一起抓的话,每副大概8-12KB(WIN98下实验的结果)
 
黑客工具的想法,
对很多东西都是有帮助的,
比如网络教学中的老师机与学生机
 
可不可以将图象点阵放到数组里,这样就容易跟踪和传输图象的变化了。
 
好久没有上来。原来大家在讨论这个问题,呵呵。
看了大家的讨论,收益菲浅。
前几天我也写了一个这样的东东,屏幕抓取是其中的一个功能。
我觉得有以下几个东西值得总结:
1:屏幕传输为什么会慢。数据量过大是肯的。我在写程序的时候就碰到该问题。我想做到象
pcanywhere的屏幕同步样,我想可能是这样:
A,使用增量算法,只是将变化的部分导入。如:host的机器的"开始"被击中,那么,
变化的部分应该只有一部分,如此速度应该是快的。
B,pcAnyWhere的银幕同步问题。
我估计做法如下(我自己也在试验):
a,Host(or Client)鼠标位置,事件变化,获得位置以及事件的发生
(也就是Chenlili所谓的Hook掉)
b,Set Client(or Host )的鼠标信息
c,传输目标SCreen的变化的数据
d,增量变化,重写SCreen的BMP

上面是我的一些想法,请大家指点。

另外,请有netMeeting的SDK的大虾给我发一分:liuJack@liu.com.cn 谢谢先。
 
你们看过lotus ScreenCap 吗?就是这种原理!它只是记录动作细节,以及某些必要的位图
 
有幸拿到PCANYWHERE 早期的作品的部分代码, 是抓一幅保存为流再变成字符, 然后从第二
副开始比较字符来实现。
 
愚人之见,关于捕获桌面的变化的想法:
1、捕获窗口Paint消息,COPY桌面上该窗口的区域进行压缩传送;
当然,这种办法如果遇上窗口频繁切换的话,可能效率很低。
2、更大胆的想法,我看一本比较旧书简略的提到,当窗口出现“无效区”时,WINDOWS会向该
窗口传递WM_PAINT消息,并把无效区放在三个局部变量hdc,ps,rect里用于重画窗口。
所以如果我们能够捕获WM_PAINT,并取得要重画的区域,不就可以以最少的代价传送目标
的桌面变化了吗?还有一点,不知道桌面是不是一个窗口来的,我们看到的屏幕是不是都画
在桌面窗口上?如果是的话那就更简单了,我们只要捕获桌面窗口的WM_PAINT消息就可以了!

呵呵,是不是有点太天真了???不过,希望能给高手一个启发。小弟能力有限估计不能提供更多的帮助了。

还有一点,我想要做到在主机上看目标机器放DVD是不大现实的!!!
 
jingtao, 所言即增量方式:
不知道大家用没有用过vss,他对代码的保留用的就使用了增量算法。


 
这很容易,最主要的问题是建立远程连接,以后的事就好办了,可以用Delphi中Fastnet中的控件(任意一种都可以)
 
有谁知道超级解霸中的网络广播是如何实现的?在LAN中它能实现很流畅的画面,则
应该达到了至少29帧/秒的速度。它的算法跟PcAnyWhere是不是有共同之处呢?我想也许
是通过截获Windows的WM_PAINT吧!
 
谁有Servlet,EJB,JBuilder的电子书.

mail : liuyj@zhonghuan.com.cn

谢谢
 
Remote Administrator 这个软件楼上有人提过,挺好用。
D/L from ftp://130.88.235.104/remote/

有密码
 
抓屏的时候是否可以采用先分析屏幕变化,然后传送这种变化的方式来传递屏幕?
比如你打开文件菜单时实际上只有弹出菜单大小的那部分改变了,如果只传送这个部分是
不是很快?
 
从技术角度而言,很难做到实时监控,我的做法如下:
1、采用UDP
2、在被监控端驻留CACHE SERVER(又称CACHE AGENT)
3、主控机请求时,下位机上传CACHE SERVER中的数据

只有这样才行,现阶段任何压缩算法在保证压缩比的同时,都只能是有损压缩。
当然,据说无损JPEG压缩算法已经有了,我没有使用过。
 
后退
顶部