Python
如何獲取目前焦點視窗的位置?
我想用 Python 在 Ubuntu 系統上截取目前焦點視窗的螢幕截圖,如何使用命令行獲取目前焦點視窗的位置(左、上、右、下)?
的輸出
ps aux | grep -wE 'Xorg|Wayland'
test 1144 6.9 1.9 798024 76092 tty2 Sl+ 13:29 24:20 /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -keeptty -verbose 3 test 29912 0.0 0.0 17668 668 pts/1 S+ 19:20 0:00 grep --color=auto -wE Xorg|Wayland
使用xdotool:
$ xdotool getwindowfocus getwindowgeometry --shell WINDOW=94371847 X=604 Y=229 WIDTH=1303 HEIGHT=774 SCREEN=0
如果你有左上角的座標和視窗的大小,很容易推斷出你要求的座標:
- 右上角將在 X=1907 (604+1303), Y=229
- 左下角將在 X=604, Y=1003 (229+774)
- 右下角將在 X=1907 (604+1303), Y=1003 (229+774)
因此,您可以將其組合成一個小函式,為您提供 4 個座標:
showCoords(){ eval "$(xdotool getwindowfocus getwindowgeometry --shell)" topLeft="$X,$Y" topRight="$((X+WIDTH)),$Y" bottomLeft="$X,$((Y+HEIGHT))" bottomRight="$((X+WIDTH)),$((Y+HEIGHT))" printf 'top left:%s\ntop right:%s\nbottom left:%s\nbottom right:%s\n' "$topLeft" "$topRight" "$bottomLeft" "$bottomRight" }
如果你現在執行
showCoords
,你會得到:$ showCoords top left:604,229 top right:1907,229 bottom left:604,1003 bottom right:1907,1003