黑客DELPHI(200分)

添加到收藏夹
 
//抽点逐渐显示
procedure TForm1.Button2Click(Sender: TObject);
begin
form1.repaint;
for n:=0 to 1 do
for m:=0 to 1 do
for j:=0 to bitmap.height div 2 do
for i:=0 to bitmap.width div 2 do
begin
with rect1 do begin
left:=2*i+m;
top:=2*j+n;
right:=2*i+1+m;
bottom:=2*j+1+n;
end; with rect3 do
begin
left:=2*i+m;
top:=2*j+n;
right:=2*i+1+m;
bottom:=2*j+1+n;
end;
canvas.copyrect(rect3,bitmap.canvas,rect1);
end;
end;
//缩小四分之一
procedure TForm1.Button3Click(Sender: TObject);
begin
form1.repaint;
for j:=0 to bitmap.height div 2 do
for i:=0 to bitmap.width div 2 do
begin
with rect1 do
begin
left:=2*i;
top:=2*j;
right:=2*i+1;
bottom:=2*j+1;
end;
with rect3 do
begin
left:=i;
top:=j;
right:=i+1;
bottom:=j+1;
end;
canvas.copyrect(rect3,bitmap.canvas,rect1);
end;
end;
 
pcanywhere 只有最初的传送是整个屏幕,之后传送的都是屏幕变化,这样传送的数据量要小的多
 
传送屏幕变化?想法倒是很好,但要实现的话感觉好象有点麻烦,要计算哪些点改变了,
这个运算量可能也挺大的吧。
 
我也觉得如此。
想问题不要过于复杂化---这是我学程序以来唯一学到并收益的东西。《程序设计实践》
说过啊,可能判断压缩和解压的时间你已经可以再传输几幅了。
pcanywhere 不知道在上怎么样好像它的代码压缩是直接用汇编来的,很快。
在9X下容易,2000下就。。。。。
 
我想知道的更多一些!
谢谢!
 
大家好!
好久,没有上大富翁了,只怪我的代理服务器太肉。
关于将屏幕分开来,分线程传送,我作了。
用UDP组件,用Tbitmap 的 scanline得到一行点阵,用十个UDP组件同时传送
十行数据。
但是,速度还是不行。
我认为用拷屏,是治标不治本。
应该从底层搞定。
请教各位富翁和房客先生,如果解决了这个问题,我请你们作我家的房客^-^。
 
发送变化的部分,发送前先询问变化的多少(自定义一套格式);
如果全部变化(如第一次传送),那肯定是需要拷屏全部传送的,
否则就只发送屏幕发生改变的部分。
 
把目标区域划成多个区域,然后依次匹配每个区域和上一帧的变化来决定传送哪一个区域
建议查找动态图像压缩技术的资料,呵呵,或者说是标准。
 
请问:g622,cmldy
本人在这方面欠缺,望给出更详细的信息。
 
不知道你想获得什么样的效果,完全同步吗?恐怕很难实现。我现在只能做到每秒钟截取
5~6幅32位全屏图象,但是觉得如果只是用于监视的话足够了。
 
我还是觉得用zlib压缩bmp比压成jpeg好,压缩比高,而且图象不失真!
 
关于速度的问题,恐怕是无法解决,即使是win2k的terminal,在256色还闪的很厉害,冰河
也解决不了,没办法,曾经有这样一个程序,大概是找不到了,参考一下mstsc.exe(win2k terminal))
 
我想不通过传送流的方法,而是映射网络驱动器,或是把对方的计算机上新建某个目录,
并修注册表,使其成为共享,通过拷贝文件的方法,是不是快一些呢?我没试过,仅提意见。
 
有一个远程控制程序叫REMOT的,老外写的它的屏幕速度如下:
局部网:100-500幅/秒(10M网)
互联网(拔号上网):在网速极低的情况下,5-10幅/秒。
最低配置:386+8M内存+WIN95
其中最好的是系统资源占用率极低。
它用的方法是象视频播放的方法:先抓一副发过来,然后监测屏幕变化,再把变化发过来。
我用LAH算法压缩的BMP,每副10KB,但也离这个差的远。
OopsWare兄说的很有道理,JPG再压缩反而会变大。
 
SDK可以到微软的网站上找一下,有的。
不行我寄给您 。
 
顶部