2017年7月27日木曜日

特定プロセスが作った窓を探す

X画面を直接キャプチャしようとするといろいろ問題があるので、X画面キャプチャのためにはXephyrやXnestを起動してその窓を探す必要がある。PIDはwODMからそれらを起動する時に得られるとしても、特定PIDの窓を探す方法がわからなかったので調査した。

StackOverflowの「How to get an X11 Window from a Process ID?」にあった。同様のエントリはもうひとつ。他の似たようなエントリはシェルスクリプトを使うものだったのでこの件とは無関係だ。

それによるとどうやら「_NET_WM_PID」ってラベルでAtomとして書き込まれているらしい。X11には窓に任意のデータを追加する機能があるのでXLibあたりがそれを使って書いといてくれているようだ。

--

間違い。_NET_WM_PIDとかの値はアプリケーションが自分で設定する必要がある。おそらく各種フレームワークはやってくれるだろうけど。

0 件のコメント:

コメントを投稿

引っ越すことにした。

引っ越し先。 見えるかな。