【问题标题】:How to disable PrintScreen by GTK in Linux?如何在 Linux 中通过 GTK 禁用 PrintScreen?
【发布时间】:2013-10-24 22:02:14
【问题描述】:
有没有办法在 linux 中使用 C++ 代码来阻止 PrintScreen 键?我正在编写一个不希望用户获取屏幕截图的 C++ 程序。我试过 g_signal_connect 来阻止 PrintScreen 键,但它似乎甚至没有触发。
【问题讨论】:
-
看起来像the XY problem。您将如何防止用户从监视器上抢购图片?你将如何阻止他通过视频捕获设备传递视频信号?为什么你认为你需要阻止用户使用 PrintScreen?您是否尝试过拔出钥匙(可能使用螺丝刀或锤子)?
标签:
c++
linux
printscreen
【解决方案1】:
为什么要阻止打印屏幕键工作?!
无论如何,至少在 Linux 上,这是不可能的:当按下打印屏幕键时,窗口管理器会启动一个小程序,该程序会捕获聚焦的 X 窗口(或整个桌面或其他任何东西)并将其写为 PNG -- 这发生在你的应用程序之外,除非你控制了整个桌面会话,否则真的没有办法阻止它。
如果你真的想要,你可以尝试安装一个钩子,它会在按下打印屏幕时通知并立即使你的窗口空白(并运行快照实用程序),尽管这很容易解决它似乎毫无意义。
例如,用户可以将捕获快捷方式配置为其他内容,或者从终端手动运行 gnome-screenshot。而且,即使您确实成功了,您如何避免有人掏出手机对显示器拍照?