java - Linux:如何获取所有可见窗口的列表

标签 java linux gnome

免责声明:我知道有一个非常相似的 question关于这个话题。

我正在尝试获得与 NoozNooz42 描述的完全相同的结果 here .然而mdma答案不符合我的需要,因为我有兴趣在 linux 上做同样的事情。如果重要的话,最好使用 gnome。因此,将 JNA 与 user32 库一起使用在这里不是一个选项(或者是吗?)。

任何建议都很好,我几乎找不到关于该主题的任何内容。

附言 我发现的唯一一件事是 wmctrl 命令(我最终可以在 java 中调用和解析它)列出窗口但没有给我任何关于 z 顺序的信息。

更新: 如果我能在 z 顺序更改时收到通知/回调,那就太完美了。

最佳答案

使用 xprop,它显示窗口属性。 z 顺序的窗口列表位于根窗口的属性 _NET_CLIENT_LIST_STACKING 中:

xprop -root | grep '_NET_CLIENT_LIST_STACKING(WINDOW)'

输出应该是这样的:

_NET_CLIENT_LIST_STACKING(WINDOW): window id # 0x2000003, 0x4000004,
0x1c00004, 0x1c00030, 0x1c00033, 0x2e00004

稍后您可以获得有关特定窗口的更多信息:

xprop -id <id>

xwininfo -id <id>

关于java - Linux:如何获取所有可见窗口的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15638885/

相关文章:

python - Debian 上的端口映射 HTTP 服务器?

c++ - 在纯 Qt 应用程序中使用 KDE 系统主题

java - 如何在“取消”按钮上清除时间选择器的共享首选项?

python - Scrapy 导入 100mb 的 XML 提要 - 内存错误

java - 为 ActiveJdbc 模型定义类抛出异常

linux - 查找与某个 'count of commits' 匹配的所有 git 提交

python - 如何在 Gtk 中制作类似 Lollypop 的侧边栏?

linux - * NIX GUI如何工作?

java - Java 中的对象池

java - 如果没有 @Inject 构造函数或 @Provides 注释的方法,则无法提供 - Dagger 2