本人对 GDI 不熟悉,可目前又急需高效的抓屏方法,用 C + GDI 的就行,
 请不要说写驱动或 DirectShow 之类的,
 BitBlt 这种常规方法的已经实现了,但希望找到一种速度更快的方法,
 据说 GetDIBits、GetObject、GetCurrentObject 之类的某个函数可以直接从
 屏幕 HDC 中取得 BITMAP,不知到该怎么写
 
 大家帮帮忙,高分相赠。谢谢!!!

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/4867/4867627.xml?temp=.3163721
    http://community.csdn.net/Expert/topic/4867/4867625.xml?temp=.266659
    http://community.csdn.net/Expert/topic/4867/4867626.xml?temp=.2284204
      

  2.   

    模拟"printscreen"键,然后从剪贴板读取。
      

  3.   

    我想用 C + GDI 来实现
      

  4.   

    HDC hScreen = GetDC(NULL);   // 取得屏幕 DC能不能直接从这个 DC 中察看 BITMAP 中某些点的 RGB 数据?
    (不用 GetPixel,要取的点比较多,用 GetPixel 的效率反而不如 BitBlt)另外,谁知道 BitBlt 和 GetDIBits 的区别和效率有什么不同呢?
      

  5.   

    使用视频镜像驱动(Mirror Driver),如UltraVNC
      

  6.   

    我知道这些纯软件的多媒体教学系统的屏幕传输是如何做的,它们是通过用DDK,将
    现有widows video device driver加上陷阱,直接从GDI数据区取得显示设备上的
    bitmap,这一定比用GDI 函数和 DirectX
    做要快的多,但我没研究过。
      

  7.   

    我只想要个实实在在的 GDI DIBSection 的抓屏函数
      

  8.   

    老实告诉楼上,这种技术,我指ddk,你用钱也未必买的到,就不要在这里发重复的贴了,小心被删
      

  9.   


     98、2K、2003、XP 的 DDK 我都有,你要么?
      

  10.   

    ed2k://|file|MICROSOFT.WINDOWS.SERVER.V2003.IFS.DDK-ISO.LeDreactor.cue|119|9E88F47041D0722A2804DC5AC9608495|/
    ed2k://|file|Xp.Ifs.Ddk.zip|128677668|EA082C3ED2AD1D0D5B90AC9F4717C7A7|/
    ed2k://|file|Windows.Xp.Sp1.Ddk.(Driver.Development.Kit).rar|143012499|F5235EE9EF740F8BD58AB35E7EA3C98B|/
    ed2k://|file|windows.server.2003.ddk.3790-rtm.rar|194426595|BF22F2CEBEB28EA4944EA5D449072CE7|/
    ed2k://|file|MICROSOFT.WINDOWS.SERVER.V2003.IFS.DDK-ISO.LeDreactor.bin|218879472|19A30309C3FD2CB77311E66794E2DC32|/VirtualDesktop兄,不要以为 DDK 多神秘,我是现在没空研究用 DDK 抓图。
      

  11.   


     
     问题解决了,唉,靠人不如靠己,现在的 CSDN,效率已经不如当年了...
     
      

  12.   

    很可以了嘛~解决了还发个信来通知
    我想说的是在csdn人人都是义务劳动,没有谁有“义务”地给你“有效率”地解决问题
    谢谢
      

  13.   


     呵呵,就是你这种鸟人太多了,到处装大虾,还说什么
     
     "老实告诉楼上,这种技术,我指ddk,你用钱也未必买的到"
      

  14.   

    VirtualDesktop兄,别误会,发短信是告诉你,哪里能下载到 DDK
    以免以后对人乱叫                 "你用钱也未必买的到"