当前位置: 首页 > news >正文

2.5 pyautogui 实现微信自动回复

第四节:实战微信自动回复

课程目标

  • 学习如何通过pyautogui完成微信自动回复

课程内容

编码实现
import pyautogui as pg
import time
from pyautogui import ImageNotFoundException
import pyperclip
from cnocr import CnOcr
import random
ocr = CnOcr()
msg_strs = ["嗯","挺好的","好","是的","看起来很不错!",
]
emotion_dict = {"你好":"你也好好呀","吃了吗":"吃了,你呢","今天天气怎么样":"我这边今天天气很好","天气怎么样":"我这边今天天气很好",
}
emojis = [r"image\emoji1.png",r"image\emoji2.png",r"image\emoji3.png",r"image\emoji4.png",
]
def check_new_msg_last():"""检查有没有新消息"""try:new_msg_item = pg.locateOnScreen(r"image\new_msg_img.png")x,y = pg.center(new_msg_item)pg.click(x,y)print("发现新消息,进入")return Trueexcept ImageNotFoundException:return False
def check_new_msg_first():"""检查有没有新消息"""try:new_msg_item = pg.locateOnScreen(r"image\new_msg2_img.png")x,y = pg.center(new_msg_item)pg.click(x,y)print("发现新消息,进入")return Trueexcept ImageNotFoundException:return False
def set_my_msg(msg):"""输入"""if msg in list(emotion_dict.keys()):msg_str = emotion_dict[msg]else:msg_str = random.choice(msg_strs)pyperclip.copy(msg_str)pg.hotkey("ctrl","v")pass
def send():"""发送"""send_item = pg.locateOnScreen(r"image\send_img.png")x,y = pg.center(send_item)pg.click(x,y)pg.press("enter")pg.hotkey("alt","s")
def set_emoji():emoji_item = pg.locateOnScreen(r"image\emoji_img.png")x,y = pg.center(emoji_item)pg.click(x,y)emoji1 = random.choice(emojis)emoji1_item = pg.locateOnScreen(emoji1)x,y = pg.center(emoji1_item)pg.click(x,y)
def get_txt():rs = ocr.ocr(r"msg.png")msggs = []for r in rs:msggs.append(r['text'])msgg = "\n".join(msggs)return msgg
def get_msg():head_items = pg.locateAllOnScreen(r"image\head.png")# 头head_item = Nonefor item in head_items:head_item = itememoji_item = pg.locateOnScreen(r"image\emoji_img.png")height = emoji_item.top - head_item.toppg.screenshot("msg.png",(int(head_item.left),int(head_item.top),200,int(height)))msgg = get_txt()return msgg
while True:time.sleep(0.5)# print("未发现新消息")if check_new_msg_first() or check_new_msg_last():# 回消息msg = get_msg()print(msg)set_my_msg(msg)set_emoji()send()
测试与调试
  • 测试
    • 测试程序的各个功能是否正常工作。
  • 调试
    • 根据测试结果,调整和优化代码。
http://www.lryc.cn/news/424856.html

相关文章:

  • 观存储历史,论数据未来
  • linux:对目录的操作
  • 详解Redis 高可用的方式 Redis Cluster
  • $clog2(1)=0
  • 开发学习日记1
  • 孙宇晨领航波场TRON:引领数字资产迈向崭新纪元
  • python运维(twenty-four day)
  • Eureka原理实践
  • Ant-Design-Vue快速上手指南+排坑
  • mysql5.7安装
  • UE开发中的设计模式(三) —— 对象池模式
  • Mocha测试框架:JavaScript自动化测试的瑞士军刀
  • flask实现Streaming内容传输
  • seata的使用(SpringBoot项目整合seata)
  • docker容器和宿主机网络不通
  • 编程学习之旅:高效记录与整理笔记的艺术
  • dev c++中,在C++11模式下编译带M_PI宏的文件报错的解决办法
  • 【ubutnu24.04】k8s部署2:摸索修复问题
  • 处理JSON数据时遇到的解析错误:“Unexpected character (`“`)”
  • RDKit|分子输入输出格式解析(如 SMILES、Mol、SDF)
  • 【模电笔记】——反馈放大电路
  • 【面试题】Redis缓存问题全解:击穿、雪崩与穿透
  • 676. 实现一个魔法字典
  • Spring Boot 入门以及对微服务的理解
  • 仿RabbiteMq实现简易消息队列正式篇(需求分析)
  • Python酷库之旅-第三方库Pandas(082)
  • 0101中文乱码-BufferedImage-图片处理
  • [Qt][Qt 事件][下]详细讲解
  • 八股总结----计算机网络
  • Laravel 框架开发 ERP 系统,技术选型和分析以及实施计划