作者:JUN-围脖 | 来源:互联网 | 2023-07-09 18:24
众所周知,当我们在春节通宵玩游戏或者看春节晚会的时候,如果你的好友和亲戚这时给你发来春节祝福,而你又刚好在团战或是看到精彩部分,我们就没办法抽时间来回复他们,万一他们直接打电话来,打断了我们的美好时光,就很容易把我们高兴s。
鱼逝,我就用Python做了这个自动祝(fu)福(yan)系统,帮助我们自动祝福别人,畅享幸福假期。
先看看库先!
import time
import random
import tkinter as tk
from tkinter import ttk, messagebox as msg
from PIL import ImageGrab,ImageChops,Image
import pymouse, pykeyboard, pyperclip
一个tkinter用来创建窗口,方便大家在自己电脑上操作
PIL这个库提供了截屏和图片对比,方便对消息的更新做出反应
至于pymouse, pykeyboard, pyperclip都是老面孔了,键盘输入鼠标获取和消息传递
蓝后,就是创建窗口!
mainForm = tk.Tk()
mainForm.title('自动敷衍系统')
mainForm.resizable(0, 0)msgText = tk.Text(mainForm, height=40, width=40)
msgText.insert(0.0, "在这里写下你喜欢的敷衍的话吧")
msgText.grid(row=0, padx=5, pady=5)
由于,每个人的新年祝福都不一样,于是我就在这里放了个文本输入框,方便文采好的人可以任意发挥,emoji也是支持的哦😯!
mouseInputXY = (-1, -1)
mousePeopleXY = (-1,-1)
mouseUPXY = (-1,-1)
mouseDOWNXY = (-1,-1)def onClickMouseButton():global mouseInputXY ,mouseUPXY ,mouseDOWNXY ,mousePeopleXYm = pymouse.PyMouse()msg.showinfo('成功', '成功,请在点击确认后2秒内将鼠标移动到微信的输入框,2秒后自动获取输入框鼠标位置。')time.sleep(2)mouseInputXY = m.position()msg.showinfo('成功', '成功,请在点击确认后2秒内将鼠标移动到微信第一人上,2秒后自动获取鼠标位置。')time.sleep(2)mousePeopleXY = m.position()msg.showinfo('成功', '成功,请在点击确认后2秒内将鼠标移动到微信聊天框的左上端,2秒后自动获取鼠标位置。')time.sleep(2)mouseUPXY = m.position()msg.showinfo('成功', '成功,请在点击确认后2秒内将鼠标移动到微信聊天框的右下端,2秒后自动获取鼠标位置。')time.sleep(2)mouseDOWNXY = m.position()msg.showinfo('成功', '任务成功完成')
基于每个人电脑都不一样,自然微信QQ的输入位置都不一样,而这个函数就是为为了让敷衍系统更加贴切,更懂你。
海澜之家,男人的衣柜(不知道为什么突然想到这句广告)
def compare_images(path_one, path_two):image_one = Image.open(path_one)image_two = Image.open(path_two)try:diff = ImageChops.difference(image_one, image_two)if diff.getbbox() is None:# 图片间没有任何不同则直接退出print("No message!")return Falseelse:print('New!')return Trueexcept ValueError:pass
这个就是比较桌面截屏的函数啦!如果有变化,我们的程序就知道是有消息了(当然,它区分不了群消息和个人消息,都会发敷衍[大哭])
mouseButton = ttk.Button(mainForm, text='点击获取鼠标位置', width=40, command=onClickMouseButton)
mouseButton.grid(row=2, padx=5, pady=5)
哦差点忘了,这里当然还有一个启动用的按钮啦,这东西可不能丢yee
def onClickStartButton():# 判断是否已经读取鼠标位置if mouseInputXY == (-1, -1):msg.showerror('错误', '请先获取鼠标位置哦哦哦')returnmsgContent = msgText.get(0.0, tk.END).rstrip()if msgContent == '在这里写下你喜欢的敷衍的话吧' or msgContent == '':msg.showerror('错误', '请先输入你要敷衍的话')returnif not msg.askokcancel('提示', '开始敷衍喽'):returnm = pymouse.PyMouse() # 获取鼠标对象k = pykeyboard.PyKeyboard() # 获取键盘对象lst = msgContent.split()size = (mouseUPXY[0], mouseUPXY[1], mouseDOWNXY[0], mouseDOWNXY[1])print(size)path_one, path_two = r"cut1.jpg", r"cut2.jpg"while True:img = ImageGrab.grab(size)image = img.convert('RGB')image.save(path_one)time.sleep(5)img = ImageGrab.grab(size)image = img.convert('RGB')image.save(path_two)if compare_images(path_one,path_two):m.click(mousePeopleXY[0], mousePeopleXY[1], n=2)m.click(mouseInputXY[0], mouseInputXY[1], n=2)pyperclip.copy(random.choice(lst))k.press_keys(['Command', 'V'])time.sleep(1)k.press_keys(['Return'])time.sleep(1)m.click(mouseInputXY[0], mouseInputXY[1])
好了核心部分,终极奥义就是
就是
就是
白嫖啦,直接把上面所有的代码段都拼起来,然后图片存放的路径改改,就可以用啦
快去用吧
去吧去吧
你还在看什么呢
别看我看代码呀
什么?
你说不完整?
哪里哪里
你看
startButton = ttk.Button(mainForm, text='启动', width=40, command=onClickStartButton)
startButton.grid(row=3, padx=5, pady=5)mainForm.mainloop()
这不就完整啦,加上这段就可以用啦
什么?还不完整?!
你还想要用来敷衍的话,都懒到这种地步了吗(呜呜呜)
好吧
那我就贴在这里喽
# 新年快乐!!!
最后祝大家心想事成万事如意,福如东海寿比南山,一天更比一天好!!!
哦耶!