Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Linux:如何获取所有可见窗口的列表_Java_Linux_Gnome - Fatal编程技术网

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

Java Linux:如何获取所有可见窗口的列表,java,linux,gnome,Java,Linux,Gnome,免责声明:我知道在这个话题上有一个非常类似的问题 我试图得到与NoozNooz42描述的完全相同的结果。然而,这个答案并不适合我的需要,因为我对在linux上做同样的事情感兴趣。如果有关系的话,最好和侏儒在一起。因此,将JNA与user32库一起使用在这里不是一个选项(或者是吗?) 任何建议都很好,我几乎找不到关于这个话题的任何建议 附言。 我唯一发现的是wmctrl命令(我最终可以在java中调用并解析它),它列出了窗口,但没有给我任何关于z顺序的信息 更新: 如果我能在z顺序更改时收到通知/

免责声明:我知道在这个话题上有一个非常类似的问题

我试图得到与NoozNooz42描述的完全相同的结果。然而,这个答案并不适合我的需要,因为我对在linux上做同样的事情感兴趣。如果有关系的话,最好和侏儒在一起。因此,将JNA与user32库一起使用在这里不是一个选项(或者是吗?)

任何建议都很好,我几乎找不到关于这个话题的任何建议

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

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

使用xprop,它会显示窗口属性。按z顺序排列的窗口列表位于根窗口的属性
\u NET\u CLIENT\u List\u 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>
xprop-id

xwininfo-id

回答得很好,谢谢+1对于这个问题,我仍然希望使用纯java解决方案。请参阅我对这个问题的更新。您知道有什么东西会在z顺序更改时通知我吗?
xev-root
将显示根窗口属性中的所有更改。只需在网络、客户、列表堆叠后进行过滤即可。这太棒了。我现在才开始想象我的可能性是什么。这是所有常见linux发行版中的标准包吗?
xprop-root\u NET\u CLIENT\u LIST\u STACKING
不使用grep过滤它。
xwininfo -id <id>