importcv2 as cvimportpyautoguiimportpyperclipimportosimporttimefrom PIL importImageGrabclasswechat():def __init__(self,wechat_path):
self.wechat_path=wechat_path
path= os.getcwd().replace('\', '/')defscanner_img(self,name):
clip=ImageGrab.grab()#clip = ImageGrab.grabclipboard()
if (clip !=None):
clip.save(self.path+"/image/" + name + ".jpg")return self.path+"/image/" + name + ".jpg"
return "err"
deffind_image(self,obj_path, src_path):
source=cv.imread(src_path)
template=cv.imread(obj_path)
result=cv.matchTemplate(source, template, cv.TM_CCOEFF_NORMED)
pos_start= cv.minMaxLoc(result)[3]
x= int(pos_start[0]) + int(template.shape[1] / 2)
y= int(pos_start[1]) + int(template.shape[0] / 2)
similarity= cv.minMaxLoc(result)[1]print(x,y)if similarity < 0.85:return(x, y)else:return(x, y)defcheck_img(self,obj_path, src_path):
x= -1y= -1
while x == -1:
x, y=self.find_image(obj_path, src_path)print(x,y)return(x, y)'''打开微信(需要用户自己截取屏幕上的微信图片)'''
defopen_wechat_cv(self):
pyautogui.hotkey('win', 'd')#res_name = gitBigImg.git_src_img("temp")
res_name = self.scanner_img("temp")
src_path=res_name#print(src_path)
obj_path = self.path+'/image/wechat.jpg'x, y=self.check_img(obj_path, src_path)#pyautogui.hotkey('win','d')
time.sleep(1)#pyautogui.moveTo(res[0][0],res[0][1],duration=2)
pyautogui.doubleClick(x, y)defopen_wechat(self):
pyautogui.hotkey('win', 'd')
cmd= self.wechat_path+''file=os.popen(cmd)#print(file)
file.close()
time.sleep(2)defsend_msg_obj(self,name):#res_name = gitBigImg.git_src_img("temp2")
res_name = self.scanner_img("temp2")
src_path=res_name#寻找搜索图片
obj_path = self.path+'/image/lan.jpg'x, y=self.find_image(obj_path, src_path)#print(x,y)
pyautogui.click(x, y)
time.sleep(1)
pyperclip.copy(name)
pyautogui.hotkey('ctrl', 'v')
time.sleep(1)#print(x,y)
pyautogui.hotkey('enter')'''需要发送的信息文本'''
defsend_msg(self,text):
pyperclip.copy(text)
pyautogui.hotkey('ctrl', 'v')'''微信换行'''
defhuang_hang(self):
pyautogui.hotkey('enter')'''信息发送'''
defsend(self):
pyautogui.hotkey('enter')if __name__ == '__main__':#使用class时,需要初始化微信的所在位置
shuru = int(input('请选择发送的对象:1:文件传输助手 2.xxx 3.xxx 4.xxx 5.xxx 请选择:'))if shuru == 1:
duixiang= '文件传输助手' #测试用
if shuru == 2:
duixiang= 'xxx'#填要发送的人名字 或者群名字
if shuru == 3:
duixiang= 'xxx'
if shuru == 4:
duixiang= 'xxx'
if shuru == 5:
duixiang= 'xxx'fileName= 'xxx.txt'#这里可以读取文件内容发送给别人
with open(fileName, "r",encoding='UTF-8') as f: #设置文件对象
str = f.read() #可以是随便对文件的操作
fileName1 = 'xxx.txt'#这里可以读取文件内容发送给别人
with open(fileName1, "r",encoding='UTF-8') as f: #设置文件对象
str1 = f.read() #可以是随便对文件的操作
wechat = wechat('C:\Program Files (x86)\Tencent\WeChat\WeChat.exe')
wechat.open_wechat()
wechat.send_msg_obj(duixiang)#这里修改可以指定发送给某人
wechat.send_msg(str)#发送的内容,可以随便自己填,不一定文本的
wechat.huang_hang()
wechat.send_msg(str1)#发送的内容,可以随便自己填,不一定文本的
wechat.send()#发送