首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt/C++获取所有应用程序窗口的Xid

Qt/C++获取所有应用程序窗口的Xid
EN

Stack Overflow用户
提问于 2016-03-29 14:50:14
回答 3查看 450关注 0票数 0

我在Qt/C++中使用gstreamer,我想使用"ximagsrc xid=MyXid",用我计算机上每个窗口的Xid替换MyXid。我找到了以下命令行:

代码语言:javascript
复制
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来完成吗?

谢谢,

祝你今天愉快!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-29 15:13:30

与使用wmctrl不同,您还可以使用xwininfo,这可能更容易获得。

如果要在程序中实现此功能,可以使用xlib或xcb实现从X服务器检索此信息的客户端。检查wmctrlxwininfo的源代码,看看他们是如何做到的。

票数 1
EN

Stack Overflow用户

发布于 2016-03-29 15:07:38

尝试使用xwininfoxwininfo -root -children

票数 0
EN

Stack Overflow用户

发布于 2016-04-01 07:21:55

谢谢你的回答。

最后,我获得了wmctrl的源代码,并对其进行了修改,以得到我需要的东西--我猜它可以与windows一起工作。不幸的是,它不工作的Mac,但无论如何,gstreamer为Mac录音屏幕仍然是一个不好的插件,无法做到这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36287741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档