эффективно получить скриншот рабочего стола Windows - PullRequest
3 голосов
/ 14 марта 2011

Существует ли более эффективный способ получения копии рабочего стола 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);

1 Ответ

1 голос
/ 18 марта 2011

http://www.codeproject.com/KB/dialog/screencap.aspx

На этой странице есть несколько разных способов делать скриншоты. Метод DirectX, который они используют, кажется достаточно простым.

Кроме того, что упомянуто в этой статье, я не думаю, что есть более эффективный метод захвата рабочего стола.

...