文章目录

  • 1、需要安装的模块
  • 2、整体逻辑
  • 3、代码实现

最近在看测试相关的内容,发现自动化测试很好玩,就决定做一个自动回复QQ消息的脚本(我很菜)

1、需要安装的模块

这个自动化脚本需要用到3个模块,如果要使用这个脚本的朋友,自己的python中可能没有安装这些模块,所以就可以安装一下

第1个模块:pyautogui
这个模块主要是用来让程序自动控制鼠标和键盘的一系列操作来达到自动化测试的目的。
在cmd下输入安装命令:pip install pyautogui

第2个模块:pyperclip
这个模块主要用于复制剪贴板里的内容,向剪贴板写入内容
在cmd下输入安装命令:pip install pyperclip

第3个模块:psutil
psutil是一个跨平台库,能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息
在cmd下输入安装命令:pip install psutil

2、整体逻辑

  • 首先我们需要判断QQ是否处于登录状态,如果没有处于登录状态,我们需要启动QQ,再进行登录。
  • 轮询检测是否有人发送消息,如果有人发送消息,则打开对应的会话框
  • 自动输入回复的内容并进行回复
  • 关闭会话框,再进行检测

如何判断QQ是否处启动?

我们知道QQ如果需要运行,首先操作系统给它分配资源,资源中就包括一个叫进程pid的内容,pid是进程的唯一标识,pid和进程是1:1的关系。通过pid就可以知道进程的名字,判断这个名字是否与"QQ.exe"相等就可以知道QQ是否启动

#获取全部进程的pid
pl = psutil.pids()for pid in pl:# 判断QQ.exe是否运行if psutil.Process(pid).name() == "QQ.exe":

如果QQ没有启动,需要启动QQ,并登录
我们平时启动QQ的时候,首先需要找到QQ的快捷方式,然后双击,等到QQ的登录界面出现后,再点击登录或者按回车键(“enter”)。
自动化也是一样的。
os模块中有一个方法os.startfile(dir),参数就是"QQ.exe"在磁盘中的存放位置,登录界面出现后,我们这里采用按回车(“enter”)的方式进行登录

os.startfile(QQ_dir)
time.sleep(3)
gui.write(["enter"])
time.sleep(5)

QQ成功登录后(我的默认是免打扰),在桌面的右下角会出现QQ的小图标

如果此时有人发来消息,则会有提示符

因此最开始,就需要对这个QQ消息提示符进行截图,通过判断桌面这个图标是否存在,来判断是否有消息,如果有消息,我们只需要点击这个QQ这个图标,就能弹出对话框

if gui.locateOnScreen("./image/receive_message1.png", confidence=0.8) is not None:gui.click(gui.center(gui.locateOnScreen("./image/receive_message1.png", confidence=0.8)))

弹出对话框后,默认是处于输入状态的。需要用到pyperclip.copy(“需要发送的内容”)剪切内容到粘贴板上,再使用pyautogui.hotkey(“ctrl”, “v”)进行粘贴,此时内容就已经在输入框中,按下"enter"和"esc"(pyautogui.write([“enter”, “esc”]))进行发送,然后关闭对话框

lip.copy("自动回复")
gui.hotkey("ctrl", "v")
gui.write(["enter", "esc"])

不过在我是将我需要发送的数据存放在了一个文本里,每次都随机选择一个发送

3、代码实现

import os
import randomimport psutil
import pyautogui as gui
import pyperclip as lip
import time#所有的文件路径都需要自己去修改
QQ_dir = r'D:\Bin\QQScLauncher.exe'def Proc_exist():pl = psutil.pids()for pid in pl:# 判断QQ.exe是否运行if psutil.Process(pid).name() == "QQ.exe":return Truereturn Falsedef QQ_login():# 启动指定路径下的QQos.startfile(QQ_dir)time.sleep(3)gui.write(["enter"])time.sleep(5)def Readfile():with open("./image/text.txt", 'r', encoding="UTF-8") as f:filetxt = f.readlines()return filetxtdef Sendmessage(filetxt):filetxtlen = len(filetxt)#随机数取0到len-1ran = random.randint(0, filetxtlen-1)#剪切内容lip.copy(filetxt[ran])#粘贴gui.hotkey("ctrl", "v")gui.write(["enter", "esc"])def Polling():if Proc_exist() == False:QQ_login()while True:# confidence=0.8是匹配精确度,需要安装opencv   pip install opencv-python#判断是否来消息if gui.locateOnScreen("./image/receive_message1.png", confidence=0.8) is not None:# 点击图片在屏幕中出现的中间位置,就能弹出对话框gui.click(gui.center(gui.locateOnScreen("./image/receive_message1.png", confidence=0.8)))time.sleep(2)# 判断是否有消息漫游验证,如果有,把它关掉if gui.locateOnScreen("./image/img.png", confidence=0.8) is not None:location = gui.center(gui.locateOnScreen("./image/img.png"))gui.click(location.x+200, location.y)time.sleep(2)Sendmessage(filetxt)# 将text.txt的数据读到列表中
filetxt = Readfile()
Polling()

if gui.locateOnScreen("./image/img.png", confidence=0.8) is not None的意思:

