2013-10-24 2 views
0

Есть ли способ заблокировать ключ PrintScreen с помощью кода C++ в Linux? Я пишу программу на C++, которая не хочет, чтобы пользователь получал скриншоты. Я попытался g_signal_connect заблокировать клавишу PrintScreen, но кажется, что даже не горит.Как отключить PrintScreen от GTK в Linux?

+0

Похож на [проблему XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). Как вы можете запретить пользователю снимать изображение с монитора? Как вы остановите его от передачи видеосигнала через устройство захвата видео? Почему вы думаете, что вам нужно остановить использование пользователем PrintScreen? Вы пытались вытащить ключ (возможно, использовать отвертку или молоток)? – DanielKO

ответ

0

Почему вы хотите предотвратить работу экрана экрана печати ?!

В любом случае, по крайней мере, на Linux это невозможно: при нажатии клавиши экрана печати оконный менеджер запускает небольшую программу, которая захватывает фокусное окно X (или весь рабочий стол или что-то еще) и записывает его как PNG - это происходит за пределами вашего приложения, и, если вы не контролируете весь сеанс рабочего стола, не существует способа остановить его.

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

Например, пользователь может просто настроить ярлык захвата на что-то еще или запустить gnome-screenshot вручную с терминала. И даже если вы его заработаете, как вы избегаете того, кто вытаскивает свой мобильный телефон и фотографирует монитор?

+0

Да, вы правы. Я использовал крючок, но не совсем. –

Смежные вопросы