Как сделать прямоугольник на экране невидимым для захвата экрана?

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

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

#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.


person Kesarion    schedule 05.06.2010    source источник


Ответы (2)


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

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

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

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

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

person Andreas Reiff    schedule 28.06.2011

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

person Randy    schedule 06.06.2010