【问题标题】:Send xdotool keypresses/clicks to multiple windows simultaneously同时将 xdotool 按键/点击发送到多个窗口
【发布时间】:2016-02-18 00:38:25
【问题描述】:

我希望能够运行一个 bash 脚本,它将按键和点击发送到多个窗口。这不一定必须用 xdotool 来完成,如果有替代品我会很乐意使用它。最好它可以与 bash 一起使用。

所以,如果我有三个窗口,我想将“w”键发送到所有这些窗口,我需要执行一些操作,例如将活动窗口设置为快速连续的每个窗口,然后发送 w 键。

我希望能够同时进行,所以这不会很好。

【问题讨论】:

    标签: bash xdotool


    【解决方案1】:

    您需要事先知道窗口名称,即在运行脚本之前......您可以这样做

    #!/bin/bash
    for winname in "$@"
    do
        xdotool type --window $(xwininfo -int -name "$winname" | egrep -o 'Window id: [0-9]+' | cut -d ' ' -f 3) w
    done
    

    输出

    $./script1.bash "*Untitled 1 - Mousepad" "*(Untitled)" "[No Name] + - GVIM"
    

    以上脚本将w 击键发送到命令行上指定的所有窗口名称。

    PS:对我来说,我按以下顺序打开了 3 个编辑器:Mousepad、Leafpad 和 GVIM

    【讨论】:

    • 对我来说有点复杂,但是,经过一番修补后,我让它正常工作。谢谢您的帮助!我只需要弄清楚它是如何工作的。
    【解决方案2】:

    您可以使用xdotool 为您完成繁重的工作。
    它将使用名称、类或类名搜索窗口(使用 xprop 或 xwininfo 获取详细信息)。
    这是一个将“Hello World”输出到所有运行的 libreoffice writer 文档的示例。

    #!/bin/bash
    for pid in $(xdotool search --class "libreoffice-writer")
    do
        xdotool type --window $pid 'Hello World'
    done
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-18
      • 2011-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-27
      • 1970-01-01
      相关资源
      最近更新 更多