Как сделать прямоугольник на экране невидимым для захвата экрана? - PullRequest
0 голосов
/ 06 июня 2010

Как я могу создать прямоугольник на экране, который будет невидим для любого вида захвата экрана (экран печати или аппликации)?

Создавая прямоугольник на экране, я имею в виду что-то вроде этого:

#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;
}

Я использую Visual Studio 2010 в Windows XP

Ответы [ 2 ]

2 голосов
/ 28 июня 2011

Насколько я знаю, вы не можете предотвратить это, если не с помощью аппаратного обеспечения.

Но ... то, что вы могли бы сделать (приложив много усилий), сделать это намного сложнее.

У некоторых инструментов есть проблемы с прозрачными окнами, поэтому вы можете поместить один из них поверх окна. Вы можете поэкспериментировать с нарисованными на заказ деталями.

Что может затруднить использование выходных данных DirectX для этого прямоугольника (хотя это далеко не простая задача - DirectX и WinForms, MFC или обычный Win32 на самом деле не совместимы вообще.

Тем не менее, вы можете посмотреть здесь Сделайте снимок экрана полноэкранного приложения DirectX для людей, описывающих свои проблемы при захвате приложений DirectX.

1 голос
/ 06 июня 2010

нельзя. снимки экрана сделают снимок экрана, как представлено.

...