Skip to content

使用adb和python等实现电脑端对微信的控制,实现加好友的功能

Notifications You must be signed in to change notification settings

lccate/auto_Wechat

Repository files navigation

auto_Wechat

使用ADB和python等实现电脑端对微信的控制,实现加好友的功能。

最近做了个需求,从电脑上通过数据线控制安卓手机加微信好友,第一反应是从github上寻找类似代码,但是找到的代码都很复杂功能很多,思考后决定自己写一个,运行环境为python3.5.2(用到os和xlrd模块)。

1.下载adb工具

adb工具已上传到adb文件夹,这里就不放下载链接了,尽量下载比较新的adb工具,如果是旧版的后期无法输入中文(别问我怎么知道的,试了巨多次)

2.手机配置

需要将手机的的开启开发者选项,然后开启usb调试,允许usb控制以及模拟点击之类的设置,这个随手机型号的不同而不同。

3.测试adb命令

手机连到电脑,会自动安装驱动

从cmd中进到下载好的adb工具文件夹内,就可以开始敲命令了,可以先打开微信测试一下

一些基础的指令可以看我主页的另一个repository——ADBKeyBoard

//电源键

adb shell input keyevent 26

//菜单键

adb shell input keyevent 82

//home键

adb shell input keyevent 3

//返回键

adb shell input keyevent 4

//打开微信

adb shell am start -n com.tencent.mm/.ui.LauncherUI

查看想要启动的app的入口

adb shell dumpsys window windows | findstr "Current"

微信的启动入口是com.tencent.mm/.ui.LauncherUI

4.获取页面坐标

这里推荐一个超级方便的方法!打开手机的指针功能,手指放在手机屏幕上时,会看到最上面一行有相关的坐标信息,有了这些坐标信息,我们就可以控制手机,想点哪里点哪里(注意!不同型号的手机坐标位置是不同的,我使用的是小米note)

//模拟点击 100 300是坐标

adb shell input tap 100 300

5.adb shell input text实现中文输入

adb默认是无法输入中文的,感谢外国友人写了一个输入法,源码地址https://github.com/cccccate/ADBKeyBoard

首先下载ADBKeyboard.apk文件放到adb文件夹中,从cmd中进到adb文件输入以下命令安装此输入法

adb install ADBKeyBoard.apk

然后在手机语言和输入法选项中,将默认输入法修改为ADB Keyboard

最后用adb命令输入中文测试ok

adb shell am broadcast -a ADB_INPUT_TEXT --es msg ‘你好,我是小刘'

出现的几个bug以及解决方法(demo_mi是最终版本)

有的好友不存在:不会影响进程,但是会触发其他的操作,对总体功能没有影响可以忽略

有的好友已经加过了:同上

由于有的人有签名,地区等信息有的人没有导致无法添加到通讯录:这几种情况对应的“添加到通讯录”按钮的位置是不同的,多写几个坐标位置就可以了,但是注意要从下往上的顺序,详情请见代码

有时候会出现无法添加,无法返回等问题,但是重新运行后又没问题了:这个问题我也是运行了多次之后才发现原因,原因就是点击触发后,页面并没有完全加载出来,就实现了下一个触发,导致下一个触发无效,从而之后的触发都乱了,我自己想了个解决方法,就是在每个触发命令前都加一个点亮屏幕的操作,对手机的按键不会有任何影响,而且能够等待页面进行加载,后期增加time的模块,添加等待命令,详情见demo7_timeslay

adb命令无法输入中文:这个问题困扰我太久了,明明安装了ADB输入法,各种设置也都改了,还是无法输入中文,在csdn博客上也发现好多人都在问这个问题,试了好多方法都不行,最后我想,会不会是adb版本的问题,一开始用的15版的,后来又下了一个18新版的,又下了一个10版的,结果就可以了,撒花~

程序的缺点

没有用Uiautomator 进行页面坐标的自动获取,针对不同型号的手机还要修改坐标参数

没有针对“好友不存在”“好友已加”等情况做不同的分支处理

About

使用adb和python等实现电脑端对微信的控制,实现加好友的功能

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages