这个问题好象提过N次了哦
用API函数GETDC取得屏幕的设备句柄,用BITBLT函数将数据拷贝到一个临时的PICBOX,然后用GETBITMAPBITS函数将图象的象素保存到一个数组,再用WINSOCK发送到工作站,再用SETBITMAPBIT还原。,由于数据量较大,传输用PEEKDATA进行!

解决方案 »

  1.   


    可以先SavePicture ,然后用传送文件的办法把BMP传过去。
      

  2.   

    已经使用抓屏,然后存为jpg的方法,搞定了,谢谢各位
      

  3.   

    lyqof908:可以给一份源码给我吗?
    [email protected]
      

  4.   

    vbFly:我想你说的方法比较合适,存文件的方法好象不太好,但是GETBITMAPBITS这个函数不太会用,能不能再详细传授几招,如果有源程序就更好了。大恩不言谢!
      

  5.   

    vbFly:用GETBITMAPBITS函数将图象的象素保存到一个数组时,数据的大小应定为多大?恳请再指点几招。
      

  6.   

    i = lngScrRslX * lngScrRslY * 3&
    ReDim bytPixel(i) As Byte
    GetBitmapBits picTmp.Image, UBound(bytPixel), bytPixel(0)
    lngScrRslX * lngScrRslY 为屏幕分辨率
      

  7.   

    高人请给我一份源代码
    [email protected]
      

  8.   

    请问vbfly:i = lngScrRslX * lngScrRslY * 3& 语句中*3是什么意义?
    还有用SETBITMAPBIT还原后,就能直接送入图片框中吗?
      

  9.   

    我是一个笨小孩。
    vbfly:如果是256色,并是全屏拷贝,数据量惊人,半天传不完;还原后是将句柄赋给图片框,还是直接将数组赋给图片框?
      

  10.   

    vbFly(新北京,新奥运) 
    老弟你在这唬人呀,我认为你这方法行不通,有没有其它办法?
      

  11.   

    ddww() 
    我用800*60016位色下本地机测试,是很大,但不是半天,不超过一分,但是你抓图后可以对大小处理嘛
    还原可以直接用SetBitmapBits picTmp.Image, UBound(bytPixel), bytPixel(0)
    crycoming(瞎编) 
    老哥有你在,我哪敢呀,不知道你为什么认为我的方法行不通?
      

  12.   

    降低下图象质量! 应该可以传送良好的!就算是冰河在远程访问也不很理想的! LAN内很优秀!