Python自动给女朋友发微信消息哦!妈妈再也不用担心我熬夜了~

 大家都知道  如果今天是女朋友的生日 我写了好多好多的话,我不想熬夜了好累~

 好想微信有一个定时发送的功能 这样 它来了哦!~ 

欢迎强大的Py先生上场

1.引用两个库

首先需要两个库:pyautogui,pyperclip

我们可以直接打开终端去  Windows+R ,输入cmd,写入这两个 进行安装

pip install apscheduler
pip install pyautogui

2.进入编写工具 Pycharm

这样就可以直接引用我们的加个库了 

import pyautogui
import pyperclip
from datetime import datetime
import  time
from apscheduler.schedulers.blocking import BlockingScheduler

pyautogui 这个库我们是作为快捷键进行执行使用,也就是说可以利用它去控制我们的鼠标以及键盘

pyperclip 这个库我们是作为文本来使用  pyperclip模块中有两个函数,分别是copy()和paste(),copy()用于向计算机的剪贴板发送文本,paste()用于从计算机剪贴板接收文本。

接下来我们先进行简单的操作

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

先设置没个消息的间隔秒数为0.5秒,然后我们打开PC端微信

我们把鼠标放到微信的任务栏图标上,运行以下语句,获取此时光标的坐标,返回一个Point对象

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

注:(Position的意思就是位置哦,意思就是坐标)

打开微信,选择女朋友的回话窗口,将鼠标放在输入框上,同样获取光标坐标,为了将焦点锁定到输入框以方便待会的输入

print(pyautogui.position()) # 打印坐标,Point(x=254, y=771)
entry_position = pyautogui.position() # Point(x=254, y=771)

注:(上边总共两个坐标,第一个是微信任务栏,第二个是输入框地方,看清哦~) 

 接下来控制这两个位置点

pyautogui.click(icon_position)# 默认左键单击
pyautogui.click(entry_position)

接下来可以输入文本了

pyperclip.copy('正在进行发中文试验,看到请忽略,更不要骂傻逼') # 复制
pyautogui.hotkey('ctrl', 'v') # 按下组合键的方法,ctrl+v粘贴
pyautogui.press('enter') # 按下按键

 注:(上边copy指的是复制,hotkey快捷键设置,enter不多说了,回车) 

 3.time.sleep

这个是为了让脚本运行有缓冲 所添加的时间截点

    time.sleep(3)#3秒钟后开始执行

这样,我们便完成了自动发送微信消息的功能了。

4.apscheduler

APScheduler(Advanced Python Scheduler)是一个轻量级的Python定时任务调度框架(Python库)。
APScheduler有三个内置的调度系统,其中包括:

cron式调度(可选开始/结束时间)

基于间隔的执行(以偶数间隔运行作业,也可以选择开始/结束时间)

一次性延迟执行任务(在指定的日期/时间内运行作业一次)

话不多说上代码,

scheduler = BlockingScheduler()  # 实例化
scheduler.add_job(main, 'date', run_date=datetime(2021, 8, 23, 15, 4, 10))  # 添加任务
scheduler.start()

add_job 方法传了 3 个参数,第一个为到时间后要执行的main函数,第二个为触发器的类型。这里选用的是 date 触发器,特定的时间点触发,作业任务只会执行一次。第三个参数 run_date 就是执行的时间。在这前我已经把自动发送消息的代码封装为了 main 函数,只需到时后调用即可。
 

5:完整代码

import pyautogui
import pyperclip
from datetime import datetime
import  time
from apscheduler.schedulers.blocking import BlockingScheduler


def main():
    pyautogui.PAUSE = 0

    icon_position = pyautogui.Point(x=123, y=1052)  # 任务栏图标位置
    entry_position = pyautogui.Point(x=254, y=771)  # 输入框位置

    pyautogui.moveTo(icon_position, duration=1)  # duration为执行时长,可选
    pyautogui.click(icon_position)
    pyautogui.moveTo(entry_position, duration=0.7)
    pyautogui.click(entry_position)
    time.sleep(3)
    pyperclip.copy('快去睡觉')
    pyautogui.hotkey('ctrl', 'v')
    pyautogui.press('enter')
    time.sleep(3)
    pyperclip.copy('笨猪')
    pyautogui.hotkey('ctrl', 'v')
    pyautogui.press('enter')
    time.sleep(3)
    pyperclip.copy('测试结束~')
    pyautogui.hotkey('ctrl', 'v')
    pyautogui.press('enter')


scheduler = BlockingScheduler()  # 实例化
scheduler.add_job(main, 'date', run_date=datetime(2021, 8, 23, 15, 4, 10))  # 添加任务
scheduler.start()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值