IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 【uiautomation】批量给微信好友/群聊发消息 -> 正文阅读

[移动开发]【uiautomation】批量给微信好友/群聊发消息

?🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝

🥰 博客首页:knighthood2001

🌞 系列专栏:uiautomation

😗 欢迎点赞👍评论🗨?

?? 热爱python,期待与大家一同进步成长!!??

????????在平时生活中,我们可能会经常需要发一个文案(求捞捞)给微信许多联系人或发到群里,每次重复复制粘贴会显得特别麻烦,耐心逐渐下降。因此我们有时候还挺需要有能够批量给微信好友/群聊发消息的脚本

? ? ? ? 根据以上需求,笔者采用python+uiautomation实现了以上批量给好友/群聊发消息的功能

目录

一、思路

二、所需模块

三、代码讲解? ? ?

????????注意点1?

????????注意点2?

四、总结?


一、思路

? ? ? ? 首先登录微信,然后在搜索框中搜索微信好友/群聊,然后发消息,再重复以上操作。

二、所需模块

import subprocess
import uiautomation as auto
subprocess用于打开微信,uiautomation用于后续元素的定位,文字的输入等等

三、代码讲解? ? ?

首先定义一个a列表,里面存放的是你微信联系人备注/群聊名称,b表示要发送的内容?

# ToDo a表示联系人备注列表,b表示要发送的内容
a = ['小号', '几何核心圈子', 'csdn-卷王集中营']
b = '我真的没被盗号'

接下来登录微信,如果微信没登陆,就点击登录?

# ToDo 这里需要更改微信所在地址,可通过桌面微信图标右键打开文件所在的位置查找到路径
subprocess.Popen('E:\微信\WeChat\WeChat.exe')

# 判断微信是否已经登录(如果微信登陆了,以下代码可以省略,因为判断语句需要花时间去判断,会增加代码运行时间)
wechat_login = auto.PaneControl(Name='微信')
enter_wechat_btn = wechat_login.ButtonControl(Name='进入微信')
if enter_wechat_btn.Exists():
    enter_wechat_btn.Click()

进入微信后,定位微信窗格元素

# 进入微信后
wechatWindow = auto.WindowControl(searchDepth=1, className='WeChatMainWndForPC', Name='微信')
# # 点击聊天(一般情况下可以不要)
# button = wechatWindow.ButtonControl(Name='聊天')
# button.Click()

????????接下来就是最重要的环节了首先点击搜索框,输入a中的一个内容,然后在搜索结果中判断是否与遍历内容完全相等,如果完全相等,则点击。点击后就出现了具体聊天页面,然后在输入框中输入b,回车,这样就实现给一个联系人/群聊发消息的过程,要批量发消息,则加一个for循环就好了,这样就实现批量发送消息了。

代码如下

for i in a:
    # 搜索
    search = wechatWindow.EditControl(Name='搜索')
    search.Click()

    search.GetParentControl().GetChildren()[1].SendKeys(i)
    # 回车 只适用于搜索的是联系人,而不是群,因为群在下面
    # time.sleep(2)
    # wechatWindow.SendKeys('{Enter}')
    searResult = wechatWindow.ListControl(Name='搜索结果').GetChildren()
    for sear in searResult:
        # print(sear.Name)
        if sear.Name == i:
            sear.Click()
            break
    # 输入消息
    wechatWindow.EditControl(Name='输入').SendKeys(b)
    # 方法一:查找发送按钮并点击
    # sendBtn = wechatWindow.ButtonControl(Name='sendBtn')
    # sendBtn.Click()
    # 方法二:回车发送消息
    wechatWindow.SendKeys('{Enter}')
    # 记录一下消息给谁发送
    print(i, ' 消息已发送')

注意点1?

在搜索框输入要搜索的内容后,可以采用回车,不过该条件前提是搜索的是联系人,而不是群聊,因为搜索内容总是将联系人放在上面,群聊在联系人下面,而回车选择的就是搜索结果的第一个,这样就会出现错误,此外,如果要采用回车,需要设置时间,实现搜索内容输完后再回车,不然结果也会不同。因此这里笔者采用判断内容是否相等而不是采用回车

注意点2?

在输入具体要发送内容后,你可以采用点击发送按钮,也可以采用回车,区别就是回车方法更快?

四、总结?

? ? ? ? ①以上只是关于uiautomation自动化的一个比较实用的小案例,越到后来,越能发现uiautomation的强大,越能感受到写该模块的作者的伟大;

? ? ? ? ②接下来笔者还会更新uiautomation自动化的比较实用的代码与讲解,敬请期待??

? ? ? ? ③如果觉得笔者写uiautomaton自动化还行的话,可以收藏一下文章顶部的uiautomation专栏,接下来更新的相关文章也会陆续放进专栏中,感谢各位支持👍👍👍

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-05-21 19:06:35  更:2022-05-21 19:08:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 1:32:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码