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


不过,可是我实在太困了,熬不下去…… 是吧?女朋友哪有睡觉重要?

但,女朋友的命令,我是不敢违抗的……

但是睡觉也不能缺!

这时候我们该怎么办呢?是时候让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)

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

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) # 第二个参数为按下每一个字母的间隔,可选

看看效果:

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

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


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

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 BlockingSchedulerdef main():pyautogui.PAUSE = 0icon_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点的时候电脑还亮着,而且还在自己发微信!

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

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

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

https://blog.csdn.net/weixin_52132159/article/details/119785717

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

推荐阅读:

入门: 最全的零基础学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行代码做了一个语音壁纸切换器天天看小姐姐!|

年度爆款文案

  • 1).卧槽!Pdf转Word用Python轻松搞定!

  • 2).学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃

  • 3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密

  • 4).80行代码!用Python做一个哆来A梦分身

  • 5).你必须掌握的20个python代码,短小精悍,用处无穷

  • 6).30个Python奇淫技巧集

  • 7).我总结的80页《菜鸟学Python精选干货.pdf》,都是干货

  • 8).再见Python!我要学Go了!2500字深度分析

  • 9).发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片

点阅读原文,看Python全套!

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

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

  2. 让我十二点催她睡觉,我用 Python 轻松解决

    事情是这样的:昨天晚上,女朋友让我十二点催她睡觉. 不过,可是我实在太困了,熬不下去-- 是吧?女朋友哪有睡觉重要? 但,女朋友的命令,我是不敢违抗的-- 但是睡觉也不能缺! 这时候我们该怎么办呢?是 ...

  3. 轻松搞定表白女朋友:Android版APP (零基础也可直接下载软件)

    轻松搞定表白女朋友:Android版软件 (零基础也可直接下载软件) 在我们平时生活当中,经常会看到一些表白女朋友的html网页,但是Android端的表白软件可以说是基本没有,笔者在全网搜了一下,就 ...

  4. python自动修图_程序员不会用PS给女朋友修图?没关系,用Python十行代码轻松搞定-站长资讯中心...

    虽然P图 最好的还是用要学会使用PS,但是并不是每个人都会PS的,但是如果你会Python的话,也是可以为所欲为! 现代社会,不P图的人简直就像是恐龙一样稀奇,大到瘦脸瘦腿瘦全身,小到滤镜大眼高鼻梁, ...

  5. 创业者,如何搞定你那牢骚满腹的女朋友

    创业以来,最大的问题不是没有资金,也不是团队找不到兄弟们,而是女朋友和我闹上了. 伊在美国上学,就像白天不懂夜的黑,她的白天往往是我累成狗的晚上. 伊一通电话打来,和我探讨着"哪个包包更好看 ...

  6. 女朋友看电影没字幕,让我想办法搞定!谁让我是程序员呢!

    一.故事情节 是这样子的,女朋友晚上突然翻到了自己喜欢看的一个电影,但是没有字幕,这让她很苦恼. 我急中生智,紧急的解决了我女朋友的需求.不然还真不能上床睡觉 想到了使用Python做一个可以识别语音 ...

  7. 利用Python搞定女朋友的小情绪~

    - 点击上方"视学算法"订阅我吧!- 注:此项目仅供娱乐练习,女朋友还是要认真用心的交往哦~    01 简介    脱单狗福利!每天不同时间段给女友定时给女友发消息,不错过早上起 ...

  8. [极客]学以致用:光棍极客通过大数据搞定女朋友

    原文地址:http://www.lupaworld.com/article-235449-1.html 摘要: 马上就要过年了,又要回家面对各种七大姑八大姨的催命问题,相信对于广大的宅男极客来说--& ...

  9. 微信定时消息之搞定女朋友

    脱单狗福利!每天不同时间段给女友定时给女友发消息,不错过早上起床.中午吃饭.晚上吃饭.晚安时间! 目录 每天不同时间段通过微信发消息提醒女友 简介 编写思路 使用教程 演示图片 完整源代码 每天不同时 ...

最新文章

  1. Couldn't start MySQL! while starting XAMPP
  2. JAVA操作Hadoop
  3. Android Activity 以及 Application 生命周期
  4. 企业应用中使用Silverlight 3
  5. 以太坊智能合约开发环境配置
  6. (转载)MySQL基础(非常全)
  7. 别人抢红包,我们研究一下红包算法
  8. c语言if语句判断ab大小,C语言条件语句ifppt课件
  9. Matlab绘制柱状图(含显著性差异*)
  10. 输出今天是星期几并计算n天后的日期(万年历)
  11. SpringBoot+Mybatis-plus+aop实现一个类似JPA的@Audited注解(字段审计)功能
  12. 照片变漫画的方法有哪些?推荐两个方法给你
  13. 微信小程序通过服务号推送模板消息
  14. Linux驱动视频教程推荐,隆重推荐:linux驱动基础开发系列免费教程独家版本
  15. flink on k8s部署方案调研
  16. 函数凹凸性与黑塞矩阵
  17. R语言基础(1)-帮助函数|工作空间|IO|模块安装
  18. 大富网络、拓尔思、恒信东方、金马游乐……上市公司如何布局元宇宙?丨2022元宇宙云峰会...
  19. 通过叉积公式来判断一个点在矢量线段的那一侧的方法
  20. 4月13日—4月17日四年级课程表

热门文章

  1. 【PostMan使用】PostMan的简单使用教程
  2. echarts中markline设置后,前端其他数据都显示了,就是不显示markline,请求赐教
  3. kindle 资源汇总
  4. 区块链技术加持下的十款智能硬件产(kuang)品(ji)
  5. Uber打车用户留存情况预测
  6. Android微信/QQ红包自动抢(AccessibilityService)
  7. 微众银行在联邦推荐算法上的探索及应用
  8. 胡乱折腾之后,你的脸蛋憔悴了几分?
  9. jason3的ku、c波段的有效波高数据下载
  10. CentOS 6 忘记密码,修改密码