我最近遇到了这样的一个问题,我的室友自从玩了原神以后就很少叫我打永劫无间了。有的人信誓旦旦地说着自己不是二刺螈,身体却很老实,在手机电脑ipad上都下载了原神还看起了b站攻略。
为警醒室友,本人利用前阵子花半小时学来的pyautogui模块进行了如下尝试:
操作如下:1、对微信搜索框进行截图并保存,后面用来比对定位,会返回搜索框的坐标位置用来输入好友昵称。 2、运行下面代码,点开微信窗口,时间一到自会进行全屏截图。3、代码会根据全屏截图与第一步中的图片进行对比,从而进行搜索和发送。
代码如下:保存完图片后可直接复制粘贴使用,我将上面的搜索框截图后保存名为xxx.jpg。
import os
import cv2
import time
import pyperclip #用于复制粘贴
import pyautogui
#从屏幕screen中找到source的位置坐标(找到微信搜索框的位置)
def findImg():
im = pyautogui.screenshot()
im.save('screen.png')
screen = cv2.imread('./screen.png')
mPicture= cv2.imread('./xxx.jpg')
result = cv2.matchTemplate(mPicture,screen, cv2.TM_CCOEFF_NORMED)
pos_start = cv2.minMaxLoc(result)[3] #获取最相似点相似坐标
x = int(pos_start[0]) + int(mPicture.shape[1] / 2)
y = int(pos_start[1]) + int(mPicture.shape[0] / 2)
return x,y
#向搜索框中录入要查找的好友名称:name好友名称,x,y搜索框位置
def search_friend(x,y,name):
pyautogui.click(x,y)
time.sleep(1)
#赋值好友名称
pyperclip.copy(name)
#粘贴复制内容
pyautogui.hotkey('ctrl', 'v')
time.sleep(1)
pyautogui.hotkey('enter')
#向下移动100个像素定位到搜索到第一个好友位置点击
# pyautogui.moveTo(x, y+80)
# pyautogui.click(x, y+80)
#向好友发送消息
def send_msg(msg):
pyperclip.copy(msg)
pyautogui.hotkey('ctrl', 'v')
pyautogui.hotkey('enter')
#主要程序
time.sleep(5)
x,y = findImg()
search_friend(x,y,'传输')
for i in range(10):
send_msg('你是二刺螈吗')
time.sleep(1)