女朋友让我深夜十二点催她睡觉,我用Python轻松搞定!

Python--界面UI控制,模拟键鼠操作的模块pyautogui(超详细用法) 详细介绍如何使用 pyautogui 实现鼠标控制、键盘控制、界面操作、图像匹配等功能。 阅读详情

事情是这样的:昨天晚上,女朋友让我十二点催她睡觉。

5218b85280f494947a4ce2f8042b279c.png
不过,可是我实在太困了,熬不下去…… 是吧?女朋友哪有睡觉重要?
49cdbf072f07f76e6b7fcf0ce0605098.png
但,女朋友的命令,我是不敢违抗的……
825f069f1cc17d923fbf596d1e962554.png
但是睡觉也不能缺!

这时候我们该怎么办呢?是时候让Python登场了!

Python登场

这次我们来做一个自动发送微信的程序,在深夜十二点的时候给女朋友发去消息,也算是尽了一个男朋友的义务了。

安装和导入

我们需要两个模块:apscheduler,pyautogui

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

pip install apscheduler
pip install pyautogui

导入:

import pyautogui
from datetime import datetime
from apscheduler.schedulers.blocking import BlockingScheduler # 阻塞当前进程的调度器
# blocking类型调度器会阻塞当前进程,若你想要后台运行的调度器,可以使用以下代码:
# from apscheduler.schedulers.background import BackgroundScheduler

pyautogui

首先我们来实现自动发送消息

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

先来做一些基本设置:

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

然后我们登录微信,最小化。

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

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

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

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

接下来,控制程序依次点击这两个点:

pyautogui.click(icon_position) # 默认左键单击
# pyautogui.click(148, 879)
pyautogui.click(entry_position)
# pyautogui.click(174, 751)

打开微信并锁定焦点后,我们开始输入文本。

输入文本可以有两种方式:

  • pyautogui.typewrite(['o', 'n', 'e', 'enter'])

在方法中传入一个列表,里面每一元素都是单个字母或特殊按键

  • pyautogui.typewrite('You can type multiple letters in this way')

传入字符串,但不能同时打印字母和特殊按键。

这两种方式都不能直接输入中文,所以只能依靠你的输入法来输入中文了。

pyautogui.typewrite([*list('zhengzai '), *list('jinxing '), 'shift', *list('pyautogui'), 'shift', *list('shiyan '), 'enter'], 0.1) # 第一个参数是输入文本,第二个是输入每个字符的间隔时间

为了使我们的操作更加 人模狗样 像人的操作,我么来加上移动鼠标的代码:

pyautogui.moveTo(icon_position, duration=2) # duration为执行时长,可选
pyautogui.click(icon_position)
pyautogui.moveTo(entry_position, duration=2)
pyautogui.click(entry_position)
pyautogui.typewrite([*list('zhengzai '), *list('jinxing '), 'shift', *list('pyautogui'), 'shift', *list('shiyan '), 'enter'], 0.1) # 第二个参数为按下每一个字母的间隔,可选

看看效果:
ed665fc43fec49e686ac37ec1fb678bc.gif
当然,若是你要输入的内容实在很多,又嫌麻烦,可以通过复制粘贴来实现:

import pyperclip


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

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

apscheduler

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

scheduler = BlockingScheduler() # 实例化一个调度器
scheduler.add_job(main, 'date', run_date=datetime(2021, 8, 18, 24, 00, 00)) # 添加任务
scheduler.start()

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

完整代码

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


def main():
  pyautogui.PAUSE = 0


  icon_position = pyautogui.Point(x=148, y=879) # 任务栏图标位置
  entry_position = pyautogui.Point(x=174, y=751) # 输入框位置


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


scheduler = BlockingScheduler() # 实例化
scheduler.add_job(main, 'date', run_date=datetime(2021, 8, 18, 24, 00, 00)) # 添加任务
scheduler.start()

完成啦!现在可以去睡觉了。

结果

