如何在屏幕上创建一个对任何类型的屏幕截图(打印屏幕或应用程序)都不可见的矩形?
通过在屏幕上创建一个矩形我的意思是这样的:
#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
答案 0 :(得分:2)
据我所知,除非通过硬件,否则无法阻止这种情况。
但是......你能做的(经过很多努力)是为了让它变得更加困难。
有些工具在透明窗口方面存在问题,因此您可以将其中一个放在窗口顶部。您可以尝试使用自定义绘制的部件。
对于那个矩形使用DirectX输出真的很难(尽管这绝不是一件容易的事 - DirectX和WinForms,MFC或普通的Win32根本不兼容。
不过,您可以在这里查看Take screenshot of DirectX full-screen application,了解他们在捕获DirectX应用时遇到的问题。
答案 1 :(得分:1)