当前位置: 首页 > 工具软件 > xdotool > 使用案例 >

Linux下的按键精灵xdotool

班经亘
2023-12-01

xdotool

Linux下的按键精灵,提供了比较全面的功能。

安装

yum install xdotool

功能

部分功能,可能描述不准确,所以没标注。

  • getactivewindow 获得当前活动窗口的pid
  • getwindowfocus 获得当前聚焦窗口的pid
  • getwindowname 获得窗口名字
  • getwindowpid 获得窗口pid
  • getwindowgeometry
  • getdisplaygeometry
  • search 查找窗口
  • selectwindow 选中窗口
  • help
  • version
  • behave windows event注册器(鼠标进、离、点;窗口聚焦、失焦)
  • behave_screen_edge windows event注册器,根据鼠标范围触发
  • click 鼠标点击
  • getmouselocation 获得鼠标位置
  • key 按键
  • keydown 按下键
  • keyup 弹起键
  • mousedown 鼠标按下
  • mousemove 鼠标移动
  • mousemove_relative 鼠标相对移动(可以使用角度和距离)
  • mouseup 鼠标弹起
  • set_window 给窗口赋值(名称、图标等等)
  • type 打字,可以当文件当参数
  • windowactivate 激活窗口
  • windowfocus 聚焦窗口
  • windowkill 关窗口
  • windowmap
  • windowminimize 窗口最小化
  • windowmove 窗口移动
  • windowraise 我在linux实践了一下,弹了一个提示框。。。
  • windowreparent 窗口换爹
  • windowsize 窗口改大小
  • windowunmap
  • set_num_desktops
  • get_num_desktops
  • set_desktop
  • get_desktop
  • set_desktop_for_window
  • get_desktop_for_window
  • get_desktop_viewport
  • set_desktop_viewport
  • exec
  • sleep

可以向指定窗口(–window windowPid)发送鼠标(mousemove、click)、键盘(key)动作的信息。还能自定义组合键。

也可以连起来写,比如:
xdotool search --name "App.java" windowactivate --sync mousemove --sync 800 400 click --repeat 2 1 key a type hi

例子

作用:启动脚本10秒后,定时执行java代码,执行完命令,使用xdotool翻页。

#! /bin/bash

sleeptime=1
savepath="./capture/"
needbeep="true"

if [[  $1 ]]; then
    sleeptime=$1
fi
if [[  $2 ]]; then
    savepath=$2
fi
if [[  $3 ]]; then
    needbeep=$3
fi

echo "sleeptime = $sleeptime"
echo "savepath=$savepath"
echo "needbeep=$needbeep"

# before work;sleep 10
sleep 10

while :
do
    sleep $sleeptime
    java -cp ~/javacode/bin app.App $savepath $needbeep
    xdotool key Page_Down
done
 类似资料: