如何每天自动发送微信消息给女朋友说晚安

2023-08-07 10:40:51 浏览数 (3)

背景

经常晚上打王者到凌晨,老是忘记给女朋友说晚安。这次我们来做一个自动发送微信的程序,在晚上22点左右给女朋友发去消息,也好表现我执着的形象,以及早睡早起的良好生活习惯。

实现

我们需要两个模块:apschedulerpyautogui

快捷键 Windows r 打开运行控制框,输入 cmd,进入命令行,输入:

代码语言:javascript复制
pip install apscheduler
pip install pyautogui

我们登录微信,并最小化。

打开微信

pyautogui 是一个非常强大的库,可以操作鼠标和键盘。我们将用它来完成自动操作电脑。

先来做一些基本设置:

代码语言:javascript复制
pyautogui.PAUSE = 1 # 设置每一步操作的间隔(秒),可防止操作太快

我们先找到微信图标的坐标(后续的步骤要用到)

代码语言:javascript复制
print(pyautogui.position()) # 打印坐标,Point(x=1663, y=1052)
icon_position = Point(x=1663, y=1052) # Point(x=1663, y=1052)

程序自动移动鼠标到微信的任务栏图标上,并完成点击操作:

代码语言:javascript复制
# 在右下角点击微信图标
pyautogui.moveTo(1663,1052,duration=0.5) # duration为执行时长,可选
pyautogui.click() # 模拟鼠标点击

定位对话框

先执行ctrl f打开搜索框,把翠花(女生的微信备注)copy到剪贴板,ctrl v粘贴到搜索框,并按下enter

代码语言:javascript复制
# 打开对应的对话框
pyautogui.hotkey('ctrl', 'f') # 按下组合键的方法,ctrl v粘贴
pyperclip.copy('翠花')
pyautogui.hotkey('ctrl', 'v') # 按下组合键的方法,ctrl v粘贴
pyautogui.press('enter') # 按下按键

发送消息

把要发送的消息copy到剪贴板,ctrl v粘贴,按下enter

代码语言:javascript复制
pyperclip.copy(f'{text},我也睡了') # 复制
pyautogui.hotkey('ctrl', 'v') # 按下组合键的方法,ctrl v粘贴
pyautogui.press('enter') # 按下按键

定时发送

APScheduler 是一个Python库,可实现延迟调度要执行Python代码的功能,可以只执行一次,也可以定期执行。可以随时添加新任务或删除旧任务。能够十分方便地进行定时任务。

加上定时功能的完整代码如下:

代码语言:javascript复制
import pyautogui
from apscheduler.schedulers.blocking import BlockingScheduler # 阻塞当前进程的调度器
import pyperclip

def send_wx(text):
    pyautogui.PAUSE = 1 # 设置每一步操作的间隔(秒),可防止操作太快

    # print(pyautogui.position()) # 打印坐标,Point(x=1663, y=1052)
    # icon_position = Point(x=1663, y=1052) # Point(x=1663, y=1052)

    # 在右下角点击微信图标
    pyautogui.moveTo(1663,1052,duration=0.5) # duration为执行时长,可选
    pyautogui.click() # 模拟鼠标点击

    # 打开对应的对话框
    pyautogui.hotkey('ctrl', 'f') # 按下组合键的方法,ctrl v粘贴
    pyperclip.copy('翠花')
    pyautogui.hotkey('ctrl', 'v') # 按下组合键的方法,ctrl v粘贴
    pyautogui.press('enter') # 按下按键

    # 发送消息
    pyperclip.copy(f'{text},我也睡了') # 复制
    pyautogui.hotkey('ctrl', 'v') # 按下组合键的方法,ctrl v粘贴
    pyautogui.press('enter') # 按下按键

if __name__ == '__main__':
    sched = BlockingScheduler()
    sched.add_job(send_wx,"cron",hour=22,minute=11, args=['晚安,早点睡了']) # 定为每天的21点23分
    sched.start()

收藏那么多python资料干嘛,这一本就够你从入门到入土了!

SaaS 多租户系统数据隔离方案

又给家人们送福利了-清华出版的python

0 人点赞