小编典典
xwininfo和xprop允许检索您想要的内容,但这有点棘手。
xwininfo允许检索所有已知的窗口,并且xprop可以查询_NET_WM_PID参数的有关单个窗口ID的X。
到目前为止,一种骇人听闻的方法是:
#!/bin/sh
findpid=$1
known_windows=$(xwininfo -root -children|sed -e 's/^ *//'|grep -E "^0x"|awk '{ print $1 }')
for id in ${known_windows}
do
xp=$(xprop -id $id _NET_WM_PID)
if test $? -eq 0; then
pid=$(xprop -id $id _NET_WM_PID|cut -d'=' -f2|tr -d ' ')
if test "x${pid}" = x${findpid}
then
echo "Windows Id: $id"
fi
fi
done
结果:
mycroft:~ $ ./find_windows.sh 1919
Windows Id: 0x1800748
Windows Id: 0x181b221
Windows Id: 0x1803ad5
Windows Id: 0x181f681
Windows Id: 0x181f658
Windows Id: 0x180006d
Windows Id: 0x1800003
Windows Id: 0x1800001
Windows Id: 0x180001e
如您将看到的,即使您仅在屏幕上看到一个窗口,单个进程也可能具有一定数量的已知窗口。
也许您应该获得这些工具资源,以便做出自己想要的东西。
2020-06-07