python 个人微信自动回复(Windows GUI自动化)
# 根据预定的csv数据自动回复 import time import numpy as np import pandas as pd # 匹配回复数据 from uiautomation import WindowControl # 用于Windows GUI自动化 target_name = "老婆" def wxListent(): # 通过pd读取数据 df = pd.read_csv('回复数据.csv', encoding='utf-8') # 绑定微信主窗口 wx = WindowControl(Name='微信', searchDepth=1) # searchDepth=1参数指定在查找窗口时只搜索直接子级窗口,以提高查找效率 wx.ListControl() # 列出所有子级窗口 wx.SwitchToThisWindow() # 将焦点切换到微信主窗口 hw = wx.ListControl(Name='会话') # 寻找会话控件绑定 conversations = hw.GetChildren() # 获取会话列表中的所有子控件。 record_num = 0 # 获取聊天记录 for conversation in conversations: contact_name = conversation.Name if target_name in contact_name: # 改成你想回复的联系人的名字 conversation.Click(simulateMove=False) # 点击进入 message_list = wx.ListControl(Name='消息').GetChildren() # 获取消息列表中的所有子控件 record_num = len(message_list) print(f"原本有{record_num}条消息") break # 死循环接收消息 while True: time.sleep(2) #休眠2秒 for conversation in conversations: contact_name = conversation.Name if target_name in contact_name: conversation.Click(simulateMove=False) # 点击进入 message_list = wx.ListControl(Name='消息').GetChildren() # 获取消息列表中的所有子控件 # 新消息数 start_msg_num = record_num new_msg_num = len(message_list) - record_num # 更新记录数 record_num = len(message_list) if new_msg_num > 0: print(f"有{new_msg_num}条新消息:") for i in range(start_msg_num, len(message_list)): # 处理消息 every_msg = message_list[i].Name print(f"正在处理第{i + 1}条消息", every_msg) # # 回复消息 # # 判断关键字 # msg = df.apply(lambda x: x['回复内容'] if x['关键词'] in every_msg else None, axis=1) # # 返回的结果是一个包含处理结果的Series对象,msg和列表差不多 # print(f"匹配到的回复内容:{msg}") # msg.dropna(axis=0, how='any', inplace=True) # 这行代码移除回复内容中的空数据(NaN值) # ar = np.array(msg).tolist() # 这行代码将筛选后的回复内容转换为列表 # # 能够匹配到数据时 # if ar: # # 将数据输入(替换换行符号) # wx.SendKeys(ar[0].replace('{br}', '{Shift}{Enter}'), waitTime=0) # wx.SendKeys('{Enter}', waitTime=1)# 发送消息,回车键 # # 通过消息匹配检索会话栏的联系人 # print(f"回复内容是 {ar[0]}") # # wx.TextControl(SubName=ar[0][:5]).RightClick() # # break # else: # wx.SendKeys('不知道你在说什么', waitTime=0) # wx.SendKeys('{Enter}', waitTime=0) break if __name__ == "__main__": wxListent()
qq:505645074