Python实现自动回复QQ消息功能的示例代码

目录
  • 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 random

import 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 True
    return False

def QQ_login():
    # 启动指定路径下的QQ
    os.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 filetxt

def Sendmessage(filetxt):
    filetxtlen = len(filetxt)
    #随机数取0到len-1
    ran = 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:
            time.sleep(1)
            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()

到此这篇关于Python实现自动回复QQ消息功能的示例代码的文章就介绍到这了,更多相关Python自动回复QQ消息内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python实现代码审查自动回复消息

    在一个规范化的研发流程中,一般遵循如下流程: 开发阶段:研发功能或者修复bug,在本地自测. 代码审核阶段:提交代码,并请求团队内人员做code review. 测试环境测试阶段:部署到测试环境并请求测试. 发布线上待测阶段:测试环境通过测试发布到线上进行测试. 验收完成任务:线上验证成功,关闭这个任务. 实际上这只是一种最理想化的过程,因为我们默认每次状态流转都是顺利的,开发没有毛病,测试一次就通过,现实中的研发 流程的情况更复杂,如图所示. 整个过程一气呵成,环环相扣.而其中可以被自动化的正

  • python自动化实现自动回复QQ消息

    前言 近段时间,看了一下运用python实现app自动化的视频,觉得那上面的讲的不错,于是就用所学的知识做了一个程序,实现自动回复QQ消息. 1.需要安装的相关软件和python模块 1.1 安装client模块 打开命令窗口,输入命令:pip install appium-python-client 1.2 安装Appium Server 下载网址为:appium 1.3 安装JDK 安装好之后,添加环境变量JAVA_HOME,指定jdk的安装目录,小编为: 1.4 安装android sdk

  • python实现微信机器人: 登录微信、消息接收、自动回复功能

    安装wxpy pip install -U wxpy 登录微信 # 导入模块 from wxpy import * # 初始化机器人,扫码登陆 bot = Bot() 运行以上代码,会生成一个二维码,通过图片扫描二维码即可登录微信. 如果是在服务器上运行代码,无法显示图片的时候, 可以选择通过终端显示二维码图片, 只需要将代码改成: from wxpy import * bot = Bot(console_qr=True) 运行的效果如下: 当然,为了安全,这个二维码做了模糊处理 如果你认为每次

  • Python实现自动回复QQ消息功能的示例代码

    目录 1.需要安装的模块 2.整体逻辑 3.代码实现 最近在看测试相关的内容,发现自动化测试很好玩,就决定做一个自动回复QQ消息的脚本(我很菜) 1.需要安装的模块 这个自动化脚本需要用到3个模块,如果要使用这个脚本的朋友,自己的python中可能没有安装这些模块,所以就可以安装一下 第1个模块:pyautogui 这个模块主要是用来让程序自动控制鼠标和键盘的一系列操作来达到自动化测试的目的. 在cmd下输入安装命令:pip install pyautogui 第2个模块:pyperclip 这

  • 教你用python实现自动回复QQ消息(不到60行)

    目录 前言 1.需要安装的模块 2.整体逻辑 3.代码实现 总结 前言 最近在看测试相关的内容,发现自动化测试很好玩,就决定做一个自动回复QQ消息的脚本(我很菜) 1.需要安装的模块 这个自动化脚本需要用到3个模块,如果要使用这个脚本的朋友,自己的python中可能没有安装这些模块,所以就可以安装一下 第1个模块:pyautogui 这个模块主要是用来让程序自动控制鼠标和键盘的一系列操作来达到自动化测试的目的. 在cmd下输入安装命令:pip install pyautogui 第2个模块:py

  • Python实现RabbitMQ6种消息模型的示例代码

    RabbitMQ与Redis对比 ​ RabbitMQ是一种比较流行的消息中间件,之前我一直使用redis作为消息中间件,但是生产环境比较推荐RabbitMQ来替代Redis,所以我去查询了一些RabbitMQ的资料.相比于Redis,RabbitMQ优点很多,比如: 具有消息消费确认机制 队列,消息,都可以选择是否持久化,粒度更小.更灵活. 可以实现负载均衡 RabbitMQ应用场景 异步处理:比如用户注册时的确认邮件.短信等交由rabbitMQ进行异步处理 应用解耦:比如收发消息双方可以使用

  • Python实现淘宝秒杀功能的示例代码

    1.安装 Selenium 模块 Selenium支持很多浏览器,我选择的是Firefox浏览器. 安装方法: ①打开cmd: ②输入命令 pip install selenium: ③回车,等待自动安装: ④当最后一行代码出现Successfully install selenium-XX时,表示安装成功. 2. 插件 FireBug FireBug 是火狐浏览器的一款查看代码元素的插件,可以快速的定位元素,selenium的重点就是元素定位,只有定到位了,才能进行下一步操作. 测试安装成功,

  • Python实现清理重复文件功能的示例代码

    目录 前置 查找.删除重复文件 GUI制作 GUI界面设计 逻辑设计 效果展示 在电脑上或多或少的存在一些重复文件,体积小的倒没什么,如果体积大的就很占内存了,而如果自己一个一个查看文件是否重复,然后再删除,还是很要命的. 为此,我用python制作了一个删除重复文件的小工具,核心代码很简单,就十行代码,不管什么类型的文件都可以一键删除! 前置 PySimpleGUI库用来创建可视化界面,os操作文件,只需要这两个库: import os import PySimpleGUI as sg os为

  • 用Python登录好友QQ空间点赞的示例代码

    记得之前跟我女票说过,说要帮她空间点赞,点到999就不点了.刚开始还能天天记得,但是后来事情一多,就难免会忘记,前两天点赞的时候忽然觉得这样好枯燥啊,正好也在学Python,就在想能不能有什么方法能自动点赞. 以前学C借助win32API也干过操作其他应用程序的事,想想可行性还是挺高的,于是就去百度了一下.发现还真有类似的,说干就干,正好也是周末,那就直接熬夜"撸"起来吧.先上代码: def QQZan(qq): browser = webdriver.Chrome() browser

  • python实现RabbitMQ的消息队列的示例代码

    最近在研究redis做消息队列时,顺便看了一下RabbitMQ做消息队列的实现.以下是总结的RabbitMQ中三种exchange模式的实现,分别是fanout, direct和topic. base.py: import pika # 获取认证对象,参数是用户名.密码.远程连接时需要认证 credentials = pika.PlainCredentials("admin", "admin") # BlockingConnection(): 实例化连接对象 # C

  • Android仿微信发送语音消息的功能及示例代码

    微信的发送语音是有一个向上取消的,我们使用onTouchListener来监听手势,然后做出相应的操作就行了. 直接上代码: //语音操作对象 private MediaPlayer mPlayer = null; private MediaRecorder mRecorder = null; //语音文件保存路径 private String FileName = null; FileName = Environment.getExternalStorageDirectory().getAbs

  • python实现的自动发送消息功能详解

    本文实例讲述了python实现的自动发送消息功能.分享给大家供大家参考,具体如下: 一个简单的脚本 #-*- coding:utf-8 -*- from __future__ import unicode_literals from threading import Timer import itchat import requests # 抓取金山毒霸每日一句,英文和翻译 def get_news(): url = "http://open.iciba.com/dsapi/" r =

随机推荐