寻找截屏最快的算法,谁的快,给谁分哦。如题。

解决方案 »

  1.   

    你可以看看这篇文章,也许会对你有帮助,用DX截屏看起来比较接近这种操作,但是没有试过。
    http://www.codeproject.com/KB/dialog/screencap.aspx
      

  2.   

    LZ的我早试过啦,DX截屏还没有GDI快啊。
      

  3.   

    我就用那个D3DXSaveSurfaceToFile,慢哦。
      

  4.   

    D3D   SDK文档中关于   GetFrontBufferData说明中说了,   FrontBuffer非常慢,不能使用在高效程序中,另外还有一句,它是获取消除锯齿图像的唯一方法。
    目前我最快的方法是
    int nScreenWidth = GetSystemMetrics(SM_CXSCREEN);
    int nScreenHeight = GetSystemMetrics(SM_CYSCREEN);
    HWND hDesktopWnd = GetDesktopWindow();
    HDC hDesktopDC = GetDC(hDesktopWnd);
    HDC hCaptureDC = CreateCompatibleDC(hDesktopDC);
    HBITMAP hCaptureBitmap =CreateCompatibleBitmap(hDesktopDC, nScreenWidth, nScreenHeight);
    SelectObject(hCaptureDC,hCaptureBitmap); 
    BitBlt(hCaptureDC,0,0,nScreenWidth,nScreenHeight,hDesktopDC,0,0,SRCCOPY); 
         //save();
    100次循环355.469ms
    这个数是不包括保存代码的。