首页 > 解决方案 > 有没有办法使用 mss 截取当前未激活的桌面的屏幕截图?

问题描述

我试图在使用 mss 和 opencv 播放网站时录制屏幕,但我不希望程序使用当前屏幕。我想把它们放在第二个桌面上玩,就像下图中的桌面 2 macos 有 4 个桌面设置

所以我可以在桌面 1 上工作而不会受到任何干扰。

标签: pythonpython-mss

解决方案


目前,MSS 不支持捕获非活动工作区。

This Ask Ubuntu answer表示(引用“已归档”(即明显已删除)论坛上的帖子)这在 X Window 系统中通常是不可能的。1答案讨论了使用Xvfb作为解决方法,但这似乎对屏幕捕获软件没有用,因为它本质上是一种在虚拟显示器上运行应用程序的方法,然后可以正常捕获。

如果可以在 macOS 上截取非活动空间的屏幕截图(我认为这不太可能,原因与 X 相同),您可能需要使用 CoreGraphics 的非 API 函数(因为截至 2016 年没有空间的公共 API)。这个 GitHub 存储库记录了这些功能,尽管该存储库最后一次更新是在 2016 年,所以它可能没有你想要的那么有用。

另一个可能与操作系统无关的选项是运行无头虚拟机并对其进行截图。效果如何取决于虚拟机管理器和虚拟机本身,以及您如何截取屏幕截图。

1基本上是因为未呈现非活动桌面。


对于在寻找截取其他显示器屏幕截图的方法时看到此问题的任何人,请查看此答案的编辑历史记录。


推荐阅读