簡體   English   中英

XLIB C-通過PID獲取窗口

[英]XLIB C - get window by PID

我從xlib開始,我想知道C語言中的xlib是否有可能用其PID“捕獲”一個窗口,以便能夠移動窗口,調整窗口大小...?

例如,問我的程序firefox窗口的寬度和高度。 我不知道我的問題是否更清楚。

謝謝

我猜您是指擁有該窗口的(Linux或POSIX)客戶端的進程ID。

但是您的問題沒有實際意義:X客戶端可能在沒有進程ID的某些操作系統上,或者可能在遠程計算機上運行(與運行X11服務器的計算機不同),例如使用ssh -X (然后您無法對該pid做太多事情)。 確保了解有關X窗口系統的更多信息(以及客戶端,服務器,窗口管理器的角色)。

但是,您可以(痛苦地)研究X11窗口協議和體系結構 (包括X11核心協議 ), EWMH規范(以及ICCCM )。 查看_NET_WM_PIDXGetWMClientMachine

(Xlib和所有X協議真的很復雜 ;您需要閱讀數千頁才能理解所有這些協議;在2017年,這種工作可能已經過時了,例如由於Wayland的緣故;最好使用一些更高級的工具包,例如QtGTK )。

如果您想編寫一些X窗口管理器 (它們是復雜的野獸,因為與X相關的約定變得非常復雜),請考慮研究一些現有窗口管理器的源代碼並使其適應您的需求。

您可以遍歷所有窗口並以其名稱搜索所需的程序。 之后,您可以根據需要使用XMoveResizeWindow移動和調整大小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM