当前位置:   article > 正文

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

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、将软件包引入

  1. # -*- coding: utf-8 -*-
  2. import time
  3. import pyperclip # 导入pyperclip库
  4. import pyautogui
  5. from wxauto import *
  6. from uiautomation import WindowControl, PaneControl

2、打开微信并绑定窗口

  1. # 打开隐藏的图标
  2. PaneControl(Name='任务栏').PaneControl(Name='DesktopWindowXamlSource').ButtonControl(Name='显示隐藏的图标').Click()
  3. # 点击微信
  4. PaneControl(Name='系统托盘溢出窗口。').ButtonControl(Name='微信').Click()
  5. # 绑定微信主窗口
  6. wx = WindowControl(Name='微信')

 

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

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

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

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

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

  1. # 输入群聊名称
  2. names = ['测试']
  3. # 输入文件名和路径
  4. file_name = '自行修改'
  5. file_path = r'自行修改'
'
运行

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

4、选择群聊

  1. # 选择群聊
  2. for name in names:
  3. WeChat().ChatWith(name)

先补充一下WeChat软件包

  1. def ChatWith(self, who, RollTimes=None):
  2. '''
  3. 打开某个聊天框
  4. who : 要打开的聊天框好友名,str; * 最好完整匹配,不完全匹配只会选取搜索框第一个
  5. RollTimes : 默认向下滚动多少次,再进行搜索
  6. '''
  7. self.UiaAPI.SwitchToThisWindow()
  8. RollTimes = 10 if not RollTimes else RollTimes
  9. # 当前显示的聊天列表中没找到指定名称的好友或群时,会滚动聊天列表界面,继续寻找
  10. def roll_to(who=who, RollTimes=RollTimes):
  11. for i in range(RollTimes):
  12. if who not in self.GetSessionList()[:-1]:
  13. self.SessionList.WheelDown(wheelTimes=3, waitTime=0.1*i)
  14. else:
  15. time.sleep(0.5)
  16. # 这是点击客户端聊天列表中指定的窗口
  17. self.SessionList.ListItemControl(Name=who).Click(simulateMove=False)
  18. return 1
  19. return 0
  20. rollresult = roll_to()
  21. if rollresult:
  22. return 1
  23. else:
  24. self.Search(who) # 当前显示的聊天列表中没找到指定名称的好友或群时,直接在搜索框中搜索
'
运行

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

5、发送文件

  1. # 点击发送文件
  2. wx.ButtonControl(Name='发送文件').Click()
  3. # 发送文件
  4. # 输入文件地址
  5. pyperclip.copy(file_path) # 使用pyperclip将文件路径复制到剪贴板
  6. pyautogui.hotkey('ctrl', 'v') # 使用快捷键粘贴文件路径
  7. time.sleep(1)
  8. pyautogui.press('enter')
  9. # 输入文件名
  10. pyperclip.copy(file_name) # 使用pyperclip将文件名复制到剪贴板
  11. pyautogui.hotkey('ctrl', 'v') # 使用快捷键粘贴文件名
  12. time.sleep(1)
  13. pyautogui.press('enter')
  14. # 发送
  15. pyautogui.press('enter')
  16. print('已完成')

然后这里我们同样使用inspect查找路径,然后用pyautogui和pyperclip复制粘贴路径和名称,最后回车发送即可

完整代码

  1. # -*- coding: utf-8 -*-
  2. import time
  3. import pyperclip # 导入pyperclip库
  4. import pyautogui
  5. from wxauto import *
  6. from uiautomation import WindowControl, PaneControl
  7. # 打开隐藏的图标
  8. PaneControl(Name='任务栏').PaneControl(Name='DesktopWindowXamlSource').ButtonControl(Name='显示隐藏的图标').Click()
  9. # 点击微信
  10. PaneControl(Name='系统托盘溢出窗口。').ButtonControl(Name='微信').Click()
  11. # 绑定微信主窗口
  12. wx = WindowControl(Name='微信')
  13. # 输入群聊名称
  14. names = ['测试']
  15. # 输入文件名和路径
  16. file_name = '正确.docx'
  17. file_path = r'C:\Users\12739\Desktop\pic'
  18. # 选择群聊
  19. for name in names:
  20. WeChat().ChatWith(name)
  21. # 点击发送文件
  22. wx.ButtonControl(Name='发送文件').Click()
  23. # 发送文件
  24. # 输入文件地址
  25. pyperclip.copy(file_path) # 使用pyperclip将文件路径复制到剪贴板
  26. pyautogui.hotkey('ctrl', 'v') # 使用快捷键粘贴文件路径
  27. time.sleep(1)
  28. pyautogui.press('enter')
  29. # 输入文件名
  30. pyperclip.copy(file_name) # 使用pyperclip将文件名复制到剪贴板
  31. pyautogui.hotkey('ctrl', 'v') # 使用快捷键粘贴文件名
  32. time.sleep(1)
  33. pyautogui.press('enter')
  34. # 发送
  35. pyautogui.press('enter')
  36. print('已完成')

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/901358
推荐阅读
相关标签
  

闽ICP备14008679号