我知道API获取窗口中变化区域的获取!但是全屏的怎么做呢?
实时记录屏幕变化的区域,只对变化的区域进行抓屏!我怎么做呢?
要求有速度!
用什么技术可以做到呢,给点思路,最好那位老师做过,给讲细点!
最最好是有源码!(不是源程序,我可不要)
我想过几种,钩子,VXD,但是不知道能否实现,怎么去实现,我一点思路都没有!

解决方案 »

  1.   

    http://expert.csdn.net/Expert/topic/1432/1432653.xml?temp=.6914179
      

  2.   

    抓屏我会,我要的是,确定屏幕那部分变化过,区域抓屏我会!
    变化部分???????????????????????
    获取屏幕动态变化的部分是top,left,bottom,right这四个值,抓屏全屏我就不问了!
      

  3.   

    我也正要问这个问题呢,我想做监测屏幕变化的,如果能解决我也加分,先借用你的帖子吧:D帮你顶一下btw:我不能用QQ,如果讨论出结果拜托也告诉大家哦,非常感谢!
      

  4.   

    如果你不是抓视频,仅仅是抓应用程序窗口的话,就可以试试用钩子捕获WM_PAINT消息,然后把消息窗口的位图存下来。不过这也不是最少捕获。因为下面的窗口并没有完全被改变。不过我想速度是可以的,因为毕竟下面这个窗口也是重绘了的,空间大一点而已!
      

  5.   

    是的,只是存屏,实时存屏,如果一副一副的存的文件会很大,如果有动态区域的方法,可以大大缩小文件的大小!
     
    edrftgyh(老胡) 的方法是不错的!但是我提心的是你的速度!
    如果屏幕变化很小!
    如:top=0,left=0,bottom=10,right=10 图象为:1024X786的化
    要扫描的方法速度快不了!我对 edrftgyh(老胡)的方法有些见意你看看可行不,有可能提高速度,又能准确定位又能快点!我们在QQ上聊过,经理来了,不得不停!方法是:隔10行进行扫描?如果要精度的化可以再返回在抄!
    相当于百叶窗的方法!duwenyong(啸海)
    你的方法一样很好通过阀值来判断!但是速度能达到有15帧/s
    区域的多少是不定的!说不好!看用户了!在windows API中有一个这样的GETUPDATERECT()不知道各位用过没有!
    我用过它,在窗口中的变化区域获取!这它可以返回正确的区域!
    其实这两种方法是最好的选择,但是我想找到最好的方法,像GETUPDATERECT一样的方便,和速度!我用GETUPDATERECT()时,把GETDC(0)传给它,但是不好使?为什么?
    桌面不一样是窗口吗?是一个最底层的窗口!希望大家多谈谈!
      

  6.   

    VNC就是通過區域變化來實現抓圖的
    你到http://www.uk.research.att.com/vnc/download.html
    下載源程序把.
    裡面的技術複雜..要花時間
    區域變化是通過Hook實現
    VNC是這方面做得比較好的軟件
      

  7.   

    YP2002CN(老婆我不敢了,老婆我愛你):
    我下了,你说是用HOOK实现的,我打开源程序大概看了一下!
    但是没有发现DLL呀?你不说是用HOOK吗?应该有DLL呀!
    难到我下错程序了?我下的是vnc-3.3.6-winsrc.zip
    是不是vnc-3.3.6-winsrc就是HOOK库?
    在库中我发现ZLIB好像是压缩吗,我在好好读读!
    有空各位都谈谈!
      

  8.   

    VNCHoos目录就是它的服务器端VNcHooks.dll的Source,你要编译一遍。
    ZLIB可能没有带Source,它的一个文本文件有说明的,需要你从别的地方下载
    ZLIb 1.1.4的源代码,现在VNC的最新的是应该叫RealVNC了。
      

  9.   


    全局消息钩子,加上GetUpdateRect()好像就可以了。
      

  10.   

    那GetUpdateRect()的窗口句柄是那个?是桌面?getdc(0)?