使用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操作CouchDB数据库简单示例
Mar 10 Python
基于进程内通讯的python聊天室实现方法
Jun 28 Python
Pyinstaller将py打包成exe的实例
Mar 31 Python
python实现微信自动回复功能
Apr 11 Python
python获取当前目录路径和上级路径的实例
Apr 26 Python
完美解决Python 2.7不能正常使用pip install的问题
Jun 12 Python
python下的opencv画矩形和文字注释的实现方法
Jul 09 Python
python实现打砖块游戏
Feb 25 Python
Python enumerate() 函数如何实现索引功能
Jun 29 Python
Matplotlib.pyplot 三维绘图的实现示例
Jul 28 Python
python3爬虫GIL修改多线程实例讲解
Nov 24 Python
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
Apr 25 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写一个函数,实现扫描并打印出自定目录下(含子目录)所有jpg文件名
2017/05/26 PHP
PHP实践教程之过滤、验证、转义与密码详解
2017/07/24 PHP
javascript整除实现代码
2010/11/23 Javascript
JS保存、读取、换行、转Json报错处理方法
2013/06/14 Javascript
php实例分享之实现显示网站运行时间
2014/05/20 Javascript
JavaScript function 的 length 属性使用介绍
2014/09/15 Javascript
js兼容pc端浏览器并有多种弹出小提示的手机端浮层控件实例
2015/04/29 Javascript
JS基于Ajax实现的网页Loading效果代码
2015/10/27 Javascript
Javascript实现图片轮播效果(一)让图片跳动起来
2016/02/17 Javascript
第二篇Bootstrap起步
2016/06/21 Javascript
JS实现图片剪裁并预览效果
2016/08/12 Javascript
javascript使用递归算法求两个数字组合功能示例
2017/01/03 Javascript
angular forEach方法遍历源码解读
2017/01/25 Javascript
Node.js使用gm拼装sprite图片
2017/07/04 Javascript
微信小程序使用modal组件弹出对话框功能示例
2017/11/29 Javascript
jQuery基于闭包实现的显示与隐藏div功能示例
2018/06/09 jQuery
Javascript通过控制类名更改样式
2019/05/24 Javascript
深入了解JavaScript 私有化
2019/05/30 Javascript
nodejs+koa2 实现模仿springMVC框架
2020/10/21 NodeJs
[03:20]2015国际邀请赛全明星表演赛
2015/08/08 DOTA
Python实现抓取网页并且解析的实例
2014/09/20 Python
用Python实现协同过滤的教程
2015/04/08 Python
Django自定义插件实现网站登录验证码功能
2017/04/19 Python
python+django加载静态网页模板解析
2017/12/12 Python
vue.js实现输入框输入值内容实时响应变化示例
2018/07/07 Python
python基于递归解决背包问题详解
2019/07/03 Python
如何使用Python自动控制windows桌面
2019/07/11 Python
Django项目使用CircleCI的方法示例
2019/07/14 Python
python中的线程threading.Thread()使用详解
2019/12/17 Python
使用html5新特性轻松监听任何App自带返回键的示例
2018/03/13 HTML / CSS
欧缇丽加拿大官方网站:Caudalie加拿大
2019/07/18 全球购物
中医药大学毕业生自荐信
2013/11/08 职场文书
学习经验交流会主持词
2014/04/01 职场文书
爱国口号
2014/06/19 职场文书
学习教师敬业奉献模范事迹材料思想汇报
2014/09/19 职场文书
python+opencv实现视频抽帧示例代码
2021/06/11 Python