第二天早上起床,我被我妈妈骂了一顿,问我为什么午夜12点的时候电脑还亮着,而且还在自己发微信!

不过,好在女朋友没丢,我成功完成了女朋友的任务!
f64c1229335c2cbc87f228b46cf04e29.gif

好啦,这篇文章就到这里了。以上就是我分享的全部内容,感谢阅读!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:

https://blog.youkuaiyun.com/weixin_52132159/article/details/119785717

双十一的活动,有兴趣可以看看

f6d8a64d941deee1ba107802ada89819.png


 

 

 

 

 

 

 

推荐阅读:

入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python | 实战项目 |学Python就是这条捷径

量化: 定投基金到底能赚多少钱?  | 我用Python对去年800只基金的数据分析

干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析|   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记灯谜答题王 |用Python做个海量小姐姐素描图碟中谍这么火,我用机器学习做个迷你推荐系统电影

趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!

AI: 会做诗的机器人给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影

小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|

年度爆款文案


 

 

 

 

 

 


 

 

 
点阅读原文,看Python全套!
python办公自动化:让PyAutoGUI来帮你干活---实践版 在具体应用里用pyautogui来进行自动化操作,包括键盘,鼠标等移动,点击,自动抓图等。库在各种操作系统上自由控制鼠标和键盘行为。1. 安装PyAutoGUI2. 获取鼠标光标的当前位置和显示器的大小3. 移动并单击鼠标4. 鼠标相对移动和双击5. 拖动鼠标6. 输入字符7. 截取屏幕截图8. 用图像定位鼠标1. 查找图像区域2. 获得图像区域的中心3. 点击9.关于异常处理· 首先,在命令提示符下继续从pip或conda安装。 阅读详情

相关推荐

AutoGuiZheng_Highflybird_cad碎数_

清理cad碎数插件,包括墙体 线条 版本比较早 但是没有找到再晚的可以将就用

女朋友让我深夜十二点催她睡觉,我用Python轻松搞定

????????关注后回复“进群”,拉你进程序员交流群????????版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog...

<sdffdsfsdfdfs>sfsfsfsdfsdffds</sdfsDS>Fsd 938

F5 Shape逆向工程实战:从美西南航空到xbk的风控突破

本文以美西南航空和xbk为例,深入剖析了F5 Shape风控系统的逆向工程实战。文章拆解了其核心防线,包括通信加密、JSVMP逆向分析和无孔不入的环境指纹检测,并分享了定位Header生成入口、模拟算法输出及构建真实浏览器环境的系统性方法与思路,为合规的技术研究与测试提供参考。

weixin_29327525的博客 1389

女友让我每天半夜十二点给她发晚安?我用 Python 做了个定时发消息神器!怕她干嘛!

自己做个定时发晚安神器,深夜十二点自动和女朋友说晚安~

张大帅哥的博客 1万+

使用buildroot系统的qmake编译QT出现Unknown module(s) in QT: xxxx 的错误解决方法

可以看到,我这里使用的是 qt5base-5.15.2 目录下的qmake,这个qmake只包含了基础的qt模块,而额外添加的qt模块没有包含进去,需要使用。可以看到我这里是有的,如果你跟我一样,模块存在,但是还是报找不到对应模块的错误的话,大概率是跟我一样,用错qmake了,看第二点。在包含 qt5base 目录下查看,是否有对应模块的目录,如果没有的话,需要通过make menuconfig 添加一下。目录下的qmake才可以。

T541132的博客 2490

Multisim 11.0的安装破解汉化步骤

15:打开注册机,选择管理员运行,默认第一项,选择生成文件路径,这里不要随意选择,要找到你安装Multisim安装路径下Shard下的License Manager路径下,否则会报错,破解失败。14:后面会出现一个更新提示,选择否,然后选择重启电脑后,先不要选择重启电脑,在这里出现了问题(可能敲击回车,默认去重启电脑了),所以我说不要重启电脑,重启破解时右下角出现这,点击否。17:重启电脑,如果前面重启过,那可以跳过重启,应用程序下找到下图所示,启动。16:点击确认覆盖,路径下生成了该文件。

