2014-09-28 39 views
1

我使用的是FVWM2,它允許我通過窗口裝飾綁定將當前的X11 WindowID發送到任何我喜歡的腳本。Perl:使用X11獲取窗口的幾何形狀WindowID

所以一個點擊可能會在下面的表格執行CLI程序:

的bash#example.pl

在這種情況下WINDOWID指的是一個已經存在的窗口。沒有一個是由example.pl生成的。

如果exam​​ple.pl是一個屏幕捕獲實用程序,例如,它將需要由標識的窗口的X11幾何字符串來運行捕獲。我可以從xwininfo輸出解析這些數據。但那不是便攜式的。

如何從Perl中以編程方式從WindowID獲取X11幾何?

回答

2

您可以使用X11::GuiTest來獲取有關X11窗口的各種信息。

在你的情況,相應的命令是GetWindowPos(windowID)

use strict; use warnings; 
use X11::GuiTest qw/GetWindowPos GetRootWindow/; 

... 

my ($x, $y, $width, $height, $borderWidth, $screen) = GetWindowPos(GetRootWindow()); 

$width$height是窗口的尺寸,$borderWidth是在它的邊框,$screen是屏幕,它是。