有没有比下面的代码更有效的方式获得Windows桌面(使用GDI或任何其他库)的副本
HDC dcDesktop; HDC dcMem; HBITMAP hbmpMem; HBITMAP hOriginal; BITMAP bmpDesktopCopy; dcDesktop = GetDC( GetDesktopWindow() ); dcMem = CreateCompatibleDC( dcDesktop ); hbmpMem = CreateCompatibleBitmap( dcMem, m_lWidth, m_lHeight ); BitBlt( dcMem, 0, 0, m_lWidth, m_lHeight, dcDesktop, 0, 0, SRCCOPY ); // Copy the hbmpMem to the desktop copy GetObject(hbmpMem, sizeof(BITMAP), (LPSTR)&bmpDesktopCopy);
http://www.codeproject.com/KB/dialog/screencap.aspx
这个页面有几个不同的截图方法。 他们使用的DirectX方法似乎很简单。
除了那篇文章中提到的,我不认为有更有效的方法来捕获桌面。