事情是這樣的:昨天晚上,女朋友讓我十二點催她睡覺。
不過,可是我實在太困了,熬不下去…… 是吧?女朋友哪有睡覺重要?
但,女朋友的命令,我是不敢違抗的……
但是睡覺也不能缺! 這時候我們該怎么辦呢?是時候讓Python登場了!
責任編輯:haq 但,女朋友的命令,我是不敢違抗的……
但是睡覺也不能缺! 這時候我們該怎么辦呢?是時候讓Python登場了!
Python登場
這次我們來做一個自動發送微信的程序,在深夜十二點的時候給女朋友發去消息,也算是盡了一個男朋友的義務了。安裝和導入
我們需要兩個模塊:apscheduler,pyautogui快捷鍵 Windows+r 打開運行控制框,輸入 cmd,進入命令行,輸入:pip install apschedulerpipinstallpyautogui導入:import pyautoguifrom datetime import datetimefrom apscheduler.schedulers.blocking import BlockingScheduler # 阻塞當前進程的調度器# blocking類型調度器會阻塞當前進程,若你想要后臺運行的調度器,可以使用以下代碼:#fromapscheduler.schedulers.backgroundimportBackgroundScheduler
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 pyperclip pyperclip.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 pyautoguiimport pyperclipfrom datetime import datetimefrom 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點的時候電腦還亮著,而且還在自己發微信!不過,好在女朋友沒丟,我成功完成了女朋友的任務! 好啦,這篇文章就到這里了。以上就是我分享的全部內容,感謝閱讀!原文鏈接:https://blog.csdn.net/weixin_52132159/article/details/119785717
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
代碼
+關注
關注
30文章
4967瀏覽量
73954 -
python
+關注
關注
57文章
4876瀏覽量
90022
原文標題:女朋友讓我深夜十二點催她睡覺,我用Python輕松搞定
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
熱點推薦
如何制作 rt117x 閃存驅動程序?
的RAM中運行它,然后升級程序。但是現在我不知道如何制作這個閃存驅動器。因此,我想問一下 FAE 是否可以告訴我如何制作它,或者是否有一
發表于 03-04 06:38
華為手機如何定時發送消息
為手機如何定時發送消息 ? 在華為手機上定時發送短信是一種方便的方式,可以在選定的時間發送信息而不必一直守在手機旁邊, 很多人希望提前準備生
LABVIEW 2023 Q1調用python后一直報錯1671
LABVIEW 2023Q1調用python后一直報錯1671報錯信息:PythonNode_AddTwoDoubles.vi中的打開Python會話Python returned
發表于 11-12 09:51
Python調用API教程
兩個不同系統之間的信息交互。在這篇文章中,我們將詳細介紹Python調用API的方法和技巧。 一、用Requests庫發送HTTP請求 使用Pyth
用 Python 給 Amazon 做“全身 CT”——可量產、可擴展的商品詳情爬蟲實戰
一、技術選型:為什么選 Python 而不是 Java? 結論: “調研階段用 Python,上線后如果 QPS 爆表再考慮 Java 重構。” 二、整體架構速覽(3 分鐘看懂) 三、開發前準備(5
DIY 流體模擬吊墜(一):理論與第一個吊墜的制作
一件能夠實時運行 FLIP 流體模擬的手工珠寶。外殼鍍金,顯示屏由一片表鏡保護。 觀看以下視頻,您可以了解整個設計與制作過程: 簡介 我一直想實現一
termux如何搭建python游戲
戲開發流程
以Pygame為例,創建一個基礎窗口:
```python
import pygame
pygame.init()
screen = pygame.display.set_mode
發表于 08-29 07:06
Python腳本實現運維工作自動化案例
還在為重復性運維工作而煩惱?每天被各種告警、監控、部署搞得焦頭爛額?作為一名有10年經驗的運維老司機,今天分享5個超實用的Python自動化腳本,讓你的運維工作效率提升300%!這些都
如何用Arduino Nano/UNO R3開發板給另一個Arduino IDE不能下載的Arduino Nano/UNO R3開發板重新燒錄引導程序bootlaoder
本文介紹了如何用能夠Arduino IDE下載的Arduino Nano/UNO R3開發板給另一個Arduino IDE不能下載的Arduino Nano/UNO R3開發板重新燒錄引導程序bootlaoder
基礎篇3:掌握Python中的條件語句與循環
:
print(\"你還很小。\")
循環
循環允許程序重復執行一段代碼,直到滿足某個條件為止。Python中有幾種不同的循環結構。
for循環
for循環通常用于遍歷序列(如列表、元組
發表于 07-03 16:13
如何用FastMCP快速開發自己的MCP Server?
使用FastMCP快速實現MCP Server的全過程! 一, FastMCP簡介 FastMCP作為新一代Python風格的MCP服務開發框
如何用Python制作一個自動發送程序
評論