弹出对话框后可能会存在消息漫游安全验证,所以需要判断,如果存在,则需要关掉验证,再发送消息

receive_message1.png:

img.png:

使用的时候记得把图片路径换成自己的,记得QQ开免打扰,开了免打扰好像才有消息提示的黄色框

用python实现自动回复QQ消息——不到60行相关推荐

  1. python自动化:实现自动回复QQ消息

    python自动化:实现自动回复QQ消息 前言 近段时间,看了一下运用python实现app自动化的视频,觉得那上面的讲的不错,于是就用所学的知识做了一个程序,实现自动回复QQ消息. 文章目录 pyt ...

  2. 用 Python 自动回复 QQ 消息,附源码!

    前言 近段时间,看了一下运用python实现app自动化的视频,觉得那上面的讲的不错,于是就用所学的知识做了一个程序,实现自动回复QQ消息. 准备工作 1.1 安装client模块 打开命令窗口,输入 ...

  3. python qq消息接收存储_用 Python 自动回复 QQ 消息,附源码!

    前言 近段时间,看了一下运用python实现app自动化的视频,觉得那上面的讲的不错,于是就用所学的知识做了一个程序,实现自动回复QQ消息. 1. 准备工作 1.1 安装client模块 打开命令窗口 ...

  4. python自动回复qq消息_基于python使用qqbot接入qq做一个简单的文字消息自动回复

    qqbot是一个免费开源的基于smartqq的python插件,如果默认安装有pip,则可以直接在命令行下执行:pip install qqbot安装qqbot,安装成功后可以在命令行输入qqbot ...

  5. python win32gui+pynput 自动回复qq消息

    寒假期间,因为疫情,这几天班群要天天报平安,早上起不来就写了这个.(如果身体有异常记得改哦,不能谎报) 先谢谢以下博主: https://www.cnblogs.com/hwj2019/p/11552 ...

  6. python实现自动发送qq消息

    太好玩了,刚开始的时候一不留神发群里了,肾上腺素激增,幸好那个群禁言! 下载相关库包: pip install pyautogui Mac版: import pyautogui as gui gui. ...

  7. python游戏辅助lol_Python爬虫实战,60行代码爬取英雄联盟全英雄全皮肤,找寻曾今那些被删除的绝版皮肤...

    学了一周多的爬虫课后终于按捺不住了,小编决定自己手动编写爬虫程序,刚好LJ在鼓励学员分享成果,优秀作品有奖励,就把自己用Python编程爬取各大游戏高清壁纸的过程整理了出来进行投稿,与大家一起分享. ...

  8. 如何用 Python 实现 QQ 消息自动回复?

    作者:il_持之以恒_li https://blog.csdn.net/qq_45404396/article/details/112750110 前言 近段时间,看了一下运用python实现app自 ...

  9. 教你一招!如何用 Python 实现 QQ 消息自动回复?

    作者:il_持之以恒_li https://blog.csdn.net/qq_45404396/article/details/112750110 前言 近段时间,看了一下运用python实现app自 ...

  10. 用python自动发送qq消息 可选择发送内容与次数

    python初学者,今天来试一下用python实现自动发送qq消息,实现自动化刷屏 只需要输入你要发送的内容.要发送的好友名称以及发送的次数,就可以实现了,效果如下 注意:聊天框必须只开这一个窗口,否 ...

最新文章

  1. 老师,免费版的IDEA为啥不能使用Tomcat?
  2. 每天一个设计模式之组合模式
  3. 小程序开发填坑汇总贴
  4. 系统策略禁止安装python_Win10系统如何禁止自动安装捆绑软件?
  5. linux查找特定类型的文件中是否包含特定字段
  6. linux查看最近修改过的文件
  7. 解读浮动闭合最佳方案:clearfix
  8. 【数据结构与算法】比较法分析查找算法与查找结构
  9. 更改Zend Studio/Eclipse代码风格主题
  10. python中修饰器的优点和作用_Python入门基础教程之装饰器
  11. JS学习总结(6)——函数/弹出框
  12. 主机前面板耳机插孔无声音解决
  13. Arduino IDE 1.0以上LiquidCrystal_I2C驱动
  14. 环境变量配置为jdk8,却显示java版本为jdk7
  15. 快排C语言三种实现方法(大同小异)
  16. 基本系统调用性能lmbench测试方法和下载
  17. api-ms-win-crt-stdio-l1-1-0.dll丢失问题解决
  18. 计算机基础课教学心得,浅谈高专院校计算机基础课程的教学心得体会养
  19. TortoiseGit 局域网版本库的创建方法
  20. 学习笔记-Matlab之多项式详解

热门文章

  1. Linux 开发环境 -- glibc 升级(不建议轻易升级)
  2. 抗癌中草药彩色图谱——西洋参
  3. 如何快速离职?离职交接工作清单(前端)
  4. Python使用Reportlab处理PDF数据 - 创建pdf库文件
  5. react视频播放组件
  6. 有哪些好用的游戏加速器推荐?
  7. 地图制图基础(二):地图内容
  8. 单片机c语言最容易上手的教程,最好的单片机C语言快速入门教程.doc
  9. 网络空间安全——总结
  10. 如何五分钟实现无线WEP网络入侵(ZZ)