众所周知,有人喜欢回消息的时候回一个或几个嗯,就像这样:
或者这样:
这个时候回什么好呢?你不知道,我不知道,大家都不知道。
这个时候就回若干个“嗯”吧,不然很容易把我们给憋死。
但是众所周知,回消息要输入好几个嗯,很容易把我们给累死。
因此,为了给我们留一条生路,我想到了两个模块,pyautogui,pyperclip。
为了搞定这个,首先我们需要安装这两个模块。
pip install pyautogui
pip install pyperclip
然后具体代码如下:
"""
-*- coding: utf-8 -*-
@File : HalfAutoReply.py
@author: 刘子忻
@CSDN : 山河之书Liu_Zixin
@Time : 2022/11/06 23:38
"""
import random
import pyautogui as gui
import pyperclip as lip
import time
while True:
if gui.locateOnScreen('demo5.png', grayscale=True): # 按照模板匹配检查是否存在目标,设置灰度检查,提高查找效率
a = random.randint(2, 4)
b = "嗯" * a
left, top, width, height = gui.locateOnScreen('demo2.png', region=(170, 480, 1360, 545), grayscale=True) # 这个地方在广泛的数据基础上,设置了检查范围,设置灰度检查,极大提高了效率
height = height + 60 # 移动中心点(这波是迂回一下,使用移动高度来移动中心点)
center = gui.center((left, top, width, height)) # 设置点击中心点
gui.doubleClick(center) # 点击中心点
lip.copy(b) # 赋值b到剪贴板
gui.keyDown('ctrl') # 模拟按下ctrl
gui.press('v') # 模拟戳一下v
gui.keyUp('ctrl') # 模拟松开ctrl
gui.hotkey("enter") # 模拟戳一下enter
# 上面这一段有一堆不同的表达方式,大家随意即可
else: # 上来检查不到
time.sleep(3) # 让程序歇歇
上面提到的几个图片是(demo5在前,demo2在后):
这里之所以截图到了底下的输入框呢,就是为了保证这条消息发出来之后只能回复一次,不会持续匹配回复,等到下次再发的时候就重新检测运行。
(请忽略水印,个人信息是不可能让你看见的,绝对不可能的)
原理(不想看的人直接复制粘贴程序,运行就是了,管那么多干啥,有什么BUG在评论区问我):
1、启动程序后,就会根据demo5里面的样式循环查找屏幕中是否存在一样的结构,有的话就跳转到2,反之则停三秒后进入下一次查找(考虑到python的循环有上限,因此不要每时每刻都在循环,停上三秒)。
2、取随机整数,然后生成含有2-4个“嗯”的字符串。
3、四个参数定位匹配成功的样式demo2,确定图片位置。
4、因为要确定中心点,而我们需要让鼠标模拟点击到输入框,所以需要让中心点下移,这个地方我选择把图片的高拉长,顶端不变,因此中心点下移。
5、模拟鼠标到确定的中心店位置,点击唤醒输入框。
6、复制,模拟粘贴,模拟发送(要是ctrl+enter发送的话就把hotkey那里改一下就好,传入两个值)
使用方法:运行之后就开始发消息就行了,对面发了“嗯”*n之后,程序会自动帮你发几个嗯上去
不知给这个程序取个什么名字好呢?