Скриншот Windows.UI.Core.CoreWindow Immersive UWP - PullRequest
0 голосов
/ 14 мая 2019

Я пытаюсь захватить определенное окно в Windows 10.1.Проблема в том, что это окно является UWP приложением.Я нашел класс и заголовок окна, используя Spy++.Тем не менее, когда я снимаю окно UWP с моей функцией Screenshot, на выходе получается черный растровый рисунок.Моя функция работает для любых других окон, кроме этого.

Класс приложения UWP: Windows.UI.Core.CoreWindow

Вот мой код:

HDC hScreenDC = GetWindowDC(ProgramData->TargetWnd);

RECT Rect = {0};
GetWindowRect(ProgramData->TargetWnd, &Rect);

INT Width  = Rect.right - Rect.left;
INT Height = Rect.bottom - Rect.top;

HDC hMemoryDC = CreateCompatibleDC(hScreenDC);

HBITMAP hBitmap = CreateCompatibleBitmap(hScreenDC, Width, Height);

HBITMAP hOldBitmap = (HBITMAP) SelectObject(hMemoryDC, hBitmap);

BitBlt(hMemoryDC, 0, 0, Width, Height, hScreenDC, 0, 0, SRCCOPY | CAPTUREBLT);

hBitmap = (HBITMAP) SelectObject(hMemoryDC, hOldBitmap);

OpenClipboard(NULL);
EmptyClipboard();
SetClipboardData(CF_BITMAP, hBitmap);
CloseClipboard();   

DeleteDC(hMemoryDC);
DeleteDC(hScreenDC);

Почемуокно не было захвачено правильно, и как я могу захватить его?

...