0

如何在屏幕上创建一个对任何类型的屏幕捕获(打印屏幕或应用程序)都不可见的矩形?

通过在屏幕上创建一个矩形,我的意思是这样的:

#include <Windows.h>
#include <iostream>

void drawRect(){
HDC screenDC = ::GetDC(0);
::Rectangle(screenDC, 200, 200, 300, 300);
::ReleaseDC(0, screenDC);
}
int main(void){
char c;
std::cin >> c;
if (c == 'd') drawRect();
std::cin >> c;
return 0;
}

我在 Windows XP 上使用 Visual Studio 2010

4

2 回答 2

2

据我所知,除非通过硬件,否则您无法防止这种情况发生。

但是..你能做的(付出很多努力)就是让它变得更难。

有些工具在透明窗口方面存在问题,因此您可以将其中一个放在窗口顶部。您可以尝试定制绘制的零件。

真正困难的是为该矩形使用 DirectX 输出(尽管这绝不是一件容易的事 - DirectX 和 WinForms、MFC 或普通 Win32 根本不兼容。

不过,您可以在这里查看为人们描述他们在捕获 DirectX 应用程序时遇到的问题的 DirectX 全屏应用程序的屏幕截图。

于 2011-06-28T13:34:38.080 回答
1

你不能。屏幕截图将捕获显示的屏幕。

于 2010-06-06T00:02:46.867 回答