【玩具】使用Python自动化发送微信消息进行订水

网友投稿 245 2022-07-29

然后我就一直挺想搞一个的,不为别的,就是玩,但是想来想去也没想到这玩意儿对我而言能有啥用途,就暂且搁置了这个想法。直到这几周来,每次发现办公室桶装矿泉水被喝完了之后,都需要微信通知订水师傅来送水,就萌生了个想法,我何不搞个夸张的大按钮,每次订水的时候直接拍一下按钮然后自动发送消息呢?

然后就是可行性研究,需要确认的地方有这些:

1. 如何实现自动发送微信消息?

2. 如果第一步可以,那如何通过这个按钮调用我写好的自动发消息的脚本?

关于如何发送微信消息这里,我粗略的查了下,发现微信这个坏东西比QQ还要严,压根不存在QQ机器人这类的框架或工具的,网页版微信也早就被抛弃了,没有API可以调用(其实也正常,真要出个能模拟用户的API,黑产不乐疯了)。那么咋办呢?

答案是Python的pyautogui图像自动化库。

哎呀,虽然以前就听说过什么“人生苦短,我用Python”这类的话,但是之前也没咋认真接触过,而这不看则已,一看惊人啊,这个Python的图像自动化库简直神器,完美契合了我的需求,他可以根据你提供的图片,自动在屏幕上寻找相似的地方,然后返回坐标,得到目标的具体坐标了岂不是什么都能干了。

第二个问题则更好解决,找一个可以自定义快捷键的大按钮即可。

然后就在网上找pyautogui这个库的代码,依葫芦画瓢的写了一个打开微信并发送消息的脚本:

# coding=utf8

import pyautogui

import pyperclip

import time

contacter = "订水"

msg = '送两桶水,麻烦收到回复'

#打开微信

location=pyautogui.locateCenterOnScreen('WeChat.png',confidence=0.9)

if location is not None:

print('打开微信')

pyautogui.click(location.x,location.y,clicks=1,interval=0,duration=0.2,button='left')

#搜索订水

location=pyautogui.locateCenterOnScreen('search.png',confidence=0.7)

if location is not None:

print('搜索用户')

pyautogui.click(location.x,location.y,clicks=1,interval=0,duration=0.2,button='left')

pyperclip.copy(contacter)

pyautogui.hotkey('ctrl', 'v')

time.sleep(1)

#打开聊天窗口,输入文字

location=pyautogui.locateCenterOnScreen('contacter.png',confidence=0.7)

if location is not None:

print("打开聊天框")

pyautogui.click(location.x,location.y,clicks=1,interval=0,duration=0.2,button='left')

#time.sleep(1)

#焦点在输入框,输入文字

location=pyautogui.locateCenterOnScreen('input.png',confidence=0.7)

if location is not None:

print("输入文字并发送")

pyautogui.click(location.x,location.y,clicks=1,interval=0,duration=0.2,button='left')

pyperclip.copy(msg)

pyautogui.hotkey('ctrl', 'v')

pyautogui.press('enter')

print("结束")

关于发送消息的那个地方,这个库就有些力不从心了,因为他能提供的功能是模拟鼠标和键盘的操作,但是打字嘛...特别是用拼音打出汉字,真就得输入拼音然后加空格,通过输入法打出来,而这个办法实际上不是很稳定。

那么什么办法实现汉字的输入呢?那自然是我们最熟悉的Ctrl+C、Ctrl+V了。

而Python还有个库(pyperclip)就提供了Windows剪贴板的功能,可以将字符串复制进剪贴板,然后就可以调用这个自动化库pyautogui里面的热键方法来触发Ctrl+V,将复制到的文字粘贴到目标位置。

至此,代码上的准备工作已经结束,保存后创建一个快捷方式,设置为Ctrl+数字键盘上的减号键。

然后将淘宝来的这个大按钮接到电脑上,设置这个按钮触发上述的快捷键,到此就大功告成了。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:excel数据处理一:巧妙使用openpyxl提取、筛选数据(openpyxl读取excel数据)
下一篇:Django3.2 自动发现所有路由(django3.2教程)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~