Есть ли способ заблокировать ключ PrintScreen с помощью кода C ++ в Linux? Я пишу программу на C ++, которая не хочет, чтобы пользователь снимал экран. Я попытался g_signal_connect, чтобы заблокировать ключ PrintScreen, но, кажется, даже не срабатывает.
Почему вы хотите запретить работу клавиши экрана печати ?!
В любом случае, по крайней мере, в Linux это невозможно: когда нажата клавиша экрана печати, оконный менеджер запускает небольшую программу, которая захватывает сфокусированное X-окно (или весь рабочий стол или что-то еще) и записывает его как PNG — это происходит вне вашего приложения, и если вы не контролируете весь сеанс рабочего стола, на самом деле нет никакого способа остановить его.
Если вы действительно этого хотите, вы можете попробовать установить хук, который замечает, когда экран печати нажат, и мгновенно закрывает окно (и убирает утилиту моментальных снимков), хотя это так легко обойти, это кажется бессмысленным.
Например, пользователь может просто настроить ярлык захвата на что-то другое или запустить gnome-screenshot вручную из терминала. И даже если у вас все получилось, как избежать того, чтобы кто-то вытащил свой мобильный телефон и сфотографировал монитор?
Других решений пока нет …