[前言]在校园网内,打开电脑的第一件事就是连网了。我学校使用的连网客户端是iNode(H3C认证客户端)。为了连网方便,我将iNode的快捷方式放在Ubuntu系统的桌面上了(如下图)。但是,每次开机需要连网时,我需要打开软件,然后要选择不同的按钮进行单击,非常麻烦。本文通过xdotool鼠标控制工具和shell脚本实现仅仅一次双击就可以自动连网,过程中鼠标自动点击。
#!/bin/bash
xdotool mousemove 153 63 click 1 click 1 # 将鼠标移动指定坐标位置;getmouselocation 命令可以得到鼠标位置; click 1 表示单击左键。
sleep 1 # 睡眠1秒,因为软件打开有一个反映时间,需要等一秒;
xdotool mousemove 153 63 click 1 click 1 # 重复上面动作,防止第一步没有成功;
sleep 1
xdotool mousemove 626 319 click 1 # 下面就是一路重复单击;
sleep 1
xdotool mousemove 635 275 click 1
sleep 1
xdotool mousemove 686 765 click 1
sleep 2 # 因为这里要打开一个窗口,需要多等1秒;
xdotool mousemove 587 248 click 1 # 这里单击了窗口的最小化按钮;
xdotool作为鼠标精灵类的软件,功能越来越强大。它可以通过命令的方式模拟键盘的输入及鼠标的活动、移动或改变窗口。
在Ubuntu下安装:
sudo apt-get install xdotool
在Fedora下安装:
sudo yum install xdotool
在xdotool安装好后,就可以使用相关的功能啦!比如,获取鼠标位置、移动鼠标、单击鼠标左键、双击,获取键盘输入……
你可以打开terminal终端(Ctrl+Alt+T)直接测试相关命令。
将鼠标移动你想要获取的屏幕位置,在terminal中输入以下命令,可以得到鼠标位置的X,Y坐标值。
xdotool getmouselocation
移动鼠标
xdotool mousemove 153 63 #将鼠标移动到(X,Y)坐标为(153,63)的位置;
单击鼠标左键、双击
xdotool的click命令控制鼠标的活动。在命令中,“1”代表鼠标左键,“2”则是滚轮,“3”则是右键。
xdotool click 1 #单击左键
xdotool click 1 click 1 #双击左键
睡眠等待
sleep 1 # 等待1秒
xdotool mousemove x y click 1
模拟击键使用命令xdotool key [name of the key]
如果你想要连接两个键,可以在它们之间使用“+”操作符。例如,切换窗口组合键 Alt+Tab。
xdotool key alt+Tab
要想让xdotool帮你输入,可以使用以下命令:
xdotool type ''
参考:Linux下的鼠标点击器;linux怎样安装xdotool,以及xdotool的使用;
你可以在terminal中使用vim,或直接使用图形界面文本编辑器 输入相关命令,像上面给出的实现代码一样。
编辑好脚本以后,需要将其修改为可执行模式,使用chmod命令;
$ chmod u+x iNode.sh # 为iNode.sh的user用户添加可执行权限;
$ ./iNode.sh #执行shell脚本
在Ubuntu中,shell脚本默认使用文件编辑器打开,可执行的shell脚本双击不会自动执行。因为,Ubuntu的Files文件管理器将shell脚本的默认打开方式设置为了文本编辑器。要实现双击运行shell脚本,需要修改Files的默认行为,操作如下图:
打开Files,选择【edit】-->【preference】
选择 Run executable text files when they are opened
如上设置,你每次双击就可以打开shell脚本。当然,你也可以设置为每次询问,防止错误执行了脚本文件!
参考:如何在双击后运行shell脚本