如何解决隐藏进程窗口的位图图像 c++
正如标题所示,我正在尝试捕获隐藏进程窗口的图像。每次我尝试捕捉设置了 SW_HIDE
的隐藏记事本窗口的屏幕截图时,我都会得到一张黑色图像。
除了对用户隐藏窗口并仍然能够捕获窗口图像之外,还有其他选择吗?
/// <summary>
///
/// </summary>
/// <returns></returns>
RECT rc;
HWND hwnd = FindWindow(NULL,TEXT("Untitled - Notepad"));
if (hwnd == NULL)
{
std::cout << "Can't Find Window";
return 0;
}
HDC hdc = GetWindowDC(hwnd);
if (hdc)
{
HDC hdcMem = CreateCompatibleDC(hdc);
if (hdcMem)
{
RECT rc;
GetWindowRect(hwnd,&rc);
HBITMAP hbitmap = CreateCompatibleBitmap(hdc,rc.right - rc.left,rc.bottom - rc.top);
if (hbitmap)
{
SelectObject(hdcMem,hbitmap);
PrintWindow(hwnd,hdcMem,0);
if (OpenClipboard(hwnd) != 0) {
EmptyClipboard();
SetClipboardData(CF_BITMAP,hbitmap);
CloseClipboard();
}
DeleteObject(hbitmap);
}
DeleteObject(hdcMem);
}
ReleaseDC(hwnd,hdc);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。