qq_53260940的博客 2371

python自动化操作PyAutogui库详解

闲言碎语不讲直接上函数: 鼠标操作类: pyautogui.click(x=None,y=None,click=1,interval=0.0,duration=0.0,button='primary') pyautogui.leftClick(x=None, y=None, interval=0.0, duration=0.0)左键单击 pyautogui.rightClick(x=None, y=None, interval=0.0, duration=0.0)右键单击 pyautogui.midd

月半的博客 2万+

2024最新指南:如何用Python批量下载Sentinel-2数据(附避坑清单)

本文提供2024年最新Python批量下载Sentinel-2遥感数据的完整指南,涵盖环境配置、API准备、核心下载流程实现及实战避坑清单。通过智能查询器、断点续传下载器等实用工具,帮助用户高效获取遥感数据,避免常见网络问题和数据完整性验证失败。

silver的专栏 618

PyautoGui常用教程(鼠标、键盘)

pyautogui提供了一个方法screenshot(),可以返回一个Pillow的image对象。鼠标移动事件,移动到指定位置。

小橙子的博客 3793

Vite 任意文件读取漏洞复现(CVE-2026-39363)

Vite开发服务器 WebSocket中的fetchModule方法未实施server.fs访问控制,导致攻击者可通过WebSocket连接并读取服务器上的任意文件(CVE-2026-39363)

iSee857的博客 221

优秀的 Verilog/FPGA开源项目介绍(一)-PCIe通信

优秀的 Verilog/FPGA开源项目介绍(一)-PCIe通信今天开始会陆续介绍一些优秀的开源项目,项目基本都是和FPGA或HDL相关的。对于一些找工作或者急需项目经验的人来说,这些项目...

OpenFPGA的博客 8117

【Reading Notes】(4)Favorite Articles from 2021

其实波尔象限与巴斯德象限,在具体科研实践时其实是一样的,就是「把问题的底层原理搞清楚」,只是问题的来源有所不同。美国普林斯顿大学的唐纳德 · 斯托克斯(Donald E. Stokes)通过 4 个象限定义了不同的研究类型,其中基础研究包括纯基础研究(波尔象限)与由应用驱动的基础研究(巴斯德象限)公式认为,任何重复的自然图案,都是通过两种具有特定特征的事物(如分子、细胞)进行相互作用而产生的。(左上)相机画面,(左下)时间轴,(中)AI捕捉的选手动作,(右)每种技术的「裁判员看点」

bryant_meng 391

本地快速部署谷歌开放模型Gemma教程(基于Ollama)

谷歌最近发布了新一代开源AI模型Gemma,此次发布的 Gemma 相比自家的 Gemini 更加轻量级,模型权重也一并开源。不仅可以在笔记本电脑上运行,而且还免费可商用,支持中文。运行速度飞快。

特立独行的博客 6716

基于pyautogui鼠标自动点击器

此点击器主要依赖python的pyautogui模块,可以完成对鼠标位置的的拾取,左键单击、左键双击、右键单击、鼠标下滑、鼠标上滑等基本操作。可以自动获取config.ini配置文件并根据用户的输入完成多次鼠标循环操作。以下为全部代码,复制粘贴即可运行,需要安装必要模块。

m0_48633755的博客 1192

Cloud Connector RFC 访问控制深度实践:为 SAP BTP ABAP environment 打通安全、可控的远程连接

本文是一份面向企业ABAP团队与平台工程团队的Cloud Connector RFC访问控制配置指南。文章详细介绍了虚拟主机/实例号、负载均衡、资源白名单等核心概念,并提供了从零开始的配置流程。主要内容包括:通过Cloud Connector建立安全隧道的价值(零暴露、最小权限)、两种连接类型(无负载均衡/带负载均衡)的配置方法、资源白名单设置技巧,以及两个典型应用场景(Custom Code Migration远程检查与BAPI调用)的实操案例。指南基于SAP官方文档,包含落地经验与避坑建议,可帮助团队快

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 146

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

