最近因为白天出去的缘故,晚上回家继续卷安全,没有写笔记,倒是利用空余时间搭配了个机器人玩,用于微信自动回复消息,下面给出教程

确保电脑装有python,vscode

首先:
安装UIAutomation包
pip install uiautomation

安装pandas包,用来读取csv数据
pip install pandas
(这一步可能会超时报错,去网上查一下解决方法,亦或建立一个超时重传)
安装numpy包,目的是将读取的数据转换为列表
pip install numpy

然后建立文件.py
文件中包含的内容如下

#!/usr/bin/python3
#-- coding: utf-8 --

import numpy as np # 引入numpy库,目的是将读取的数据转换为列表
import pandas as pd # 引入pandas库,用来读取csv数据
from uiautomation import WindowControl # 引入uiautomation库中的WindowControl类,用来进行图像识别和模拟操作

#绑定微信主窗口
wx = WindowControl(
Name=’微信’,
searchDepth=1
)
#切换窗口
wx.ListControl()
wx.SwitchToThisWindow()
#寻找会话控件绑定
hw = wx.ListControl(Name=’会话’)
#通过pd读取数据
df = pd.read_csv(‘D:/wuliao/python/回复数据.csv’) ##这里是我的,将文件路径改为自己电脑上回复数据.csv的绝对路径

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('抱歉,目前回复你的是bot,无法理解你的意思', waitTime=1)
        wx.SendKeys('{Enter}', waitTime=1)
        wx.TextControl(SubName=last_msg[:5]).RightClick()

再建立一个文件,名为回复数据.csv,我这里用的gbk编码,当然可以不用,在.py文件中并未确定编码格式,可根据个人喜好设置
文件包含的内容如下:

关键词,回复内容
你好,你好啊!
再见,再见,祝你一切顺利!
问候,你好!有什么我可以帮助你的吗?
工作,工作辛苦了,有什么可以帮忙的吗?
谢谢,不客气!如果有其他需要帮助的,随时告诉我。
天气,你想知道哪个城市的天气?
笑话,好的,听个笑话吧:…
学习,学无止境!有什么学科或主题你想了解的吗?
饮食,你想知道什么关于饮食的信息?
爱好,你平时有什么喜欢的爱好吗?