2014-09-28 40 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是屏幕,它是。