如何使屏幕上的矩形对屏幕捕获不可见?

时间:2010-06-05 23:48:29

标签: screen capture invisible

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

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

#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

2 个答案:

答案 0 :(得分:2)

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

但是......你能做的(经过很多努力)是为了让它变得更加困难。

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

对于那个矩形使用DirectX输出真的很难(尽管这绝不是一件容易的事 - DirectX和WinForms,MFC或普通的Win32根本不兼容。

不过,您可以在这里查看Take screenshot of DirectX full-screen application,了解他们在捕获DirectX应用时遇到的问题。

答案 1 :(得分:1)

你不能。 屏幕截图将捕获屏幕,如图所示。