Я хотел бы предотвратить захват экрана с помощью ножниц. Я уже предотвратил Print Screen, зарегистрировав событие KeyUp и очистив буфер обмена. Я хотел бы предотвратить захват экрана только для определенной дочерней формы (всплывающего диалогового окна).
Я пробовал событие Form Deactivate, но как только пользователь щелкает функцию New Snip в инструменте Snipping, оно активирует мое приложение.
Edit
Я нашел уловку. Обратите внимание, что это не пуленепробиваемое решение и не хорошее взаимодействие с пользователем, но оно может быть полезно некоторым из вас.
Шаги
- Возьмите панель, установите свойство цвета фона на серый (или любой другой по вашему выбору).
- Убедитесь, что панель скрыто, и это SendToBack.
- Регистрация события щелчка панели.
- Регистрация события деактивации формы.
- При деактивации формы установите для видимости этой панели значение true, закрепите ее на весь экран и установите BringToFront. Поэтому, когда пользователь переключается на другое приложение или щелкает в любом месте за пределами приложения, неактивная панель будет закрывать ваш фактический экран.
- Когда пользователь переключается обратно в приложение, заставьте его щелкнуть панель, чтобы снова открыть (показать) ваш фактический экран.
Опять же, как я уже сказал, это уловка и плохой пользовательский опыт, но она может помочь кому-то вроде меня, чья основная цель - помешать пользователям делать снимки экрана с конфиденциальными данными.
Пользователь по-прежнему может делать снимки с телефона или камеры или делать снимки экрана виртуальной машины, запустив ваше приложение на виртуальной машине. Так что мое решение не является пуленепробиваемым, но, по крайней мере, оно определенно сделает его не таким простым.
Ура !!