Отключить запущенное программное обеспечение для захвата экрана в приложении Java

Здесь я нашел похожие вопросы, но не с таким подходом и проблемой. У меня есть программа, которая занимается математикой. На данный момент результаты записываются в файл .doc. Но этим файлом можно поделиться через сеть. Я хочу отключить его, написав результаты в метке. Но, опять же, экран можно захватить. Итак, я нашел много идей для предотвращения этого, но наиболее интересным для меня является обнаружение и отключение всех программ для захвата экрана, работающих в системе, и периодическое (если это возможно) удаление буфера обмена. Неважно, что будет с результатами и моей программой (если она потеряется или программа закроется), важно только не допустить скриншота.

Я знаю, что это невозможно сделать полностью, но я хочу сделать это как можно сложнее.

P.S. Не обсуждайте камеру телефона, вывод результатов на бумагу и т. д., мне нужно предотвратить создание изображения моей программы (по крайней мере, когда результаты на экране).

ИЗМЕНИТЬ:

Эта штука с обнаружением программного обеспечения, есть ли способ просто определить, может ли какая-то запущенная программа сделать снимок экрана, и если да, закрыть мое приложение? Но ему нужно все время прослушивать запуск этого программного обеспечения (если оно не запускается при запуске моей программы).

Дело в том, что эта программа для студентов, и у них нет денег на коммерческое ПО (не считая триала, конечно), так как у них не хватает знаний на что-то особенное (они не используют компьютеры как люди на этом сайте) . Так что эта защита не обязательно должна быть абсолютной и для программистов, только для студентов (но они не совсем наивны :) ).

Заранее спасибо.


person Aleksandar    schedule 07.06.2014    source источник
comment
Как вы сказали: почти невозможно предотвратить захват экрана. Я думаю, что единственная часть, которая может быть возможна из вашей Java-программы, может заключаться в очистке буфера обмена. Но у меня сейчас нет ограничений на доступ java к буферу обмена для текущих версий. Так что вы должны проверить себя, если это возможно.   -  person mschenk74    schedule 07.06.2014
comment
@ mchenk74 Я использую буфер обмена в других приложениях, поэтому могу его очистить. Но обнаружение работающего ПО...   -  person Aleksandar    schedule 07.06.2014
comment
Если вы можете обнаружить, что какое-то другое программное обеспечение помещает что-то в буфер обмена, а затем немедленно очистить его, этого может быть достаточно.   -  person mschenk74    schedule 07.06.2014
comment
Дело в том, что я не знаю, все ли эти программы используют буфер обмена. И я не знаю, как это обнаружить...   -  person Aleksandar    schedule 07.06.2014
comment
Если некоторые программы подключены к видеодрайверу и не используют буфер обмена, у вас нет шансов. Я уже использовал такое программное обеспечение (целью программного обеспечения было отображение локального экрана на огромном дисплее в диспетчерской завода)   -  person mschenk74    schedule 07.06.2014
comment
Нет, мне нужно защитить только экран ноутбука. И коммерческие программы не проблема, пользователи ими пользоваться не будут, я уверен (кроме триалов).   -  person Aleksandar    schedule 07.06.2014
comment
Если коммерческие программы не являются проблемой, вы должны объяснить, в чем проблема, а что нет в вашем вопросе. В противном случае никто не сможет вам помочь.   -  person mschenk74    schedule 07.06.2014
comment
@ mchenk74 mchenk74 Я отредактировал вопрос, извините.   -  person Aleksandar    schedule 07.06.2014


Ответы (2)


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

Что я имею в виду? Информация передается по кабелю VGA, HDMI или DVI от процессора к монитору. Что, если пользователь вместо того, чтобы подключить этот кабель к монитору, подключит его к внешнему оборудованию для захвата видео? Вы не можете этого знать, так что мой совет - не тратьте время зря. А как насчет клавиши Prt Scr на клавиатуре?

Я считаю, что даже Голливуд не может сделать то, что вы хотите.

person Joaquin Iurchuk    schedule 07.06.2014
comment
Как я уже сказал, мне нужно защитить его ТОЛЬКО на ноутбуке. Пользователь не может подключать принтеры или внешнее оборудование. Итак, моя проблема приводит к обнаружению и отключению этого программного обеспечения SS. P.S. Кажется, я нашел способ слушать Prt Scr. Затем я удалю буфер обмена и закрою программу. - person Aleksandar; 07.06.2014
comment
Ну, вы никогда не упоминали слово «ноутбук» в своем вопросе. Прости. - person Joaquin Iurchuk; 07.06.2014

Я не знаю о Java, но вы можете избежать любых программ захвата экрана, создав виртуальный рабочий стол и запустив свои приложения (например, браузер) под только что созданным рабочим столом. См. ресурс MSDN для API createDesktop, SwitchDesktop и т. д.

person Sridharan Sankaran    schedule 09.06.2016