1

如何使用新的默认显示服务器 Wayland 在 Ubuntu 17.10 上枚举桌面上的所有顶级窗口(并进一步获取其标题和其他属性)?

之前我们使用 X11 / XLib 来实现这一点,但现在使用 Wayland 这不再可靠了。一些窗口,如 gedit 和 LibreOffice 不再出现在窗口列表中,而其他工具(如)xwininfo也不再适用于这些窗口。

目前我们使用以下技术:

以 X.org 作为默认显示服务器的 Ubuntu 17.04:

  • X11-XLib / X_QueryTree

视窗:

  • Win32-API / EnumerateWindows(也存在 Windows 自动化 API)

苹果系统:

  • NSAccessibility / AXUIElementCreateApplication、AXUIElementCopyAttributeValue、kAXChildrenAttribute

带有 Wayland 的 Ubuntu 17.10:

  • ???

到目前为止,我还没有找到任何关于 Wayland 和可访问性或 UI 自动化的 API 文档。

有人可以帮忙吗?一个面向未来的解决方案/技术如何在 Linux/Ubuntu 上访问桌面窗口会很好。

问候。

4

1 回答 1

0

事实上,我认为你不会。Wayland 的设计方式让客户彼此不了解。您正在使用的特定 Wayland 作曲家中可能有一个特殊的 API - 但它不是协议的一部分。(例如 GNOME 的作曲家有一个 DBus API 来捕获屏幕)

于 2018-01-26T14:04:11.807 回答