目录
效果展示
内容简介
环境配置
安装
代码文件
main.py
--The End--
效果展示
内容简介
本项目中,我们将使用 PyAutoGUI 模块模拟键盘鼠标发送微信消息,并使用 APScheduler 模块管理时间调度,发送信息时,我们还会使用 Pyperclip 模块复制消息文本。
PyAutoGUI 是一个纯Python的GUI自动化工具,其目的是可以用程序自动控制鼠标和键盘操作,利用它可以实现自动化任务。
APScheduler 的全称是 Advanced Python Scheduler 。它是一个轻量级的 Python 定时任务调度框架。APScheduler 支持三种调度任务:固定时间间隔,固定时间点(日期),Linux 下的 Crontab 命令。同时,它还支持异步执行、后台执行调度任务。
Pyperclip 可以用来实现跨平台的对系统剪贴板操作的方法,其中有两个函数,分别是 copy() 和 paste(),copy() 用于向计算机的剪贴板发送文本,paste() 用于从计算机剪贴板接收文本。
环境配置
安装
pip install pyautogui
pip install apscheduler
pip install pyperclip
代码文件
main.py
import pyautogui
import pyperclip
from apscheduler.schedulers.blocking import BlockingScheduler
# 操作间隔
pyautogui.PAUSE = 1
wx_hotkey = {"open": ('ctrl', 'alt', 'w'), "send": ('enter',), "shot": ('ctrl', 'alt', 'j')}
def send_msg(name: str, msg: str, hotkey=None) -> None:
# 打开微信
if hotkey is None:
hotkey = wx_hotkey
pyautogui.hotkey(*hotkey["open"])
pyautogui.hotkey('ctrl', 'f')
# 找到用户
pyperclip.copy(name)
pyautogui.hotkey('ctrl', 'v')
pyautogui.press(*hotkey["send"])
# 发送消息
pyperclip.copy(msg)
pyautogui.hotkey('ctrl', 'v')
pyautogui.press(*hotkey["send"])
# 隐藏微信
pyautogui.hotkey(*hotkey["open"])
def timing(task, time: dict) -> None:
scheduler = BlockingScheduler() # 实例化一个调度器
scheduler.add_job(task, 'cron', hour=time["hour"], minute=time["minute"]) # 添加任务
scheduler.start()
if __name__ == '__main__':
timing(lambda: send_msg("文件传输助手", "收到"), {"hour": 21, "minute": 12})
如果你的微信快捷键不同,请更改第8行 设置;
如果需要发消息的时间不同,请更改第40行 time参数;
如果需要发消息的用户或发送消息不同,请更改第40行 name 或 msg参数。
发送消息时请不要点击鼠标!
--The End--
本项目中,我们将使用 PyAutoGUI 模块模拟键盘鼠标发送微信消息,并使用 APScheduler 模块管理时间调度,发送信息时,我们还会使用 Pyperclip 模块复制消息文本。
PyAutoGUI 是一个纯Python的GUI自动化工具,其目的是可以用程序自动控制鼠标和键盘操作,利用它可以实现自动化任务。
APScheduler 的全称是 Advanced Python Scheduler 。它是一个轻量级的 Python 定时任务调度框架。APScheduler 支持三种调度任务:固定时间间隔,固定时间点(日期),Linux 下的 Crontab 命令。同时,它还支持异步执行、后台执行调度任务。
Pyperclip 可以用来实现跨平台的对系统剪贴板操作的方法,其中有两个函数,分别是 copy() 和 paste(),copy() 用于向计算机的剪贴板发送文本,paste() 用于从计算机剪贴板接收文本。
安装
pip install pyautogui
pip install apscheduler
pip install pyperclip
代码文件
main.py
import pyautogui
import pyperclip
from apscheduler.schedulers.blocking import BlockingScheduler
# 操作间隔
pyautogui.PAUSE = 1
wx_hotkey = {"open": ('ctrl', 'alt', 'w'), "send": ('enter',), "shot": ('ctrl', 'alt', 'j')}
def send_msg(name: str, msg: str, hotkey=None) -> None:
# 打开微信
if hotkey is None:
hotkey = wx_hotkey
pyautogui.hotkey(*hotkey["open"])
pyautogui.hotkey('ctrl', 'f')
# 找到用户
pyperclip.copy(name)
pyautogui.hotkey('ctrl', 'v')
pyautogui.press(*hotkey["send"])
# 发送消息
pyperclip.copy(msg)
pyautogui.hotkey('ctrl', 'v')
pyautogui.press(*hotkey["send"])
# 隐藏微信
pyautogui.hotkey(*hotkey["open"])
def timing(task, time: dict) -> None:
scheduler = BlockingScheduler() # 实例化一个调度器
scheduler.add_job(task, 'cron', hour=time["hour"], minute=time["minute"]) # 添加任务
scheduler.start()
if __name__ == '__main__':
timing(lambda: send_msg("文件传输助手", "收到"), {"hour": 21, "minute": 12})
如果你的微信快捷键不同,请更改第8行 设置;
如果需要发消息的时间不同,请更改第40行 time参数;
如果需要发消息的用户或发送消息不同,请更改第40行 name 或 msg参数。
发送消息时请不要点击鼠标!
--The End--
main.py
import pyautogui
import pyperclip
from apscheduler.schedulers.blocking import BlockingScheduler
# 操作间隔
pyautogui.PAUSE = 1
wx_hotkey = {"open": ('ctrl', 'alt', 'w'), "send": ('enter',), "shot": ('ctrl', 'alt', 'j')}
def send_msg(name: str, msg: str, hotkey=None) -> None:
# 打开微信
if hotkey is None:
hotkey = wx_hotkey
pyautogui.hotkey(*hotkey["open"])
pyautogui.hotkey('ctrl', 'f')
# 找到用户
pyperclip.copy(name)
pyautogui.hotkey('ctrl', 'v')
pyautogui.press(*hotkey["send"])
# 发送消息
pyperclip.copy(msg)
pyautogui.hotkey('ctrl', 'v')
pyautogui.press(*hotkey["send"])
# 隐藏微信
pyautogui.hotkey(*hotkey["open"])
def timing(task, time: dict) -> None:
scheduler = BlockingScheduler() # 实例化一个调度器
scheduler.add_job(task, 'cron', hour=time["hour"], minute=time["minute"]) # 添加任务
scheduler.start()
if __name__ == '__main__':
timing(lambda: send_msg("文件传输助手", "收到"), {"hour": 21, "minute": 12})
如果你的微信快捷键不同,请更改第8行 设置;
如果需要发消息的时间不同,请更改第40行 time参数;
如果需要发消息的用户或发送消息不同,请更改第40行 name 或 msg参数。
发送消息时请不要点击鼠标!
--The End--
如果你的微信快捷键不同,请更改第8行 设置;
如果需要发消息的时间不同,请更改第40行 time参数;
如果需要发消息的用户或发送消息不同,请更改第40行 name 或 msg参数。
发送消息时请不要点击鼠标!



