ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 58473|回复: 423

[原创] 微信PC端及QQ联系人采集及文件消息发送--基于FlaUI.Core

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2022-6-12 13:58 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 huang1314wei 于 2022-6-16 09:16 编辑

前言

偶然的机会,因友人叫我帮忙做一个微信给指定联系人发消息的VBA,论坛搜索了一下,有不少类似的贴子,比如

1、分享一个自动发送微信消息的工具,链接地址: https://club.excelhome.net/thread-1548082-4-1.html  
     该贴采用方法是向微信窗口发送相应的按钮来实现,实际用了一下,效果不太理想


2、Excel消息整合发送器-发微信、QQ、邮件、短信  链接地址:  https://club.excelhome.net/thread-1537142-1-1.html  
    该贴采用VBS方式,实际用了一下,当微信没有启动或者未激活的时候,发送有问题,窗口有乱跳的感觉


3、VBA发送微信消息 链接地址: https://club.excelhome.net/thread-1324912-1-1.html  
     该贴采用调用微信官方API,发送消息应该没有问题,但是该方法需要企业的CorpID和Secret,这个东西普通人申请还是挺麻烦的,对于个人想要来点普通的自动要求,过程繁琐了点
。。。。。。。。。。


相应的发微信贴子,在此我就不详细列举了,在网上看到有不少发微信例子都是调用FlaUI.Core实现的,无奈,该开源组件用c#很好调用 ,
但是VBA没法直接使用,为此,我抽时间做一个搬运工,将该组件封装成COM,供VBA调用,组件共4个方法:
第一个方法:  QueryContacts    批量采集聊天窗口的群聊及联系人名称
第二个方法:  QueryContactsAll 批量采集通讯录联系人昵称,如昵称含表情则为?号显示
第三个方法:  SendMessage  向指定联系人名称发送消息或者文件
第三四方法:  SendQQMessage  向QQ指定昵称或QQ号、群名发送文件或消息

运行过程我就不截图了,具体示代码如下:

  1. Sub WeChat()
  2.     Dim obj As WeChatTool.WeChatClass
  3.     Set obj = New WeChatClass
  4.     'Set obj = CreateObject("WeChatTool.WeChatClass")
  5.    
  6.     '第一个方法:  QueryContacts    批量采集聊天窗口的群聊及联系人名称
  7.     '第二个方法:  QueryContactsAll 批量采集通讯录联系人昵称,如昵称含表情则为?号显示
  8.     '第三个方法:  SendMessage  向指定联系人名称发送消息或者文件
  9.     '第三四方法:  SendQQMessage  向QQ指定昵称或QQ号、群名发送文件或消息
  10.    
  11.    
  12.     '第1个参数:  文件完整路径,如果不发文件可以传空字符串
  13.     '第2个参数:  微信名或群聊微信名称 ,不可为空
  14.     '第3个参数:  消息内容
  15.     'obj.SendMessage "", "文件传输助手", Now() & " 发送了一条测试消息!"
  16.    
  17.    
  18.     '第1个参数:  文件完整路径,如果不发文件可以传空字符串
  19.     '第2个参数:  QQ昵称、QQ群名称或QQ号 ,不可为空
  20.     '第3个参数:  消息内容
  21.     'obj.SendQQMessage "", "403456877", Now() & " 发送了一条测试消息!"
  22. End Sub
复制代码

已知不足及提醒:

1、运行过程中,应避免人为移动鼠标或者其他操作,以免影响操作结果
2、如果运行无反应,可以去dll安装目录  D盘WeChatTool目录中的 log.txt查看失败原因
3、组件需要.net4.5支持
4、如果想要了解更多,可以参见开源组件FlaUI.Core的github地址 https://github.com/FlaUI/FlaUI



2022-06-14 更新:
1、新增微信批量采集通讯录联系人
2、解决联系人搜索不到的时候跳出搜索弹窗的问题
3、新增QQ消息发送 注:因QQ支持多进程,暂只支持当前电脑登陆一个QQ的消息发送,QQ窗口句柄因为查询比较耗时,发送可能较慢或有发送失败的可能
4、新增tlb文件,直接引用之后,可以在VBE里面前期绑定使用对象里面的方法,如果不引用,也可以直接用 CreateObject("WeChatTool.WeChatClass") 创建对象




2022-06-15 更新
1、增加句柄查询方式,降低因句柄查询失败导致的发送失败的概率
2、新增了容错,在联系人查找不到时,增加一次列表点击,能一定程度解决循环发送时,因联系人查找不到导致后续全部发送失败的概率
      PS:因Windws消息机制,窗口消息刷新不同电脑有一定差异,因此,建议循环向联系人发送消息时,请自行增加延时,大概代码如下     
  1. For i = 1 To n
  2.         firsttime = Timer
  3.         Do Until Timer - firsttime > 5  '等待5秒之后
  4.             DoEvents  '交出执行控制权,以便操作系统能够处理其他事件
  5.         Loop
  6.         obj.SendMessage "", "文件传输助手", Now() & " 发送了一条测试消息!"
  7.     Next
复制代码
更新文件
游客,如果您要查看本帖隐藏内容请回复


安装之后,如果运行代码报错,可以在VBE里面工具---引用---浏览---找到D盘WeChatTool目录,文件类型选所有,引用一下那个tlb文件,然后再试一下

评分

19

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-6-10 07:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
2023-06-10 更新说明
微信客户端升级到 3.9.5.81  之后,由于新版微信首次采用64位进程,很多窗口的标题属性都置为空,所以,采用原来通过关键字"输入","搜索"之类的固定词汇定位窗口变得困难,
新版微信将不得不使用相对定位的方式来定位窗口,本次更新修复了该问题,具体请对号入座,版本低于 3.9.5.81 的,不用下载

27.jpg QQ截图20230610071502.jpg

64位系统,使用以下安装包安装
WeChatTool64位系统.zip (541.83 KB, 下载次数: 308)

32位系统,使用以下安装包安装
WeChatTool32位系统.zip (541.83 KB, 下载次数: 111)



评分

3

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-26 19:18 | 显示全部楼层
2023-07-26  微信 3.9.6.29 版本更新  修复查找输入框失败导致的消息不能发送的BUG,请对号入座
微信截图_20230726191454.png

32位系统请下载

WeChatTool32位.zip (541.86 KB, 下载次数: 147)

64位系统请下载
WeChatTool64位.zip (541.87 KB, 下载次数: 356)

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-6-12 15:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
沙发?有时候可能不用VBA是更好的选择,最近在看RPA,好像也挺方便

TA的精华主题

TA的得分主题

发表于 2022-6-12 15:18 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-6-12 15:23 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-6-12 15:39 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-6-12 15:57 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
感兴趣,谢谢

TA的精华主题

TA的得分主题

发表于 2022-6-12 15:57 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-6-12 16:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
这个要了解一下,大家用微信还是很多的

TA的精华主题

TA的得分主题

发表于 2022-6-12 16:26 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-6-12 17:19 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-27 18:37 , Processed in 0.043356 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表