Python自动化实现微信自动发送文件

背景

        看过好多文章在讲微信自动化的,但是由于微信网页版不能登录,好多软件包没有用了,比如itchat、wxpy等等。然后我看到一个讲wxauto这个软件包的,就是基于模拟鼠标键盘实现对微信的控制,还是很有意思的。不过我们得先在电脑上登录微信,才能方便使用。毕竟也是新手,今天给大家浅浅地讲一个微信实现自动化发送文件。

项目准备

  1. PyCharm  PyCharm安装教程
  2. 我使用的是python 3.12  python安装教程
  3. 微信客户端
  4. 路径查找工具,我用的windows SDK自带的inspect

可以直接去官网安装:windosSDK

安装好后直接打开文件夹搜索inspect.exe文件打开即可

     5.软件包:pyperclip、time、wxauto、uiautomation

直接终端pip即可

win+r  然后输入cmd打开终端

输入:pip install + 软件包名称

回车安装即可

 项目实现

1、将软件包引入

# -*- coding: utf-8 -*-
import time
import pyperclip  # 导入pyperclip库

import pyautogui
from wxauto import *
from uiautomation import WindowControl, PaneControl

2、打开微信并绑定窗口

# 打开隐藏的图标
PaneControl(Name='任务栏').PaneControl(Name='DesktopWindowXamlSource').ButtonControl(Name='显示隐藏的图标').Click()

# 点击微信
PaneControl(Name='系统托盘溢出窗口。').ButtonControl(Name='微信').Click()

# 绑定微信主窗口
wx = WindowControl(Name='微信')

 

通过inspect,我们发现右下角的托盘就是PaneControl,然后Name属性是任务栏 

然后我们逐层往下找到微信按钮,使用Click点击效果就OK了

这个地方挺好理解的,多看两遍,试着写写就可以了

注意:大小写和窗口的类型

3、输入群聊名称、文件名称和路径


# 输入群聊名称
names = ['测试']
# 输入文件名和路径
file_name = '自行修改'
file_path = r'自行修改'

这个地方没有什么要讲的,自己能够改动的

4、选择群聊


# 选择群聊
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)  # 当前显示的聊天列表中没找到指定名称的好友或群时,直接在搜索框中搜索

 这个不用知道怎么做到的,会用就行

5、发送文件


# 点击发送文件
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('已完成')

这个其实很简单,大家入手后可以去研究一下实现微信消息监控、自动回复、抓取聊天记录等等功能。希望能帮助到大家!

  • 21
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实现微信自动好友验证,自动回复,发送群聊链接,需要用到Python微信机器人库wxpy和requests库。具体操作步骤如下: 1.安装wxpy和requests库 使用pip命令在Python环境中安装wxpy和requests库: ```python pip install wxpy requests ``` 2.登录微信并初始化机器人 创建一个新的Python文件并导入wxpy库,使用wxpy.Bot()函数登录微信并初始化机器人: ```python from wxpy import * bot = Bot() ``` 3.确认好友请求并发送自动回复 使用bot对象的accept_friend()函数确认好友请求并发送自动回复: ```python @bot.register(msg_types=FRIENDS) def auto_accept_friends(msg): # 自动接受好友请求 new_friend = bot.accept_friend(msg.card) # 发送自动回复 new_friend.send('您好,我是自动回复,感谢您的添加!') ``` 4.发送群聊链接 使用requests库发送HTTP请求,将群聊链接发送到指定群聊的聊天窗口中: ```python import requests # 群聊名称 group_name = '测试群聊' # 群聊链接 group_link = 'https://chat.weixin.qq.com/#/joinchat/xxxxx' # 获取指定群聊对象 group = bot.groups().search(group_name)[0] # 发送群聊链接 group.send(group_link) ``` 5.运行机器人 使用bot对象的start()函数运行机器人: ```python bot.start() ``` 完整的Python代码如下: ```python from wxpy import * import requests # 群聊名称 group_name = '测试群聊' # 群聊链接 group_link = 'https://chat.weixin.qq.com/#/joinchat/xxxxx' # 初始化机器人 bot = Bot() # 自动接受好友请求并发送自动回复 @bot.register(msg_types=FRIENDS) def auto_accept_friends(msg): new_friend = bot.accept_friend(msg.card) new_friend.send('您好,我是自动回复,感谢您的添加!') # 发送群聊链接 group = bot.groups().search(group_name)[0] group.send(group_link) # 运行机器人 bot.start() ``` 注意事项: 1.登录微信需要扫码确认,所以第一次运行代码时需要手动扫码登录并确认。 2.发送群聊链接需要先加入该群聊并获取群聊名称,才能发送成功。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值