文章开头,先来看一个demo的效果。
执行程序,打开桌面微信客户端,然后打开文件传输助手,最后发送消息。
当然这个例子是给文件传输助手发,你也可以给女朋友发,设置个定时,可以安心地去睡觉,或者干别的,给领导发,每天定时发工作汇报,如果你是一个社群运营,每天要往不同的群里发东西,用这个小脚本就能轻松做到,话不多说,下面一起来看看吧!
这个案例只需要基础的语法知识即可,其余的功能都是用的第三方库。
这里用到了两个库,pyautogui,和pyperclip。
先来看pyautogui :
pyautogui自动化控制鼠标和键盘操作,安装:
pip install pyautogui
这里没有用到鼠标,直接用的是键盘快捷键:
这个库可以执行的方法如下:可以输入,按下,快捷键等。
#模拟输入信息
pyautogui.typewrite(message='Hello world!',interval=0.5)
#点击ESC
pyautogui.press('esc')
# 按住shift键
pyautogui.keyDown('shift')
# 放开shift键
pyautogui.keyUp('shift')
# 模拟组合热键
pyautogui.hotkey('ctrl', 'c')
快速打开微信客户端,可以用到的快捷键就是Ctrl Alt w。查看方法如图所示:
然后我们就可以直接导入,并定义一个打开微信的函数了。
import pyautogui
def openWechat():
pyautogui.hotkey("ctrl","alt","w")
接下来打开微信后,我们用人工的操作方式应该是找到搜索框进行搜索,然后输入要搜索的名字,确定后再消息。
接下来就是就需要用到另外一个库pyperclip,这个库只有一个读写剪贴板的功能。
>>> import pyperclip
>>> dd=pyperclip.paste()
>>> print(dd)
python大法好!
>>> pyperclip.copy("docs.python.org")
>>> pyperclip.paste()
'docs.python.org'
我们用到这个库的原因是我们在ide里边写好文本,需要代码把文本传到微信客户端上去。
这里还是用到快捷键,ctrl f,搜索,然后粘贴文本,然后回车确定,即可找到需要找的人。
import pyperclip
# TODO 定义一个查询联系人的函数,参数为name
def chatWho(name):
# TODO 使用hotkey函数,操作按键"ctrl","f",打开搜索
pyautogui.hotkey("ctrl","f")
# TODO 使用pyperclip模块中的copy函数,复制微信号name到剪贴板
pyperclip.copy(name)
# TODO 使用hotkey函数,操作按键"ctrl", "v",粘贴微信号
pyautogui.hotkey("ctrl","v")
time.sleep(1)
# TODO 使用hotkey函数,操作按键"enter",确认搜索
pyautogui.hotkey("enter")
chatWho("文件传输助手")
最后就是发送函数,直接复制需要传输的文本,然后粘贴到微信对话框,再点击回车即可发送。
最后可以导入time库,防止大批量执行的时候,程序执行过快,导致微信封号。
完整的代码就是这边啦!
import pyautogui
import time
def openWechat():
pyautogui.hotkey("ctrl","alt","w")
time.sleep(1)
import pyperclip
# TODO 定义一个查询联系人的函数,参数为name
def chatWho(name):
# TODO 使用hotkey函数,操作按键"command","f",打开搜索
pyautogui.hotkey("ctrl","f")
# TODO 使用pyperclip模块中的copy函数,复制微信号name到剪贴板
pyperclip.copy(name)
# TODO 使用hotkey函数,操作按键"command", "v",粘贴微信号
pyautogui.hotkey("ctrl","v")
time.sleep(1)
# TODO 使用hotkey函数,操作按键"return",确认搜索
pyautogui.hotkey("enter")
time.sleep(2)
def sentMsg(msg):
pyperclip.copy(msg)
pyautogui.hotkey("ctrl","v")
pyautogui.hotkey("enter")
# 调用OpenWechat()函数打开桌面微信
openWechat()
# TODO 调用chatWho(name)函数查找联系人,"duqian"
chatWho("文件传输助手")
sentMsg("发布测试")
接下来就是给特定的好友发消息,这一步我没做,修改的代码就是把chatWho函数那需要发送的好友微信号做一个列表,然后做循环执行即可。发布的消息如果需要带上每个人的昵称,可以在sentMsg里修改循环字符串。
那你要问了,怎么才能获取这些好友的微信号呢,如果要是一个个搜,那不是也很麻烦,你可以用这个库来进行,不过现在因为网页版微信不能用了,所以就用起来比较困难了。
,