Можно ли запрограммировать приложение, которое не будет отображаться на экране печати? - PullRequest
4 голосов
/ 02 августа 2011

Если нажать кнопку «Печать Scrn», а затем вы откроете рисование и нажмете Ctrl V, ваше изображение будет в состоянии сделать так, чтобы вашей программы не было, или, возможно, ее заменили черным ящиком или чем-то еще.

У меня нет большого опыта программирования Windows, и это просто больше любопытство для меня, чем то, что я на самом деле планирую реализовать.Все отзывы приветствуются.

Ответы [ 5 ]

2 голосов
/ 02 августа 2011

Краткий ответ: нет надежного метода. Здесь идет достойное обсуждение: предотвратить захват экрана

2 голосов
/ 02 августа 2011

Вы не можете отключить Print Scrn из своего приложения winform, потому что это функция ОС.даже если бы это было возможно, кто-то мог быть достаточно умным, чтобы использовать цифровую камеру ...

также взгляните на следующее:

http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/f8fccf61-5132-4037-809d-f22f706e9e7b

1 голос
/ 02 августа 2011

Да, это возможно.

Можно было бы перехватить поведение нажатия / горячей клавиши на экране печати (я полагаю, что это горячая клавиша Windows) и затем переопределить требуемое поведение. Поскольку данные хранятся в памяти и доступны для буфера обмена, можно очистить данные или не разрешить сохранение данных в первую очередь.

Если это Windows, для этого нужно будет использовать Windows API.

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

MSDN описывает горячую клавишу экрана печати здесь:

http://msdn.microsoft.com/en-us/library/ms646279(v=vs.85).aspx

1 голос
/ 02 августа 2011

Вы когда-нибудь задумывались, почему некоторые видео в проигрывателе Windows Media захватывают черный / движущийся экран, когда вы пытаетесь сделать снимок экрана?Это называется наложением «Оборудование / Видео».

См .: ru.wikipedia.org / wiki / Hardware_overlay

Из статьи в Википедии:

В результате использования аппаратного оверлея программа скриншотов (например, программа, автоматически встроенная в Windows, которая активируется при нажатии пользователем клавиши PrtSc) часто не захватывает содержимое, отображаемое в окне аппаратного оверлея.Скорее, захватывается пустая область, содержащая только специальный цвет маски.Это связано с тем, что процедура захвата экрана не учитывает специальные области видеопамяти, выделенные для наложений, а просто захватывает общий главный экран, отображаемый графической подсистемой программного обеспечения.Некоторые схемы управления цифровыми правами используют аппаратное наложение для отображения защищенного контента на экране, используя эту причуду для предотвращения копирования защищенных документов путем захвата экрана [цитата нужна].Отключение поддержки наложений приводит к тому, что обычное программное обеспечение, использующее наложения, откатывается к общей памяти, что позволяет захватывать снимки экрана.

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

0 голосов
/ 02 августа 2011

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

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

...