使用python自动发送QQ消息
这篇文章是为了记录之前编写的自动给好友发送QQ消息,实现自动化操作。(虽然需要手动执行,但还是值得记录一下)目录一、登录QQ二、打开聊天窗口三、发送消息四、完整代码一、登录QQ首先判断是否已经登录QQ,若未登录则进行QQ登录操作,否则执行下一步操作。这里使用psutil库判断QQ是否登录,它的主要原理是遍历系统中的所有进程的PID,若存在PID的进程名与QQ.exe相同则已登录QQ,否则表明未登录
·
这篇文章是为了记录之前编写的自动给好友发送QQ消息,实现自动化操作。(虽然需要手动执行,但还是值得记录一下)

一、登录QQ
首先判断是否已经登录QQ,若未登录则进行QQ登录操作,否则执行下一步操作。
- 这里使用
psutil
库判断QQ
是否登录,它的主要原理是遍历系统中的所有进程的PID
,若存在PID
的进程名与QQ.exe
相同则已登录QQ
,否则表明未登录QQ
。 - 若已登录QQ,则进入下一步的操作,否则执行登录QQ的操作。登录QQ这里直接使用
os.startfile(QQ_dir)
打开QQ
(QQ_dir
为QQ
所在目录)
二、打开聊天窗口
这里我使用
pyautogui
库执行自动化操作
- 首先打开
QQ
的主界面,使用pyautogui
操作鼠标点击任务栏中的QQ
图标,然后点击主界面中的搜索栏进行好友的搜索。 - 复制粘贴好友的名称(全称)到搜索栏并使用
pyautogui
模拟按下回车搜索相关好友,并点击搜索到的第一个匹配项(QQ
搜索好友全称,其第一个匹配项都是我们想找的好友)
三、发送消息
这里我也使用
pyautogui
库执行自动化操作
- 点击好友聊天窗口的输入栏,复制粘贴需要发送的信息并模拟按下回车发送
- 发送完毕后,关闭主界面并使用
pyautogui
库模拟按下快捷键CTRL+W
关闭聊天窗口
四、完整代码
# -*- coding:utf-8 -*-
"""
Author:G3
Time: 2021/7/13
Software: PyCharm
"""
# 该例程仅供学习使用
# 使用psutil来判断QQ是否登录
import psutil,time,os
import pyperclip
import pyautogui as gui
people = '***' # 好友全称
message = '***' # 发送的消息
QQ_dir = r'E:\Tencent\QQ\Bin\QQ.exe' # QQ路径
# 判断QQ是否登录
def proc_exist(process_name):
pl = psutil.pids()
for pid in pl: # 通过PID判断
if psutil.Process(pid).name() == process_name:
return isinstance(pid,int)
# 发送消息
def send_msg(people, msg):
if proc_exist('QQ.exe'):
# 打开QQ主界面
gui.moveTo(1580, 1080, duration=0.2)
gui.moveTo(1580, 1050, duration=0.2)
gui.click()
time.sleep(0.5)
else:
# 登录QQ
QQ_login()
# 搜索好友并打开聊天窗口
gui.moveTo(1650, 285, duration=0.2)
gui.click()
time.sleep(0.5)
pyperclip.copy(people)
gui.hotkey('ctrl', 'v')
time.sleep(0.5)
gui.hotkey('Enter')
time.sleep(1)
# 输入需要发送的信息
gui.moveTo(600, 850, duration=0.2)
gui.click()
pyperclip.copy(msg)
gui.hotkey('ctrl', 'v')
gui.hotkey('Enter')
# 隐藏主界面并退出聊天界面
gui.moveTo(1850, 150, duration=0.5)
gui.click()
time.sleep(0.5)
gui.hotkey('ctrl', 'w')
# 登录QQ
def QQ_login():
os.startfile(QQ_dir)
print('正在打开QQ')
time.sleep(3)
gui.moveTo(960, 695, duration=0.5)
gui.click()
time.sleep(10)
if __name__ == "__main__":
send_msg(people,message)
# 查看鼠标位置
# while True:
# last_position=gui.position()
# if last_position!=gui.position():
# print(gui.position())
注意:这里我基本上都是用的
pyautogui
操作鼠标和键盘执行自动化操作,其中的鼠标移动、点击坐标是根据我自身情况编写的,所以可能其他人不太适用,如果需要使用则需根据具体情况修改。
更多推荐
所有评论(0)