#!/usr/bin/python3
# -*- coding: utf-8 -*-import numpy as np
import pandas as pd
from uiautomation import WindowControl
import csvwx = WindowControl(Name='微信',searchDepth=1
)
# 切换窗口
wx.ListControl()
wx.SwitchToThisWindow()
# 寻找会话控件绑定
hw = wx.ListControl(Name='会话')
# 通过pd读取数据
df = pd.read_csv('回复数据.csv', encoding='UTF-8')
print(df)
# 死循环接收消息
while True:# 从查找未读消息we = hw.TextControl(searchDepth=4)# 死循环维持,没有超时报错while not we.Exists():pass# 存在未读消息if we.Name:# 点击未读消息we.Click(simulateMove=False)# 读取最后一条消息last_msg = wx.ListControl(Name='消息').GetChildren()[-1].Name# 判断关键字msg = df.apply(lambda x: x['回复内容'] if x['关键词'] in last_msg else None, axis=1)print(msg)# 数据筛选,移除空数据msg.dropna(axis=0, how='any', inplace=True)# 做成列表ar = np.array(msg).tolist()# 能够匹配到数据时if ar:# 将数据输入# 替换换行符号wx.SendKeys(ar[0].replace('{br}', '{Shift}{Enter}'), waitTime=1)# 发送消息 回车键wx.SendKeys('{Enter}', waitTime=1)# 通过消息匹配检索会话栏的联系人wx.TextControl(SubName=ar[0][:5]).RightClick()# 没有匹配到数据时else:wx.SendKeys('我没有理解你的意思', waitTime=1)wx.SendKeys('{Enter}', waitTime=1)wx.TextControl(SubName=last_msg[:5]).RightClick()
回复数据.csv
序号,关键词,回复内容
1,你好,你好,我也好
2,哈哈哈,哈哈哈哈哈哈哈哈哈哈
3,告辞,再见
4,哎呦,你干嘛
5,你干嘛,哎哟
6,我喜欢你,我也喜欢你
7,拜拜,拜拜!