在桌面上的指定点(X11,Ubuntu)自动调用xprop

在桌面上的指定点(X11,Ubuntu)自动调用xprop,ubuntu,x11,xdotool,Ubuntu,X11,Xdotool,在终端中输入后,我必须点击一个窗口以获得结果 我想把它自动化。我想在一个指定的位置得到WM_NAME-Window名称,比如x=10和y=40(BFB) 每个命令本身都在工作,但并非全部一起工作。如何将其放入执行所有命令的脚本中?问题是xprop阻止了鼠标单击,因此需要在后台执行。严格来说,wait不是必需的,但是通过等待xprop完成,脚本可以更干净地退出 xprop | grep WM_NAME\(STRING\) sleep(1) xdotool mousemove 10 40 clic

在终端中输入后,我必须点击一个窗口以获得结果

我想把它自动化。我想在一个指定的位置得到WM_NAME-Window名称,比如x=10和y=40(BFB)


每个命令本身都在工作,但并非全部一起工作。如何将其放入执行所有命令的脚本中?

问题是xprop阻止了鼠标单击,因此需要在后台执行。严格来说,
wait
不是必需的,但是通过等待
xprop
完成,脚本可以更干净地退出

xprop | grep WM_NAME\(STRING\) 
sleep(1)
xdotool mousemove 10 40 click 1

要在python代码中实现这一点,如果其他人感兴趣:

#!/bin/bash
xprop | grep WM_NAME\(STRING\) &
pid=!$
sleep 1
xdotool mousemove 10 40 click 1
wait $pid

如果您想稍微调整输出,请键入“WM_CLASS”。

Wny不使用窗口ID或名称?Hm,最好将鼠标重置到以前的位置。你知道怎么做吗?试试xdotool mousemove 10 40单击1 mousemove还原
#!/bin/bash
xprop | grep WM_NAME\(STRING\) &
pid=!$
sleep 1
xdotool mousemove 10 40 click 1
wait $pid
import subprocess as s

p=s.Popen(["xprop", "WM_NAME"], stdout=s.PIPE)
r=s.Popen(["xdotool", "mousemove", "10", "40", "click", "1", "mousemove", "restore"], stdout=s.PIPE)

out, err = p.communicate()
print(out)