python脚本给微信好友自动发晚安消息

一、引言 做这个的原因是因为有一个朋友特别喜欢熬夜,所以就写一个脚本,每天晚上定时提醒Ta睡觉。网上找了点资料,在别人基础上改了一下。 二、python源代码 import win32clipboard as w import win32con import win32api import win32gui import time import threading import datetime sentence = ['睡觉呀,冲呀!', '睡觉啦啦啦啦啦', '你是睡着了呢,还是睡着了呢,还是睡着了呢'

qq_40511157的博客 4075

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

源代码:晚安,不要熬夜,早点睡哦

<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>️</title> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "h...

weixin_72209042的博客 2940

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Java-时钟小程序

先!上!图! 代码实现如下 package Clock3; import java.awt.*; import java.util.Date; import javax.swing.*; public class Clock extends JComponent{ private static final long serialVersionUID = 1L; pr...

GodOuO 1万+

pyautogui库的使用教程(超详细)

这是 PyAutoGUI 的使用手册。PyAutoGUI 是适用于 Python 2 和 3 的跨平台 GUI 自动化模块。您可以控制鼠标和键盘以及执行基本图像识别以自动执行计算机上的任务。

QQVQQ的博客 6万+

[Python] Python自动化:PyAutoGUI的基本操作

PyAutoGUI是一个跨平台的Python库,用于自动化鼠标和键盘操作。本文详细介绍了其核心功能:1) 鼠标控制:移动、点击(左/中/右键)、滚轮滑动;2) 键盘操作:文字输入(含中文方案)、快捷键组合、按键模拟;3) 屏幕处理:截图(全屏/区域截取);4) 交互功能:消息弹窗和输入框。特别说明坐标系统以(0,0)为左上角,最大值需小于分辨率1。文中包含大量实用代码示例,如通过pyperclip实现中文输入、按键状态控制等,是GUI自动化开发的实用参考手册。

qq_53232485的博客 1280

python pyautogui自动化点击

用pyautogui进行自动化点击,为了实现依次点击文件夹和文件夹里面的文件,编写个简单代码。 import pyautogui import time x,y=pyautogui.size() #返回当前屏幕分辨率 print(x,y) x,y=pyautogui.position() #返回当前鼠标位置 print(x,y) # pyautogui.moveTo(x,y,du...

mr_xinL的博客 8312

python使用【pyautogui】玩转鼠标键盘自动化

爱玩,忽然想到万能的python能不能实现鼠标的自动化点击来帮忙实现一些繁琐的工作或者是实现一些有趣的功能,比如一个复杂操作但是它是固定的,我们只需要运行这个程序就可以自动执行了!

flyunicorninsky的博客 3321

详解Python中pyautogui库的最全使用方法

在使用Python做脚本的话,有两个库可以使用,一个为PyUserInput库,另一个为pyautogui库。就本人而言,我更喜欢使用pyautogui库,该库功能多,使用便利。下面给大家介绍一下pyautogui库的使用方法。这篇文章主要介绍了详解Python中pyautogui库的最全使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。也可以使用pyautogui库帮助文档的方法,不过本人认为使用上面的方法,更加便利。

ai520wangzha的博客 2965

pyautogui简介与使用

在日常的工作和生活中总会遇到各种繁琐且重复性极高的工作,如刷完无聊透顶的网课,填几十份重复的表格等,这时pyautogui或许可以帮到你,让你从电脑桌前解放出来。 首先要安装pyautogui模块,我以Windows系统为例,在命令行运行 pip install pyautogui来安装模块 运行时,首先 ...

saint_mariao的博客 1683
上一篇: 微软这个太强了
下一篇: 干货技巧!如何用一行命令格式化 Python 代码?
菜鸟学Python
博客等级 码龄9年 8061粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值