【问题标题】:How to make a rectangle on screen invisible to screen capture?如何使屏幕上的矩形对屏幕截图不可见?
【发布时间】:2010-06-05 23:48:29
【问题描述】:

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

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

#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

【问题讨论】:

    标签: screen capture invisible


    【解决方案1】:

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

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

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

    对于那个矩形使用 DirectX 输出可能会变得非常困难(尽管这绝不是一件容易的事 - DirectX 和 WinForms、MFC 或普通 Win32 根本不兼容。

    不过,您仍然可以查看 Take screenshot of DirectX full-screen application 以了解人们在捕获 DirectX 应用程序时遇到的问题。

    【讨论】:

      【解决方案2】:

      你不能。 屏幕截图将按呈现方式捕获屏幕。

      【讨论】:

        猜你喜欢
        • 2021-07-12
        • 1970-01-01
        • 2015-12-02
        • 2020-05-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-27
        • 1970-01-01
        相关资源
        最近更新 更多