xdotool模拟击键和鼠标移动
最近双十一抢红包的活动比较火,我也就去玩了一下,在一个小活动里,需要不停的点击左箭头和右箭头,让红包不停的跑,但自己点的比较慢,老是出现下面的图片

看到提示还有n多公里才跑完,感觉极度不爽,一怒之下,决定一定要跑过这个公里数,点的没那么快,就找个软件模拟去点击,于是就发现了 xdotool。
先看下最终的成果,直接超过了40000公里~~(然并卵,还是没有中红包)

下面来介绍以下xdotool
我用的是ubuntu,安装只需要只想如下命令:
sudo apt-get install xdotool
虽然xdotool是那样的直观,但它仍然是个脚本程序。因此,为了要正确地使用它,你还是得了解它的语法。不过敬请放心,相对于程序的功能而言,语法还是比较简单易学的。
首先,模拟击键是很容易的。你可以从终端敲入下面的命令:
xdotool key [name of the key]
如果你想要连接两个键,可以在它们之间使用 “+” 操作符。它看起来像这样:
xdotool key alt+Tab
这两个组合键可以为你切换窗口。
要想让 xdotool 帮你输入,可以使用以下命令:
xdotool type ''
这些对于基本的击键而言已经足够了。但是,xdotool 的众多长处之一,就是它可以获取特定窗口的焦点。它可以获取右边的窗口,然后在里面输入,所有你记录下的按键都不会人间蒸发,而是老老实实的如你所愿的出现在那里。要获得该功能,一个简单的命令可以搞定:
xdotool search --name [name of the window] key [keys to press]
该命令将在打开的窗口中搜索对应名称的窗口,并聚焦于该窗口,然后模拟击键。
来点更高级的,但很有用哦,xdotool 可以模拟鼠标移动和点击,看这命令:
xdotool mousemove x y
你可以将光标定位到屏幕坐标(x,y)(像素)。你也可以使用 “click” 参数来组合:
xdotool mousemove x y click
这会让鼠标移动到(x,y),然后点击鼠标左键。“1”代表鼠标左键,“2”则是滚轮,“3”则是右键。
最后,一旦你这些命令根植于你脑海,你也许想要实际转储于文件来编辑并试着玩玩。鉴于此,就会有超过一个语句以上的内容了。你需要的就是写一个bash脚本了:
#!/bin/bash
xdotool [command ]
xdotool [command ]
etc
或者你可以使用:
xdotool [filename]
这里你将命令写入到一个独立的文件中,然后通过将文件名作为 xdotool 命令的参数。
项目地址:http://www.semicomplete.com/projects/xdotool/
文档地址:http://www.semicomplete.com/projects/xdotool/xdotool.xhtml
关于之前小游戏模拟点击左右箭头的代码如下:
for i in {..}
do
xdotool key Left
xdotool key Right
done
非常之简陋,只是拿来玩下,虽然 xdotool 能够模拟很多抢红包游戏的点击,但希望大家还是谨慎一点~~O(∩_∩)O哈哈~~
参考摘录:http://www.linuxidc.com/Linux/2014-08/105996.htm
xdotool模拟击键和鼠标移动的更多相关文章
- xdotool xdotool模拟击键和鼠标移动--CutyCapt是一个截图工具,xvfb-run
最近在做一个生成网站缩略图的功能,从网上查到相关资料,现与大家分享,xvfb这个软件,安装上之后一条命令就能执行此操作.很容易的就生成了自己想要的缩略图. xvfb-run -运行在一个虚拟的X服务器 ...
- 使用C#模拟键盘输入、鼠标移动和点击、设置光标位置及控制应用程序的显示
1.模拟键盘输入(SendKeys) 功能:将一个或多个按键消息发送到活动窗口,就如同在键盘上进行输入一样. 语法:SendKeys.Send(string keys);SendKeys.SendWa ...
- 模拟TAB键
模拟TAB键 (2013/6/7 22:35:29) SelectNext(ActiveControl,True,True); 屏蔽Alt+F4关闭键 (2013/6/7 22:35:39) 启动某些 ...
- Python模拟键盘输入和鼠标操作
Python模拟键盘输入和鼠标操作 一.Python键盘输入模拟: import win32api import win32con win32api.keybd_event(17,0,0,0) #c ...
- 监听home键+模拟home键
一.监听home键首先定义一个广播接受者 HomeKeyReceiver package com.kale.floattest; import com.kale.floattest.service.D ...
- JQuery模拟网页中自定义鼠标右键菜单
题外话.......最近在开发一个网站项目的时候,需要用到网页自定义右键菜单,在网上看了各路前辈大神的操作,头晕目眩,为了达到目的,突然灵机一动,于是便有了这篇文章. 先放个效果图(沾沾自喜,大神勿喷 ...
- Win32 键盘事件 - 击键消息、字符消息、插入符号(光标)
注:以下内容为学习笔记,多数是从书本.资料中得来,只为加深印象,及日后参考.然而本人表达能力较差,写的不好.因非翻译.非转载,只好选原创,但多数乃摘抄,实为惭愧.但若能帮助一二访客,幸甚! 以下内容主 ...
- QuickHit快速击键小程序 --S2.4.5
我们现在要做一个项目 一个小小的程序 叫做快速击键 很明了的目的 就是在规定时间内,每次出现一组字母的组合,这个字母只能在DFJK中生成 然后输入相应的文字,按回车 自动判断输入的是否正确 在规定时间 ...
- Python 模拟鼠键
让python 自动操作桌面或应用窗口,点击,滑动鼠标,输入文字等 # coding=utf-8 from pymouse import PyMouse from pykeyboard import ...
随机推荐
- [转] How to import a large data set using XPO efficiently within a transaction
https://www.devexpress.com/Support/Center/Example/Details/T333879
- Extjs的学习及MIS系统实践应用(系列文章)
本系列文章从Extjs的实际运用出发,结合系统开发的实践经验,详细解释Extjs的基本控件及控件扩展的用法,和在平时的学习运用中一步一步查阅的资料.积累经验的集锦.标题及链接奉上,用一个小程序,开启了 ...
- Bookstore project using XAMPP 详细配置 Part 2
2. Implementation of MySQL database in “phpMyAdmin” 1) Create database named “tbl_book” 2) I changed ...
- Java中HashMap等的实现要点浅析
@南柯梦博客中的系列文章对Jdk中常用容器类ArrayList.LinkedList.HashMap.HashSet等的实现原理以代码注释的方式给予了说明(详见http://www.cnblogs.c ...
- PAT/查找元素习题集
B1004. 成绩排名 (20) Description: 读入n名学生的姓名.学号.成绩,分别输出成绩最高和成绩最低学生的姓名和学号. Input: 每个测试输入包含1个测试用例,格式为: 第1行: ...
- [.NET领域驱动设计实战系列]专题十一:.NET 领域驱动设计实战系列总结
一.引用 其实在去年本人已经看过很多关于领域驱动设计的书籍了,包括Microsoft .NET企业级应用框架设计.领域驱动设计C# 2008实现.领域驱动设计:软件核心复杂性应对之道.实现领域驱动设计 ...
- nginx(3、负载均衡)
当业务系统需要配置集群时,会用到nginx的负载均衡功能.nginx提供如下几种: 1.轮询(默认):将不同的请求随机分配给配置的服务器,若出现宕机,则自动切换:轮询可配置weight值,即权重,权重 ...
- Lock-Free 编程
文章索引 Lock-Free 编程是什么? Lock-Free 编程技术 读改写原子操作(Atomic Read-Modify-Write Operations) Compare-And-Swap 循 ...
- WPF,Silverlight与XAML读书笔记第四十七 - Silverlight与浏览器
说明:本系列基本上是<WPF揭秘>的读书笔记.在结构安排与文章内容上参照<WPF揭秘>的编排,对内容进行了总结并加入一些个人理解. 这部分内容主要介绍Silverlight与浏 ...
- dojo/dom-geometry元素大小
在进入源码分析前,我们先来点基础知识.下面这张图画的是元素的盒式模型,这个没有兼容性问题,有问题的是元素的宽高怎么算.以宽度为例,ff中 元素宽度=content宽度,而在ie中 元素宽度=conte ...