gpt4 book ai didi

c - XLIB C - 通过 PID 获取窗口

转载 作者:太空宇宙 更新时间:2023-11-04 06:17:26 25 4
gpt4 key购买 nike

我从 xlib 开始,我想知道是否可以使用 C 中的 xlib 来“捕获”带有 PID 的窗口,以便能够移动窗口、调整窗口大小...?

例如,询问我的程序 firefox 窗口的宽度和高度。不知道我的问题是否更清楚。

谢谢

最佳答案

我猜你指的是拥有该窗口的(Linux 或 POSIX)客户端的进程 ID。

但您的问题没有实际意义:X 客户端可能在某些没有进程 ID 的操作系统上,或者它可能在远程机器上运行(与运行 X11 服务器的机器不同) ), 例如使用 ssh -X (然后你不能用那个 pid 做太多)。请务必了解有关 X Window System 的更多信息(以及客户端、服务器、窗口管理器的角色)。

但是,您可以学习(带着痛苦和小心)X11 Window protocols and architecture (包括 X11 core protocol ), EWMH规范(以及 ICCCM )。查看_NET_WM_PID & XGetWMClientMachine

(Xlib 和所有 X protocols 确实复杂;您需要阅读数千页才能理解所有这些内容;在 2017 年,这种努力可能已经过时,例如,因为Wayland ;最好使用一些高级工具包,如 QtGTK )。

如果你想写一些X window manager (它们是复杂的野兽,因为与 X 相关的约定已经变得非常复杂),考虑研究一些现有的源代码并根据您的需要调整它....

关于c - XLIB C - 通过 PID 获取窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42457757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com