Как предотвратить печать экрана - PullRequest
10 голосов
/ 15 января 2009

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

Я сообщил, что не существует практически никакого способа, чтобы полностью предотвратить это, но я ищу способы, чтобы ввести некоторые препятствия в процесс.

Я использую C # /. NET 2.0 и WinForms

Ответы [ 15 ]

0 голосов
/ 28 августа 2018

Слишком поздно, но есть быстрое решение, Просто используйте его в форме MDI
Установите TopMost Свойство формы True , затем напишите событие ниже private void frmMDI_Deactivate (отправитель объекта, EventArgs e) {Clipboard.Clear ();}

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

Вы можете использовать это в функции выхода из системы или при перемещении или изменении размера экрана или любом другом событии формы, как требуется :)

Инструмент для разрезания также не может копировать экраны, если свойство TopMost имеет значение true.

Да, мы не можем помешать пользователю захватывать экран с внешнего устройства, такого как телефон или камера.

0 голосов
/ 18 сентября 2012

Я решил, используя объект Timer и метод Clipboard.Clear().

Сначала добавьте Timer в основную форму с помощью Interval=1 (очень быстро), затем добавьте следующий код в событие:

Clipboard.Clear();
0 голосов
/ 01 августа 2012

Вы можете сделать любой случайный экран печати бесполезным, используя визуальную криптографию и используя преимущества настойчивости сетчатки (подробности см. В этой статье и в bit.ly / vcrypto для веб-демонстрации) .

Идея состоит в том, чтобы с высокой частотой чередовать два или более изображения случайных шумов, которые будут объединяться через постоянство зрения для раскрытия контента. Снимок экрана захватит только одно изображение с бессмысленным случайным шумом.

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

Иногда может быть полезным в академическом смысле этого слова!

0 голосов
/ 20 декабря 2009

Существуют приложения, которые могут захватывать экран из приложений OpenGL и DirectX! (в зависимости (они используются для записи игровых фильмов) пс. Windows Aero является DirectX

http://www.fraps.com/ я думаю, вот приложение

0 голосов
/ 15 января 2009

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

Одна вещь, которая всегда раздражала меня, заключалась в том, что всякий раз, когда я играл фильм, он никогда не делал его скриншоты. Если вы можете визуализировать в отдельном контексте, было бы очень неприятно его сфотографировать. Возможно, вы можете отправить свой вывод на экран через что-то подобное?

...