使用Python制作微信跳一跳辅助


Posted in Python onJanuary 31, 2018

1.  前言

微信的跳一跳相信大家都很熟悉了,而且现在各种外挂、辅助也是满天飞,反正本人的好友排行榜中已经是八九百都不足为奇了。某宝上一搜一堆结果,最低的居然只要3块多,想刷多少分就刷多少分,真是离谱。

作为一枚程序猿,我决心也自己搞一下,不为别的,一来为了磨练一下自己的解决问题的能力,而来也为了娱乐一下。像这种任务,最适合的当然是Python,丰富的第三方库,而且具有胶水语言的特点。

本程序的主要设计思路就是,PC端adb连接手机→截屏→在PC端展示→用户鼠标选取起点和终点→计算距离、时长→adb发送指令模拟按压→截屏循环。

2.  ADB

adb,Android Debug Bridge,即安卓调试桥,包含如下几个部分:
•Client端, 运行在开发机器中,即你的开发PC机,用来发送adb命令
•Deamon守护进程,运行在调试设备中,即的调试手机或模拟器
•Server端,作为一个后台进程运行在开发机器中,即你的开发PC机,用来管理PC中的Client端和手机的Deamon之间的通信

我们通常用的adb命令指的就是Client端程序。Server端实际上在本机侦听端口5037,将指令通过usb线/wifi转发给移动设备的Deamon进程。

adb命令读者可以去官方网站查看文档(http://adbshell.com/commands),这里只介绍用到的几个命令。

(1)    adb devices列出所有连接的模拟器/设备

Prints a list of all attached emulator/device

adb devices

In response, return serial number and state

e4b25377    device

emulator-5554 device

(2)    adb shell screencap截屏

taking a screenshot of a device display.

adb shell screencap <filename>

adb shell screencap /sdcard/screen.png

download the file from the device将文件从设备下载到本机。

adb pull /sdcard/screen.png

(3)    adb shell input swipe模拟滑动操作(长按)

adb shell input swipe 100 100 100 100 500模拟长按坐标(100, 100)时长500ms

  C:\Documents and Settings\Administrator>adb shell 
  root@NX403A:/ # input 
  input 
  Usage: input [<source>] <command> [<arg>...] 
   
  The sources are: 
     trackball 
     joystick 
     touchnavigation 
     mouse 
     keyboard 
     gamepad 
     touchpad 
     dpad 
     stylus 
     touchscreen 
   
  The commands and default sources are: 
     text <string> (Default: touchscreen) 
     keyevent [--longpress] <key code number or name> ... (Default: keyboard) 
     tap <x> <y> (Default: touchscreen) 
     swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen) 
     press (Default: trackball) 
     roll <dx> <dy> (Default: trackball)

好了,以上是本次所需adb的知识点。

3.  Python

(1)     调用命令行

Python调用命令行有多种方式,比较常用的是os.system(cmd)和os.popen(cmd),以及commands.getoutput(cmd),这三者主要区别在返回值的获取方面,第一个无法获得返回值,第二、三个则可以获取。这里用哪个都可以,因为不需要获得返回值。

(2)     OpenCV

主要用OpenCV做一些图片缩放等操作,用PIL也是可以的。

(3)     Tkinter

主要用到了Button、PhotoImage这两个Widget。不多说了。

程序的实现是很简单的,这里处于某些原因就不公开代码了,主要就是一个细调参数的过程。

程序截图:

使用Python制作微信跳一跳辅助

下一步的目标是,结合OpenCV和神经网络实现自动识别、计算距离。

郑重声明,本文仅供学习、娱乐只用,请勿随意传播。

Python 相关文章推荐
在Python的gevent框架下执行异步的Solr查询的教程
Apr 16 Python
在Python中使用元类的教程
Apr 28 Python
Python查询阿里巴巴关键字排名的方法
Jul 08 Python
Python3使用PyQt5制作简单的画板/手写板实例
Oct 19 Python
动态规划之矩阵连乘问题Python实现方法
Nov 27 Python
Python 经典面试题 21 道【不可错过】
Sep 21 Python
使用python 打开文件并做匹配处理的实例
Jan 02 Python
对PyQt5的输入对话框使用(QInputDialog)详解
Jun 25 Python
python爬虫-模拟微博登录功能
Sep 12 Python
TFRecord文件查看包含的所有Features代码
Feb 17 Python
简单了解python调用其他脚本方法实例
Mar 26 Python
Python使用海龟绘图实现贪吃蛇游戏
Jun 18 Python
python模块之paramiko实例代码
Jan 31 #Python
Python进度条实时显示处理进度的示例代码
Jan 30 #Python
Python3生成手写体数字方法
Jan 30 #Python
python字符串的方法与操作大全
Jan 30 #Python
Python实现带参数与不带参数的多重继承示例
Jan 30 #Python
Python实现的随机森林算法与简单总结
Jan 30 #Python
Python决策树和随机森林算法实例详解
Jan 30 #Python
You might like
PHP+MySQL5.0中文乱码解决方法
2006/11/20 PHP
攻克CakePHP系列三 表单数据增删改
2008/10/22 PHP
让PHP更快的提供文件下载的代码
2012/06/13 PHP
PHP获取真实IP及IP模拟方法解析
2020/11/24 PHP
js 实现无干扰阴影效果 简单好用(附文件下载)
2009/12/27 Javascript
javascript将数组插入到另一个数组中的代码
2013/01/10 Javascript
JavaScript动态创建div属性和样式示例代码
2013/10/09 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
2014/01/16 Javascript
JavaScript中跨域调用Flash的方法
2014/08/11 Javascript
javascript处理a标签超链接默认事件的方法
2015/06/29 Javascript
JavaScript编写连连看小游戏
2015/07/07 Javascript
jQuery取消特定的click事件
2016/02/29 Javascript
Javascript点击按钮随机改变数字与其颜色
2016/09/01 Javascript
使用jsonp实现跨域获取数据实例讲解
2016/12/25 Javascript
原生js实现弹出层效果
2017/01/20 Javascript
浅谈Node.js 子进程与应用场景
2018/01/24 Javascript
vue todo-list组件发布到npm上的方法
2018/04/04 Javascript
javascript实现小型区块链功能
2019/04/03 Javascript
vue+elementUI实现图片上传功能
2019/08/20 Javascript
关于layui表单中按钮自动提交的解决方法
2019/09/09 Javascript
微信小程序页面调用自定义组件内的事件详解
2019/09/12 Javascript
js实现数字从零慢慢增加到指定数字示例
2019/11/07 Javascript
使用JS实现动态时钟
2020/03/12 Javascript
javascript canvas实现简易时钟例子
2020/09/05 Javascript
[00:10]DOTA2 TI9勇士令状明日上线
2019/05/07 DOTA
Python数据结构之单链表详解
2017/09/12 Python
Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例
2017/12/12 Python
Python实现简单文本字符串处理的方法
2018/01/22 Python
Python实现账号密码输错三次即锁定功能简单示例
2019/03/29 Python
Python时间差中seconds和total_seconds的区别详解
2019/12/26 Python
python matplotlib imshow热图坐标替换/映射实例
2020/03/14 Python
T3官网:头发造型工具
2019/12/26 全球购物
乡镇党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
小区门卫的岗位职责
2014/09/26 职场文书
人事局接收函
2015/01/31 职场文书
2016党员党章学习心得体会
2016/01/14 职场文书