自动祝福(定时发送消息)

自动祝福

有个同学找我帮忙:明天是她朋友的生日,但她没时间发送祝福,问我能不能弄个自动发送。我想,QQ并没有内置的定时发送功能,紧接着又想起了QQ刷屏助手(见我以前的博文)便用Python实现了她提出的需求。

代码

import tkinter as tk
import tkinter.messagebox as messagebox
import datetime
import time
import win32gui
import win32con
import win32clipboard as w

#主要
def main(name,word,time_h,time_m):
    startTime = datetime.datetime(datetime.datetime.now().year,datetime.datetime.now().month,datetime.datetime.now().day,time_h,time_m,0)
    print('Program not starting yet...')
    wt=0
    while datetime.datetime.now() < startTime:
        time.sleep(1)
        print('time count %s'%wt)
        wt=wt+1
    print('程序在停止'+str(wt)+'秒后于'+str(startTime)+'开始运行')
    print('Executing...')
    print('任务执行')
    #设置剪贴板文本
    w.OpenClipboard()
    w.EmptyClipboard()
    w.SetClipboardData(win32con.CF_UNICODETEXT, word)
    w.CloseClipboard()
    # 获取qq窗口句柄
    qq=win32gui.FindWindow(None,name)
    # 投递剪贴板消息到QQ窗体
    win32gui.SendMessage(qq, 258, 22, 2080193)
    win32gui.SendMessage(qq, 770, 0, 0)
    # 模拟按下回车键
    win32gui.SendMessage(qq, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)
    win32gui.SendMessage(qq, win32con.WM_KEYUP, win32con.VK_RETURN, 0)
    messagebox.showinfo('提醒','任务执行完成!')

def start():
    messagebox.showwarning('注意','''
·开始运行后请勿关闭程序,否则任务会结束!
·请确认发送快捷键为Enter
''')
    main(name_enterbox.get(),word_enterbox.get(),int(time_enterbox_h.get()),int(time_enterbox_m.get()))

#窗口
window=tk.Tk()
window.geometry('380x450')
window.title('自动祝福')
#名称输入
enter_name_tip=tk.Label(window,text='请输入目标用户的昵称(如有备注,则仅输入备注)')
enter_name_tip.place(x=10,y=10)
name_enterbox=tk.Entry(window,bd=2,show=None,width=50)
name_enterbox.place(x=10,y=35)
#内容输入
enter_word_tip=tk.Label(window,text='请输入要发送的内容')
enter_word_tip.place(x=10,y=70)
word_enterbox=tk.Entry(window,bd=2,show=None,width=50)
word_enterbox.place(x=10,y=95)
#时间输入
enter_time_tip=tk.Label(window,text='请输入时间(24小时制)')
enter_time_tip.place(x=10,y=130)
#小时
time_enterbox_h=tk.Entry(window,bd=2,show=None,width=10)
time_enterbox_h.place(x=10,y=150)
enter_time_tip_h=tk.Label(window,text='小时')
enter_time_tip_h.place(x=90,y=150)
#小时
time_enterbox_m=tk.Entry(window,bd=2,show=None,width=10)
time_enterbox_m.place(x=150,y=150)
enter_time_tip_m=tk.Label(window,text='分钟')
enter_time_tip_m.place(x=230,y=150)
#开始按钮
start_btn=tk.Button(window,text='开始',bd=3,width=49,height=2,command=start)
start_btn.place(x=10,y=200)
#主循环
window.mainloop()

#定时程序来自CSDN博主weixin_33935505,原文链接:https://blog.csdn.net/weixin_33935505/article/details/93803069
#发送程序来自“QQ刷屏助手”

注意

  • 定时程序来自CSDN博主weixin_33935505,原文链接

  • 窗口查找功能似乎有些不稳定,最好手动定位。

目前缺陷

  • 运行时不能用电脑做其他事情
原文地址:https://www.cnblogs.com/TotoWang/p/auto_send.html