最近因为某些原因需要在特定时间给别人发送消息,本以为微信会有自带定时发消息功能结果发现没有,就想着用Python自己写一个定时发消息的脚本。
初步了解了下相关的API好像用不了了,于是想到可以用pynput库模拟按键, pywinauto、uiautomation库实现界面的自动化。
代码地址:https://github.com/Frostyume/AutoSendMsg
目录
项目结构
AutoSendMsg
├──Keyboard.py
├──AutoSend.py
└──main.py
实现过程
1.Keyboard.py
利用pynput模拟按键操作以及输入文本的实现
from pynput.keyboard import Controller, Key
import time
# 创建键盘控制器
keyboard = Controller()
# 确认
def enter():
keyboard.press(Key.enter)
keyboard.release(Key.enter)
time.sleep(1)
# 打开搜索框
def open_search():
keyboard.press(Key.ctrl)
keyboard.press('f')
keyboard.release('f')
keyboard.release(Key.ctrl)
time.sleep(1)
# 粘贴
def paste():
keyboard.press(Key.ctrl)
keyboard.press('v')
keyboard.release('v')
keyboard.release(Key.ctrl)
time.sleep(1)
# 打字
def typewrite(txt):
keyboard.type(txt)
2.AutoSend.py
AutoSendMsg类的实现,利用psutil库检查相关进程是否已在运行,选择打开exe或者连接到正在运行的进程,然后获取窗口(这里微信没有任何问题,QQ无法获取窗口,原因不明),发送消息环节可以先用ctrl+f热键打开搜索