wxauto调用文档(适用微信版本v3.9.×.×)
- 一、版本对比
- 二、安装wxauto
- 三、使用文档
-
- 1、获取所有好友详情信息`wx.GetFriendDetails`
- 2、获取聊天对象名和新消息条数(还未跑通)`wx.GetSessionAmont`
- 3、是否有新消息`wx.CheckNewMessage`
- 4、获取下一个新消息`wx.GetNextNewMessage`
- 5、获取所有新消息`wx.GetAllNewMessage`
- 6、获取当前聊天列表中的所有聊天对象(是否只获取有新消息的聊天对象)`wx.GetSessionList`
- 7、获取当前聊天列表中的所有聊天对象`wx.GetSession`
- 8、打开某个聊天框`wx.ChatWith`
- 9、@所有人`wx.AtAll`
- 10、发送文本消息`wx.SendMsg`
- 11、向当前聊天窗口发送文件`wx.SendFiles`
- 12、获取当前窗口中加载的所有聊天记录`wx.GetAllMessage`
- 13、加载当前聊天页面更多聊天信息`wx.LoadMoreMessage`
- 14、获取当前聊天对象名`wx.CurrentChat`
- 15、获取新的好友申请列表`wx.GetNewFriends`
- 16、添加监听对象`wx.AddListenChat`
- 17、获取监听对象的新消息`wx.GetListenMessage`
- 18、切换到通讯录页面`wx.SwitchToContact`
- 19、切换到聊天页面`wx.SwitchToChat`
- 20、获取当前聊天群成员`wx.GetGroupMembers`
- 21、获取所有好友列表`wx.GetAllFriends`
- 22、获取所有监听对象`wx.GetAllListenChat`
- 23、移除监听对象`wx.RemoveListenChat`
- 24、添加新的好友`wx.AddNewFriend`
- 四、使用案例
- 五、云服务器部署
- 六、参考
- 七、免责声明
一、版本对比
本项目目前默认分支为微信3.9.8.15版本,使用前请先检查自己电脑微信是否为该版本,版本不同可能由于UI问题导致某些功能无法正常调用。
注:如果你的微信版本可以用的话,也不需要过多纠结这个,本文测试的微信版本为3.9.12.17。
二、安装wxauto
pip install wxauto
等待安装完成即可。
三、使用文档
# 导入
>>>from wxauto import WeChat
# 获取微信窗口对象
>>> wx = WeChat()
初始化成功,获取到已登录窗口:xxxx
上面定义了wx
变量,下述文档不再重复定义和解释wx
变量。
1、获取所有好友详情信息wx.GetFriendDetails
>>> DetailsList = wx.GetFriendDetails(n=None, timeout=0xFFFFF)
方法说明: 获取所有好友详情信息列表。
参数:
参数名 | 类型 | 默认值 | 说明 |
---|---|---|---|
n | int | None | 获取前n个好友详情信息。 |
timeout | int | 0xFFFFF | 获取超时时间(秒),超过该时间则直接返回结果。 |
注:1. 该方法运行时间较长,约0.5~1秒一个好友的速度,好友多的话可将n设置为一个较小的值,先测试一下;
2. 如果遇到企业微信的好友且为已离职状态,可能导致微信卡死,需重启(此为微信客户端BUG);
3. 该方法未经过大量测试,可能存在未知问题。
2、获取聊天对象名和新消息条数(还未跑通)wx.GetSessionAmont
>>> sessionname, amount = wx.GetSessionAmont(SessionItem)
>>> print(f"会话名称: {
session_name}, 新消息条数: {
amount}")
>>> print(sessionname) # 聊天对象名
>>> print(amount) # 新消息条数
方法说明: 获取当前聊天窗口名,即聊天窗口最上方的那个名字。
参数: SessionItem (uiautomation.ListItemControl),聊天对象控件
3、是否有新消息wx.CheckNewMessage
>>> wx.CheckNewMessage()
有,则返回True;没有,则返回False。
4、获取下一个新消息wx.GetNextNewMessage
>>> msgs = wx.GetNextNewMessage(savepic=False, savefile=False, savevoice=False, timeout=10)
>>> msgs
{
'张三': [['张三', '哈哈哈', '42373591784181']]}
方法说明: 只获取一个未读消息内容,这样多个聊天对象有新消息时,可以逐一获取消息内容并进行回复。
参数:
参数名 | 类型 | 默认值 | 说明 |
---|---|---|---|
savepic | bool | False | 是否保存聊天图片 |
savefile | bool | False | 是否保存聊天文件 |
savevoice | bool | False | 是否保存聊天语音 |
timeout | int | 10 | 延时 |
注:该方法暂时只能读取未开启消息免打扰的好友的未读消息,开启消息免打扰的聊天无法获取。
5、获取所有新消息wx.GetAllNewMessage
>>> msgs = wx.GetAllNewMessage(max_round=10)
方法说明: 获取所有未读消息的内容,即存在未读数量小圆点的聊天窗。
参数: max_round (int):最大获取次数 。这里是为了避免某几个窗口一直有新消息,导致无法停止。
注:该方法暂时只能读取未开启消息免打扰的好友的未读消息,开启消息免打扰的聊天无法获取。
6、获取当前聊天列表中的所有聊天对象(是否只获取有新消息的聊天对象)wx.GetSessionList
>>> SessionDict = wx.GetSessionList(reset=False, newmessage=False)
方法说明: 聊天对象字典,键为聊天对象名,值为新消息条数。
参数:
参数名 | 类型 | 默认值 | 说明 |
---|---|---|---|
reset | bool | False | 是否重置SessionItemList |
newmessage (bool) | bool | False | 是否只获取有新消息的聊天对象 |
7、获取当前聊天列表中的所有聊天对象wx.GetSession
>>> SessionElement = wx.GetSession()
方法说明: 获取聊天对象列表。
8、打开某个聊天框wx.ChatWith
# 打开“文件传输助手”聊天窗口
>>> who = '文件传输助手'
>>> wx.ChatWith(who)
方法说明: 打开指定好友(群组)聊天窗口。
参数:
参数名 | 类型 | 默认值 | 说明 |
---|---|---|---|
who | str | / | 要打开的聊天框好友名或群名 |
9、@所有人wx.AtAll
>>> wx.AtAll(msg=None