我正在将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服务器检索此信息的客户端。检查wmctrl
或xwininfo
的源代码以了解它们的工作方式。
关于c++ - Qt/C++获取所有应用程序窗口的Xid,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36287741/