clswindow使用案例:控制电脑版微信发送消息(含源码)

156 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

说明:

本案例是通过clsWindow2.2控制微信桌面版来发送消息的。原理是模拟人工操作:进入微信桌面版 -> 点击搜索框 -> 输入对应人员名 -> 点击搜索结果 -> 输入框中输入消息 -> 按回车,代码注释很详细,看下就能明白,有一定vb基础的人可以改成群发,定时发送,群中@发送。

测试环境:

win7x64 + 微信桌面版2.6.2.22 + clsWindow2.2

提示: 如果不能用可能是以下原因:

  • 微信版本太旧不兼容当前代码。对应措施: 修改相应坐标
  • 微信更新导致一些控件位置大小改变。对应措施: 修改相应坐标位置
  • 操作系统性能反应太慢。对应措施: 可在需要的步骤加延时
    如果有以上问题,请仔细检查并修改相应代码。本范例代码2020-02-05测试通过,不保证更新。

声明:

本代码免费,可用于任何商业用途,但请勿做非法用途,所引起的一切后果由使用者本人承担。

代码:

用法参考: sendWeixinMsg "小张","你好"

Private Sub sendWeixinMsg(ByVal strName$, ByVal strMsg$)
    Dim w As New clsWindow
    If w.GetWindowByClassName("WeChatMainWndForPC").hWnd <> 0 Then
        w.Focus
        w.ClickPoint 30, 100, , , 200 '延时200ms后点击聊天板块
        w.ClickPoint 130, 40, , , 200, 500 '延时200ms后点击搜索框,点击后再延时500ms
        SendKeys strName
        w.ClickPoint 150, 130, , , 500, 500 '点击搜索结果
        SendKeys strMsg & "{ENTER}"
    Else
        MsgBox "未发现微信桌面版,请打开微信桌面版再测试!", vbExclamation
    End If
    Set w = Nothing
End Sub

以下专门为一些性能较低的机器修改的慢速版本:

Private Sub sendWeixinMsg(ByVal strName$, ByVal strMsg$)
    Dim w As New clsWindow
    If w.GetWindowByClassName("WeChatMainWndForPC").hWnd <> 0 Then
        w.SetPosNormal
        w.Focus
        w.ClickPoint 30, 100, , , 1200  '延时200ms后点击聊天板块
        
        w.Focus
        
        w.ClickPoint 130, 40, , , 1200, 1500 '延时200ms后点击搜索框,点击后再延时500ms
        w.Focus
        SendKeys strName
        
        w.ClickPoint 150, 130, , , 1500, 1500 '点击搜索结果
        w.Focus
        SendKeys strMsg & "{ENTER}"
        w.Wait 500
    Else
        MsgBox "未发现微信桌面版,请打开微信桌面版再测试!", vbExclamation
    End If
    Set w = Nothing
End Sub


完整工程下载: pan.baidu.com/s/1JxXC9XA8… 提取码: n2rh