我不希望用户截取我的应用程序的屏幕截图或记录屏幕.我已经在窗口中添加了安全标志.这可以防止用户截取屏幕截图和录制屏幕.
如果屏幕录制已开启,我的应用程序会阻止录制内容,但会录制音频.
在某些有根设备上,安全标志可能无法按预期工作.所以我只是想检测是否有任何屏幕录制应用程序/进程在后台运行,以便我可以隐藏敏感数据并防止其被记录.
我有什么方法可以检测到屏幕录制是否开启?
我正在尝试在Nexus 5X API 26仿真器中执行命令fastlane screengrab.
这是我得到的结果:
rcarba$ fastlane screengrab
[?]
[16:00:51]: fastlane detected a Gemfile in the current directory
[16:00:51]: however it seems like you don't use `bundle exec`
[16:00:51]: to launch fastlane faster, please use
[16:00:51]:
[16:00:51]: $ bundle exec fastlane screengrab
[16:00:51]:
[16:00:51]: Get started using a Gemfile for fastlane https://docs.fastlane.tools/getting-started/ios/setup/#use-a-gemfile
[16:00:51]: Successfully loaded '/Users/.../fastlane/Screengrabfile'
+----------------------------+-----------------------------------------------+
| Detected Values from './fastlane/Screengrabfile' |
+----------------------------+-----------------------------------------------+
| app_package_name | com.my.app |
| app_apk_path | app/build/outputs/apk/release/app-release.apk |
| tests_apk_path | …
Run Code Online (Sandbox Code Playgroud) android screen-grab android-permissions fastlane fastlane-snapshot
我想创建一个应用程序,我在窗口上绘制,无论是窗口还是全屏,我抓住鼠标但没有拦截任何 WM键盘快捷键,如Alt + Tab,我还需要在用户进入/离开时收到通知焦点.
谷歌Chrome,Firefox或gnome-terminal等常见应用程序可以很好地处理这个问题(使用F11全屏,但仍然使用Alt + Tab),但他们不会抓住鼠标.
SDL对此用例的处理方式臭名昭着:SDL_WM_GrabInput抓取鼠标但也拦截WM快捷方式; 和SDL_FULLSCREEN似乎有一些自动抓取(不要问我为什么).
一个解决方案可能是自己为Alt + Tab编写代码,但这很糟糕(并且对其他WM快捷方式没有帮助,比如更改到另一个工作区).
另一个解决方案是不调用SDL_WM_GrabInput,而是伪造一个抓取:只需隐藏鼠标指针(使用SDL_ShowCursor)并在用户移动时将其移回中心.这是丑陋的,但在实践中工作 - 当然除了SDL_FULLSCREEN,因为它自动抓取(不同于理智的实现).这是一个全屏功能的SDL解决方案,但这仍然不是我想要的.我不想有黑客来启用和禁用抓取,我想抓住鼠标而不是抓住键盘.
所以我对SDL很生气,并希望看到其他选择.我想使用SDL,但这不是必需的.
这个问题似乎指出SDL实际上做的是使用XGrabKeyboard.通过阅读手册页,我不清楚你是否可以在不抓取键盘的情况下抓住鼠标(我自己从未使用过Xlib).
我知道如何使用GTK制作"假全屏"(即Alt + Tab友好,gnome-terminal类型).我想这样做,加上鼠标隐藏并将其移回中心("假抓取")可以做到这一点,但这感觉就像是过多的胶带.必须有一个更简单的方法.(另外我不想将GTK添加为依赖项;但我也不确定是否进行原始Xlib调用是一个好主意).
对此有什么好的解决方案?
我需要一个Linux/X11解决方案但是跨平台它会很好 - 我知道这可以在Windows上顺利解决,所以也许有一个库正是这样做的.(另外,我用OpenGL渲染,但这是无关紧要的)
PS:也许我对这个问题了解不多,而且我没有问正确的问题,所以请随意指出我没有考虑过的方法.
只是想知道是否可以通过PHP脚本或javascript屏幕抓取您正在查看的页面?例如,在iframe中加载页面然后将该视图另存为JPEG?
我确定它有可能以某种方式,但是有没有任何已知的实现/库可以提供帮助?
screen-grab ×4
android ×2
fastlane ×1
fullscreen ×1
image ×1
java ×1
javascript ×1
linux ×1
php ×1
sdl ×1
security ×1
x11 ×1