zoukankan      html  css  js  c++  java
  • 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 1

    这会让鼠标移动到(x,y),然后点击鼠标左键。“1”代表鼠标左键,“2”则是滚轮,“3”则是右键。

    最后,一旦你这些命令根植于你脑海,你也许想要实际转储于文件来编辑并试着玩玩。鉴于此,就会有超过一个语句以上的内容了。你需要的就是写一个bash脚本了:

    #!/bin/bash
    xdotool [command 1]
    xdotool [command 2]
    etc

    或者你可以使用:

    xdotool [filename]

    这里你将命令写入到一个独立的文件中,然后通过将文件名作为 xdotool 命令的参数。

    项目地址:http://www.semicomplete.com/projects/xdotool/

    文档地址:http://www.semicomplete.com/projects/xdotool/xdotool.xhtml

    关于之前小游戏模拟点击左右箭头的代码如下:

    for i in {1..1000}
    do
       xdotool key Left
       xdotool key Right
    done

    非常之简陋,只是拿来玩下,虽然 xdotool 能够模拟很多抢红包游戏的点击,但希望大家还是谨慎一点~~O(∩_∩)O哈哈~~

    参考摘录:http://www.linuxidc.com/Linux/2014-08/105996.htm

  • 相关阅读:
    LeetCode 382. Linked List Random Node
    LeetCode 398. Random Pick Index
    LeetCode 1002. Find Common Characters
    LeetCode 498. Diagonal Traverse
    LeetCode 825. Friends Of Appropriate Ages
    LeetCode 824. Goat Latin
    LeetCode 896. Monotonic Array
    LeetCode 987. Vertical Order Traversal of a Binary Tree
    LeetCode 689. Maximum Sum of 3 Non-Overlapping Subarrays
    LeetCode 636. Exclusive Time of Functions
  • 原文地址:https://www.cnblogs.com/CraryPrimitiveMan/p/4944982.html
Copyright © 2011-2022 走看看