赞
踩
看过好多文章在讲微信自动化的,但是由于微信网页版不能登录,好多软件包没有用了,比如itchat、wxpy等等。然后我看到一个讲wxauto这个软件包的,就是基于模拟鼠标键盘实现对微信的控制,还是很有意思的。不过我们得先在电脑上登录微信,才能方便使用。毕竟也是新手,今天给大家浅浅地讲一个微信实现自动化发送文件。
可以直接去官网安装:windosSDK
安装好后直接打开文件夹搜索inspect.exe文件打开即可
5.软件包:pyperclip、time、wxauto、uiautomation
直接终端pip即可
win+r 然后输入cmd打开终端
输入:pip install + 软件包名称
回车安装即可
- # -*- coding: utf-8 -*-
- import time
- import pyperclip # 导入pyperclip库
-
- import pyautogui
- from wxauto import *
- from uiautomation import WindowControl, PaneControl
- # 打开隐藏的图标
- PaneControl(Name='任务栏').PaneControl(Name='DesktopWindowXamlSource').ButtonControl(Name='显示隐藏的图标').Click()
-
- # 点击微信
- PaneControl(Name='系统托盘溢出窗口。').ButtonControl(Name='微信').Click()
-
- # 绑定微信主窗口
- wx = WindowControl(Name='微信')
通过inspect,我们发现右下角的托盘就是PaneControl,然后Name属性是任务栏
然后我们逐层往下找到微信按钮,使用Click点击效果就OK了
这个地方挺好理解的,多看两遍,试着写写就可以了
注意:大小写和窗口的类型
-
- # 输入群聊名称
- names = ['测试']
- # 输入文件名和路径
- file_name = '自行修改'
- file_path = r'自行修改'
'运行
这个地方没有什么要讲的,自己能够改动的
-
- # 选择群聊
- for name in names:
- WeChat().ChatWith(name)
先补充一下WeChat软件包
- def ChatWith(self, who, RollTimes=None):
- '''
- 打开某个聊天框
- who : 要打开的聊天框好友名,str; * 最好完整匹配,不完全匹配只会选取搜索框第一个
- RollTimes : 默认向下滚动多少次,再进行搜索
- '''
- self.UiaAPI.SwitchToThisWindow()
- RollTimes = 10 if not RollTimes else RollTimes
- # 当前显示的聊天列表中没找到指定名称的好友或群时,会滚动聊天列表界面,继续寻找
- def roll_to(who=who, RollTimes=RollTimes):
- for i in range(RollTimes):
- if who not in self.GetSessionList()[:-1]:
- self.SessionList.WheelDown(wheelTimes=3, waitTime=0.1*i)
- else:
- time.sleep(0.5)
- # 这是点击客户端聊天列表中指定的窗口
- self.SessionList.ListItemControl(Name=who).Click(simulateMove=False)
- return 1
- return 0
- rollresult = roll_to()
- if rollresult:
- return 1
- else:
- self.Search(who) # 当前显示的聊天列表中没找到指定名称的好友或群时,直接在搜索框中搜索
'运行
这个不用知道怎么做到的,会用就行
-
- # 点击发送文件
- wx.ButtonControl(Name='发送文件').Click()
-
- # 发送文件
- # 输入文件地址
- pyperclip.copy(file_path) # 使用pyperclip将文件路径复制到剪贴板
- pyautogui.hotkey('ctrl', 'v') # 使用快捷键粘贴文件路径
- time.sleep(1)
- pyautogui.press('enter')
-
- # 输入文件名
- pyperclip.copy(file_name) # 使用pyperclip将文件名复制到剪贴板
- pyautogui.hotkey('ctrl', 'v') # 使用快捷键粘贴文件名
- time.sleep(1)
- pyautogui.press('enter')
-
- # 发送
- pyautogui.press('enter')
- print('已完成')
然后这里我们同样使用inspect查找路径,然后用pyautogui和pyperclip复制粘贴路径和名称,最后回车发送即可
- # -*- coding: utf-8 -*-
- import time
- import pyperclip # 导入pyperclip库
-
- import pyautogui
- from wxauto import *
- from uiautomation import WindowControl, PaneControl
-
- # 打开隐藏的图标
- PaneControl(Name='任务栏').PaneControl(Name='DesktopWindowXamlSource').ButtonControl(Name='显示隐藏的图标').Click()
-
- # 点击微信
- PaneControl(Name='系统托盘溢出窗口。').ButtonControl(Name='微信').Click()
-
- # 绑定微信主窗口
- wx = WindowControl(Name='微信')
-
- # 输入群聊名称
- names = ['测试']
- # 输入文件名和路径
- file_name = '正确.docx'
- file_path = r'C:\Users\12739\Desktop\pic'
-
- # 选择群聊
- for name in names:
- WeChat().ChatWith(name)
-
- # 点击发送文件
- wx.ButtonControl(Name='发送文件').Click()
-
- # 发送文件
- # 输入文件地址
- pyperclip.copy(file_path) # 使用pyperclip将文件路径复制到剪贴板
- pyautogui.hotkey('ctrl', 'v') # 使用快捷键粘贴文件路径
- time.sleep(1)
- pyautogui.press('enter')
-
- # 输入文件名
- pyperclip.copy(file_name) # 使用pyperclip将文件名复制到剪贴板
- pyautogui.hotkey('ctrl', 'v') # 使用快捷键粘贴文件名
- time.sleep(1)
- pyautogui.press('enter')
-
- # 发送
- pyautogui.press('enter')
- print('已完成')
这个其实很简单,大家入手后可以去研究一下实现微信消息监控、自动回复、抓取聊天记录等等功能。希望能帮助到大家!
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。