这篇文章是为了记录之前编写的自动给好友发送QQ消息,实现自动化操作。(虽然需要手动执行,但还是值得记录一下)
首先判断是否已经登录QQ,若未登录则进行QQ登录操作,否则执行下一步操作。
psutil
库判断QQ
是否登录,它的主要原理是遍历系统中的所有进程的PID
,若存在PID
的进程名与QQ.exe
相同则已登录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
操作鼠标和键盘执行自动化操作,其中的鼠标移动、点击坐标是根据我自身情况编写的,所以可能其他人不太适用,如果需要使用则需根据具体情况修改。