![xdotool,单击并按住并移动鼠标](https://linux22.com/image/1424520/xdotool%EF%BC%8C%E5%8D%95%E5%87%BB%E5%B9%B6%E6%8C%89%E4%BD%8F%E5%B9%B6%E7%A7%BB%E5%8A%A8%E9%BC%A0%E6%A0%87.png)
我想自动执行一项任务,我需要滚动类似 Google 的地图界面,我通常会这样做:
- 点击一个点
- 按住点击
- 鼠标相对向左移动 100 像素
- 停止持有
- 稍等一下,返回1
但是我试过了,$ xdotool click 1 mousemove_relative 0 100
没有用,好像没有效果。我该怎么做才能达到这个目的?
答案1
纯xdotool版本
假设你的位置是 500 500
xdotool mousemove 500 500
xdotool mousedown 1
xdotool mousemove_relative 0 100
xdotool mouseup 1
sleep 1
如果您愿意,也可以将其压缩为仅一行:
xdotool mousemove 500 500 mousedown 1 mousemove_relative 0 100 mouseup 1 sleep 1
答案2
你可以使用陳文记录您的鼠标动作并在需要时重播。
它有一个名为的 GUI gnee
。上次我尝试时没有得到很好的结果,但那是很久以前的事了,从那时起情况可能已经发生了变化。
以下是我用于录音的内容:
$ sleep 2 ; xmessage ready ; sleep 1 ; cnee --record --mouse --keyboard -o cnee.data
这可让您在开始前四处走动并做好准备。ok
准备好后单击,等待 1 秒并执行操作。Ctrl-c完成后。
然后你可以用以下方法重播它:
$cnee --replay -f cnee.data -v -e /dev/null -ns
您甚至可以比原始版本更快地重播它(!)
$cnee --replay --speed-percent 40 -f cnee.data -v -e /dev/null -ns
您可能必须编辑掉的结尾cnee.data
以删除您在操作和之间所做的事情Ctrl-c。
答案3
如果您想按住,等待 1 秒,移动到坐标 0 0,再等待 1 秒,然后按住,请尝试以下操作:
xdotool mousedown 1 sleep 1 mousemove 0 0 sleep 1 mouseup 1