我在Qt/C++中使用gstreamer,我想使用"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
...才能拿到身份证。(例如,我可以使用"ximagsrc xid=0x02a00002“)
但是我正在用Qt/C++和
我想自动得到这些值。我可以通过C++启动这个命令行,但是如果计算机上没有安装"wmctrl“,我的程序就不能工作。(这对我来说似乎也是一种不好的方式,不是吗?)
有什么方法可以用C++或Qt来完成吗?
谢谢,
祝你今天愉快!
发布于 2016-03-29 15:13:30
与使用wmctrl不同,您还可以使用xwininfo,这可能更容易获得。
如果要在程序中实现此功能,可以使用xlib或xcb实现从X服务器检索此信息的客户端。检查wmctrl或xwininfo的源代码,看看他们是如何做到的。
发布于 2016-03-29 15:07:38
尝试使用xwininfo:xwininfo -root -children
发布于 2016-04-01 07:21:55
谢谢你的回答。
最后,我获得了wmctrl的源代码,并对其进行了修改,以得到我需要的东西--我猜它可以与windows一起工作。不幸的是,它不工作的Mac,但无论如何,gstreamer为Mac录音屏幕仍然是一个不好的插件,无法做到这一点。
https://stackoverflow.com/questions/36287741
复制相似问题