【问题标题】:Is there a way to take screen shots of desktop that not current active one using mss?有没有办法使用 mss 截取当前未激活的桌面的屏幕截图?
【发布时间】:2020-02-14 05:53:06
【问题描述】:

我正在尝试使用 mss 和 opencv 播放网站时录制屏幕,但我不希望程序使用当前屏幕。我想让它们在第二个桌面上播放,比如下图中的桌面 2 macos have 4 desktop setup

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

【问题讨论】:

  • 目的是什么?之后需要互动还是只看截图?
  • 我在问题中所说的目的,我想在一个桌面上工作,将录制工作保持在另一个桌面上。

标签: python python-mss


【解决方案1】:

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

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

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

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

1 基本上是因为不活动的桌面没有渲染。


如果有人在寻找截取其他监视器的方法时看到此问题,请查看此答案的编辑历史记录。

【讨论】:

  • 我认为问题是关于虚拟桌面/工作区,不是吗?
  • 我已经更新了关于虚拟桌面的答案。
  • 是的,它与虚拟桌面/工作区有关。我想在一个桌面/工作区工作,在另一个桌面/工作区继续录制工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多