我在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
...
获取ID。 (我能够使用" ximagsrc xid = 0x02a00002"例如)
但我在Qt / C ++和
编程我想自动获取这些值。我可以通过C ++启动这个命令行但是如果" wmctrl"没有安装在计算机上,我的程序将无法正常工作。 (这对我来说似乎也是一种糟糕的方式,不是吗?)
有没有办法用C ++或Qt做到这一点?
谢谢,
度过美好的一天!
答案 0 :(得分:1)
您可以使用wmctrl
,而不是使用xwininfo
,而这可能更容易使用。
如果要在程序中实现此功能,可以使用xlib或xcb来实现从X服务器检索此信息的客户端。查看wmctrl
或xwininfo
的源代码,了解他们是如何做到的。
答案 1 :(得分:0)
尝试使用xwininfo:xwininfo -root -children
答案 2 :(得分:0)
谢谢你的答案。
我终于拿了wmctrl的源代码并将其更改为我需要的东西我猜它可以用于windows。不幸的是,它不适用于Mac,但无论如何gstreamer for Mac录制屏幕仍然是一个糟糕的插件无法做到这一点。