TGViewer
.NET Разработчик .NET Разработчик @netdeveloperdiary · 6.75K subscribers
Post #2820 2.43K
День 2341. #ЗаметкиНаПолях
Исключаем Windows-приложение из Захвата Экрана
Некоторые приложения отображают конфиденциальную информацию. Recall в Windows может регулярно делать снимки экрана и таким образом сохранять конфиденциальную информацию, что крайне нежелательно.

Вы можете исключить своё приложение из этой функции и захвата экрана в целом, используя SetWindowDisplayAffinity и флаг WDA_EXCLUDEFROMCAPTURE. Это функция API Windows, позволяющая установить привязку отображения окна, которая определяет, как окно взаимодействует с программным обеспечением захвата экрана.

1. Добавьте NuGet-пакет Microsoft.Windows.CsWin32

2. Добавьте в проект файл NativeMethods.txt со следующим содержимым:
SetWindowDisplayAffinity


3. Добавьте следующий код в проект:
unsafe
{
// для WPF:
// new WindowInteropHelper(
// Application.Current.MainWindow)
// .Handle

// для WinForms:
// this.Handle

var windowHandle = (HWND)Handle;
Windows.Win32.PInvoke.SetWindowDisplayAffinity(
windowHandle,
Windows.Win32.UI
.WindowsAndMessaging
.WINDOW_DISPLAY_AFFINITY
.WDA_EXCLUDEFROMCAPTURE
);
}


Чтобы проверить работу флага, можно использовать Snipping Tool или любую другую программу для захвата экрана. Если флаг установлен правильно, окно приложения не должно быть захвачено.

Обратите внимание, что флаг WDA_EXCLUDEFROMCAPTURE можно включать и отключать по требованию. Таким образом, вы можете использовать его для скрытия конфиденциальной информации только где это необходимо.

Источник:
https://www.meziantou.net/how-to-exclude-your-windows-app-from-screen-capture-and-recall.htm
  • 👍 27
More from @netdeveloperdiary
  1. Oct 2, 2026День 2802. #Карьера #Юмор Секреты Программирования, Известные Только Легендам Ещё один пос…
  2. Oct 1, 2026Post #3357
  3. Sep 30, 2026Post #3356
  4. Sep 29, 2026Фото 3 (с) Анатолий Кулаков
  5. Sep 29, 2026День 2799. Конференция DotNext 2026. Часть 1 25 и 26 сентября в Москве прошла очередная ко…
  6. Sep 28, 2026День 2798. #Оффтоп Утиная Типизация в C# с Помощью Перехватчиков. Часть 2 Некоторое время…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →