[前言]在校园网内,打开电脑的第一件事就是连网了。我学校使用的连网客户端是iNode(H3C认证客户端)。为了连网方便,我将iNode的快捷方式放在Ubuntu系统的桌面上了(如下图)。但是,每次开机需要连网时,我需要打开软件,然后要选择不同的按钮进行单击,非常麻烦。本文通过xdotool鼠标控制工具和shell脚本实现仅仅一次双击就可以自动连网,过程中鼠标自动点击。

准备工作

  1. iNodeClient 已经安装好了,并在系统的桌面放置了快捷方式;
  2. 安装xdotool工具(鼠标点击器);
  3. 设置了shell脚本的双击运行方式。

方法思想

  1. 使用xdotool工具,可以获取鼠标位置,控制单击、双击;
  2. 将相关命令写入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介绍

xdotool作为鼠标精灵类的软件,功能越来越强大。它可以通过命令的方式模拟键盘的输入及鼠标的活动、移动或改变窗口。

xdotool的安装

在Ubuntu下安装:

sudo apt-get install xdotool

在Fedora下安装:

sudo yum install xdotool

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的使用;

编辑shell脚本

了解上述xdotool的命令后,就可以在terminal中测试它们,得到自己想要的位置信息,测试需要的鼠标操作。

你可以在terminal中使用vim,或直接使用图形界面文本编辑器 输入相关命令,像上面给出的实现代码一样。

编辑好脚本以后,需要将其修改为可执行模式,使用chmod命令;

$ chmod u+x iNode.sh    # 为iNode.sh的user用户添加可执行权限;
$ ./iNode.sh    #执行shell脚本

双击直接运行shell脚本

在Ubuntu中,shell脚本默认使用文件编辑器打开,可执行的shell脚本双击不会自动执行。因为,Ubuntu的Files文件管理器将shell脚本的默认打开方式设置为了文本编辑器。要实现双击运行shell脚本,需要修改Files的默认行为,操作如下图:

打开Files,选择【edit】-->【preference】

选择 Run executable text files when they are opened

如上设置,你每次双击就可以打开shell脚本。当然,你也可以设置为每次询问,防止错误执行了脚本文件!

参考:如何在双击后运行shell脚本

Ubuntu上,使用shell脚本实现鼠标自动点击,打开并设置桌面软件相关推荐

  1. Python中pyautogui安装-用pyautogui写脚本让鼠标自动点击给摩尔庄园毛毛树浇水施肥

    目录 pyautogui安装教程 脚本内容 pyautogui安装教程 在C盘搜索cmd.exe 右键点击"以管理员身份运行",打开后进入安装的python3.7目录,进入后输入& ...

  2. 学习在Ubuntu 上运行 Shell 脚本

    刚刚学会用UBANTU20.04,会用wine装常用的应用,然后又想到运行安卓应用也搞上来用, 找了一圈又回到这个xDroid工具,从网站下载一个安装包xDroidInstall-x86_64-v7. ...

  3. 鼠标连点器,怎么玩转鼠标自动点击?

    鼠标连点器是一款非常便捷的工具,可以帮助我们自动进行鼠标点击操作.这种工具尤其适用于一些需要反复点击同一个位置的软件或游戏,在这些情况下手动点击会非常费时费力,而鼠标连点器就能够为我们节省很多宝贵的时 ...

  4. linux 定时执行搅拌,Linux上定时shell脚本

    本文主要介绍在Linux系统上部署定时器,定时执行shell脚本,通过脚本执行sql文件 sql文件 -- 创建表 create table if not exists iot_test.iot_ta ...

  5. Shell脚本交互:自动输入密码

    Shell脚本交互:自动输入密码 平时在控制台输入指令如:sudo.ssh.ftp或者修改admin权限的文件时候都会要求输入password,但是在she'll脚本运行过程中该如何交互实现自动输入密 ...

  6. Ubuntu利用crontab+shell脚本实现Scrapy每日定时爬取网站

    Ubuntu利用crontab+shell脚本实现Scrapy每日定时爬取网站 原创文章.码字不易,转载请注明出处和链接,谢谢! 1.环境保障 自己利用scrapy编写的智联招聘网站"大数据 ...

  7. 服务器免密码传输文件,CentOS7,使用 scp 命令, ssh 连接方式,免密码传输文件到远程服务器,免密执行远程服务器上的 shell 脚本...

    如题 如果提示:-bash: scp: command not found, 执行下面的命令安装:1 yum install -y openssh-clients 免密码配置通常用 scp 命令通过 ...

  8. java调用机器上的shell脚本

    java调用机器上的shell脚本,可以这样方便的通过shell脚本调用本机的C.C++等程序 Process process = null; Runtime runTime = Runtime.ge ...

  9. 签名证书无效”-在vCenter Server Appliance 6.5 / 6.7上使用Shell脚本重新生成和替换已过期的STS证书(76719)

    "签名证书无效"-在vCenter Server Appliance 6.5 / 6.7上使用Shell脚本重新生成和替换已过期的STS证书(76719) 上次更新时间:2020/ ...

  10. python自动点击脚本_用Python实现鼠标自动点击

    前言: 最近玩某页游时遇到一个重复任务,需要不停的接/交任务道具,数量巨大又十分麻烦,想去网上下脚本又找不到合适的,于是整了一个可以实现鼠标自动点击的小玩意.因为我之前没有任何编程基础,这两天自学又走 ...

最新文章

  1. NLP的一些学习资料
  2. 三国志、英雄无敌玩腻了?没关系,我教你开发个战旗游戏玩玩
  3. MyBatis 架构分层与模块划分-基础支持层
  4. MySQL Cookbook 学习笔记-02
  5. MyEclipse 2015优化技巧
  6. [vb]SendMessageA函数
  7. 【C语言】为什么指明数组的列数?
  8. 技巧篇:常用的vba代码汇总
  9. 【WIN11】微软拼音输入法单字频率固定方法
  10. 江苏自考计算机专业,2021年江苏自考本科专业选择:计算机类专业前景如何?有哪些科目?...
  11. freemaker与es6模板字符串语法冲突问题
  12. 贤华老师教你正确护肤,卸妆第一步 选择卸妆产品很重要
  13. [C#]C# 如何捕获键盘按钮和组合键以及KeyPress/KeyDown事件之间的区别 (附KeyChar/KeyCode值)
  14. html5拖放详解,HTML5拖拽/拖放(drag drop)详解
  15. imac mini 双系统_iMac,Mini和Pro:Apple的台式Mac比较
  16. 智能家居到智慧家庭-由远程操作设备到家庭智慧服务
  17. 140版本 boost_怎么分辨阿迪UB3.0和UB4.0,boost各版本有什么区别?
  18. jstree树形结构的使用
  19. 【SAP】折旧、摊销与减值的区别
  20. [转]程序员常用不常见很难得的地址大全,转来自己用

热门文章

  1. 基于matlab测量物体直径,基于MATLAB的不规则面积图像测量
  2. 阿里云对象存储OSS
  3. c 语言可以直接调用max,c语言宏定义函数如何调用
  4. 舵机信号线怎么区分,有什么用
  5. C语言实现洛谷题库中的 P1125 [NOIP2008 提高组] 笨小猴
  6. 微信小程序前端设计(超级实用哦)
  7. 西安理工大学计算机科学与技术分数线,2017西安理工大学各专业录取分数线
  8. 机器人、控制领域顶级期刊
  9. 电容笔能否替代Apple pencil?高性价比电容笔排行
  10. 牛顿柯特斯公式及复合形式、龙贝格求积公式,高斯勒让德求积公式