主要问题是图片的发送接收,因为要实时监视,不能把图片存成文件传。
最好是作为类似于数据流方式的发送接收,请问用什么方法或控件能实现???

解决方案 »

  1.   

    网络通信用Winsock控件 至少两个
    其中控制命令用TCP协议
    图像传输用UDP协议
      

  2.   

    两种方式:
    第一种方式
    (1)被监视的机器上启动一个WEB服务(做成一个HTTP web server)
      比如:根目录为:$System\Monitor(2)对屏幕一定时间间隔进行Copy并存为图片比如:Desk.jpg
    (3)监视端可以以浏览器浏览http://被监视机器的IP:端口/Monitor/Desk.jpg
      为了达到实时监视,不断访问http://被监视机器的IP:端口/Monitor/Desk.jpg即可。
    第二种方式
    (1)对屏幕一定时间间隔进行Copy,直接生成STDPICTURE对象
    (2)STDPICTURE对象-〉图像数据数组
    (3)利用Winsock Senddata
    (4)监视端接收   图像数据数组-〉STDPICTURE
    (5)显示
      

  3.   

    ztesoft(中兴软创 创造未来) 
    //第二种方式
    (1)对屏幕一定时间间隔进行Copy,直接生成STDPICTURE对象
    (2)STDPICTURE对象-〉图像数据数组
    (3)利用Winsock Senddata
     (4)监视端接收   图像数据数组-〉STDPICTURE
    (5)显示
    //
    2,4还是不太了解
    能不能写下代码???
    .cn
    多谢了!!!!!!
      

  4.   

    http://www.fantasiasoft.net/SpyScreen.zip
    这是陨落雕(刘留)兄写的一个网络图像传送例子,我现在没有网络测试环境,只在单机试过,你参考一下吧,试到有什么结果(行还是不行,速度如何)请跟我说一声
      

  5.   

    TO:lsftest()
    好的~~多谢^^
    TO:ALL()
    多谢各位高手帮忙!!!!!!!
    我一定尽快结账~~
      

  6.   

    第二种方式可能稍微好点。在网络连接不太好的情况下可能显得图形连贯些。不过我觉得象pcanywhere之类不应该通过拷屏来实现吧?我认为事实上只跟踪一些鼠标指针动作等的东西就
    足够了。而且,作为只能用winsock拖来拖去的VB来说,可能做这件事并不合适。尤其在服务器端图形
    变化比较迅速的情况下。
      

  7.   

    其实冰河做出的图像效果也不是很让人满意啊
    我很想知道如何降低一幅图的解析度
    ============================
    为了追求速度,尽量模拟实时,一般采用的方法就是降低传输的数据量。而降低传输数据量我知道的一般有两个方面:
    1.对图像先压缩再传输,例如我上面给出的陨落雕(刘留)兄写的例子,就是“'用zlib库压缩到ZipStream数组,对此数组进行Base64编码方便网络传输,然后通过TCP协议实现了网络图像传送,传送到对方之后进行Base64解码和zlib的解压,实现了图像的复原。”(作者在程序注释中的原话)。而有些人提出的用第三方控件先把图片转换压缩成jpg文件再用常规方法传输也应该属于这一类。。
    2.牺牲图片的质量来换取速度,这种方式最典型的方法并不是“降低一幅图的解析度”,而是减少图片的颜色,好像冰河里进行“远程桌面实时监视”时会有一个选项,可以把受控机器的截屏以黑白图像的方式传输到控制端,应该就是为了提升速度是不是冰河记不清了,年代太久远了。
    3.采用所谓“剪影”的方法,即把受控端现时的截屏图像跟上一时刻的截屏图像进行比较,找出不同的地方,传输时就传输这些不同的地方,理论上这种方法应该比较快,但实现难度大,我也只见过有人提出这种设想,并未看到有真正的成品程序或代码实现。。这种的方法可能会有的缺点是在网络状态稳定的情况下,图形传输的速度可能会时快时慢。。或者这种方法用硬件来实现会更好吧。