如何以编程方式操作应用程序窗口?

gre*_*reg 3 gnome ruby python development window-manager

任何人都知道一个库,最好是 ruby​​ 或 python,它可以让您访问打开的应用程序列表并让您操作它们?我真正想做的就是改变它们的几何形状并最小化或关闭它们。我一直在使用 ruby​​-gnome2,但除了您自己的进程之外,还没有找到任何用于操作窗口的东西。

我正在使用 10.10。

dv3*_*0ea 5

最简单的方法是使用wmctrl。您可以阅读man wmctrl以了解如何使用它。

sudo apt-get install wmctrl
Run Code Online (Sandbox Code Playgroud)

您基本上可以将命令行绑定到“Window”类,并向其添加在后台使用 wmctrl 命令的方法。

class Window
    @@windows = []
    def self.windows
        @@windows
    end
    def self.get_windows
        @@windows.clear
        `wmctrl -l`.split("\n").map do |str|
            @@windows << self.class.new(str.split(' ')*)
        end
    end
    def initialize window_id, desktop_id, client_machine, window_title
        #set up object here
    end
    #add other methods here
end
Run Code Online (Sandbox Code Playgroud)

这应该是一个很好的起点。它没有经过测试或任何东西,但你应该能够从这里解决它。您现在可以添加实例方法,例如。change_geometry,可以使用该-r <WIN> -e <MVARG>选项。

在执行此操作之前,您应该大致熟悉管道IO

也许当你完成了你需要做的事情后,你可以将它作为一个 ruby​​ 库分发,并为 Debian/Ubuntu 打包。