我正在将gstreamer与Qt / C ++一起使用,我想使用“ ximagsrc xid = [MyXid]”,用计算机上每个窗口的Xid替换[MyXid]。
我发现以下命令行:

wmctrl -l
0x02a00002  0 Fry XdndCollectionWindowImp
0x02a00005  0 Fry unity-launcher
0x02a00008  0 Fry unity-panel
0x02a0000b  0 Fry unity-dash
0x02a0000c  0 Fry Hud
0x02c0000a  0 Fry Desktop
...


获取ID。 (例如,我可以使用“ ximagsrc xid = 0x02a00002”)

但是我正在用Qt / C ++和

我想自动获取这些值。我可以通过C ++启动此命令行,但是如果计算机上未安装“ wmctrl”,则我的程序将无法运行。 (对我来说这似乎也是一种不好的方法,不是吗?)

有没有办法用C ++或Qt做到这一点?

谢谢,

祝你今天愉快 !

最佳答案

除了使用wmctrl,还可以使用xwininfo,它可能更容易使用。

如果要在程序中实现此功能,则可以使用xlib或xcb来实现从X服务器检索此信息的客户端。检查wmctrlxwininfo的源代码以了解它们的工作方式。

关于c++ - Qt/C++获取所有应用程序窗口的Xid,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36287741/

10-12 20:38