如何解决如何使用C ++在Windows 10中捕获窗口
我尝试使用gdi捕获某些窗口,大多数窗口都可以。 但是对于诸如“ Visual Studio代码”之类的窗口,它不起作用。 DX不支持捕获特定窗口。 我应该怎么做?谢谢
::EnumWindows(EnumWindowsProc,NULL);
if (hCapWnd == NULL)
{
return FALSE;
}
SwitchToThisWindow(hCapWnd,true);
Sleep(1000);
//HWND hDesktopWnd = GetDesktopWindow();
HDC hDesktopDC = GetWindowDC(hCapWnd);
HDC hCaptureDC = CreateCompatibleDC(hDesktopDC);
SetStretchBltMode(hCaptureDC,COLORONCOLOR);
RECT rc;
::GetWindowRect(hCapWnd,&rc);
int width = rc.right - rc.left;
int height = rc.bottom - rc.top;
HBITMAP hCaptureBitmap = CreateCompatibleBitmap(hDesktopDC,width,height);
SelectObject(hCaptureDC,hCaptureBitmap);
BOOL bRet = BitBlt(hCaptureDC,height,hDesktopDC,SRCCOPY);
Init(width,height);
int nRet = GetDIBits(hCaptureDC,hCaptureBitmap,buf,(BITMAPINFO*)&m_bitmapInfo,DIB_RGB_COLORS);
static int n = 0;
//if (n++ % 10 == 0)
{
// std::string name = ustd::format_string("%s\\%d.bmp",ustd::get_program_path().c_str(),n);
SaveBitmapToFile(hCaptureBitmap);
}
ReleaseDC(hCapWnd,hDesktopDC);
DeleteDC(hCaptureDC);
DeleteObject(hCaptureBitmap);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。