int CaptureDesktop2ClipBoard() { HDC hdcScreen = CreateDC("DISPLAY", NULL, NULL, NULL); HDC hdcCompatible = CreateCompatibleDC(hdcScreen); HBITMAP hbmScreen = CreateCompatibleBitmap(hdcScreen, GetDeviceCaps(hdcScreen, HORZRES), GetDeviceCaps(hdcScreen, VERTRES)); if (hbmScreen == 0) { DeleteDC(hdcScreen); DeleteDC(hdcCompatible); DeleteObject(hbmScreen); return -1; }
HBITMAP hOldScreen = (HBITMAP)SelectObject(hdcCompatible, hbmScreen); BitBlt(hdcCompatible, 0,0, GetDeviceCaps(hdcScreen, HORZRES), GetDeviceCaps(hdcScreen, VERTRES), hdcScreen, 0, 0, SRCCOPY);
OpenClipboard(NULL); SetClipboardData(CF_BITMAP, (HANDLE)hbmScreen); CloseClipboard();
SelectObject(hdcCompatible, hOldScreen); DeleteDC(hdcScreen); DeleteDC(hdcCompatible); DeleteObject(hbmScreen); return 0; } |