## 说明:
本案例是通过clsWindow2.2控制微信桌面版来发送消息的。原理是模拟人工操作:进入微信桌面版 -> 点击搜索框 -> 输入对应人员名 -> 点击搜索结果 -> 输入框中输入消息 -> 按回车,代码注释很详细,看下就能明白,有一定vb基础的人可以改成群发,定时发送,群中@发送。
## 测试环境:
>[info]win7x64 + 微信桌面版2.6.2.22 + clsWindow2.2
**提示:** 如果不能用可能是以下原因:
* 微信版本太旧不兼容当前代码。**对应措施:** 修改相应坐标。
* 微信更新导致一些控件位置大小改变。**对应措施:** 修改相应坐标位置
* 操作系统性能反应太慢。**对应措施:** 可在需要的步骤加延时
* 这里涉及到的坐标可通过qq截图功能获取相对的位置,具体可参考:[如何确定绝对或相对坐标?](05如何确定绝对或相对坐标?.md)
*如果有以上问题,请仔细检查并修改相应代码。本范例代码2020-02-05测试通过,不保证更新。*
## 声明:
>[warning]本代码免费,可用于任何商业用途,但请勿做非法用途,所引起的一切后果由使用者本人承担。
## 代码:
**用法参考:** ``` 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
w.Paste strName
w.ClickPoint 150, 130, , , 500, 500 '点击搜索结果
w.Paste strMsg
SendKeys "%s"
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
```
![](https://img.kancloud.cn/1a/89/1a89cf67763149cc1c3ac26891471c9c_885x822.gif)
**工程下载链接:** https://pan.baidu.com/s/1qwlDP5lOMR19CjXQ-It4CA?pwd=iqvd 提取码: iqvd
- 关于clsWindow
- 一、获取窗口
- GetWindowByTitle 函数
- GetWindowByTitleEx 函数
- GetWindowByClassName 函数
- GetWindowByClassNameEx 函数
- GetWindowByPoint 函数
- GetWindowByAppName 函数
- GetWindowByAppNameEx 函数
- GetWindowByCursorPos 函数
- GetWindowByPID 函数
- GetWindowByHwnd 函数
- Load 函数(同GetWindowByHwnd)
- 二、操作窗口
- Focus 方法
- SetFocus 方法(同Focus)
- FadeIn 方法
- FadeOut 方法
- Transparent 函数
- SetTransparent 函数(同Transparent)
- MakeTransparent 函数(同Transparent)
- Shake 方法
- CloseWindow 函数
- ClassName 属性
- Caption 属性
- Text 属性(同Caption)
- Title 属性(同Caption)
- Value 属性(同Caption)
- ZOrder 方法
- Left 属性
- Top 属性
- Width 属性
- Height 属性
- Visible 属性
- Enabled 属性
- WindowState 属性
- AlphaBlend 属性
- TransparentColor 属性
- CheckWindow 函数
- Move 函数
- MoveToCenter 函数
- Show 函数
- Hide 函数
- Refresh 方法
- SetPosBottom 函数
- SetPosFront 函数
- SetPosNormal 函数
- SetTop 函数
- IsTopMost 函数
- IsForegroundWindow 属性
- Maximized 函数
- Minimized 函数
- Normal 函数
- Restore 函数(同Normal)
- 三、操作控件
- GetElementHwndByText 函数
- GetElementHwndByClassName 函数
- GetElementTextByText 函数
- GetElementTextByClassName 函数
- GetClassNameByHwnd 函数
- GetTextByHwnd 函数
- GetCaptionByHwnd 函数(同GetTextByHwnd)
- SetElementTextByText 函数
- SetElementTextByClassName 函数
- SelectComboBoxIndex 函数
- AppendElementTextByClassName 函数
- Click 函数
- ClickElementByText 函数
- ClickElementByClassName 函数
- SendKeys 方法
- Paste 方法
- FileToClipboard 函数
- ClipboardSetText 函数
- 四、鼠标坐标相关
- ClickCurrentPoint 方法
- ClickPoint 方法
- ClickPointBackground 方法
- SetCursor 方法
- MoveCursor 方法(同SetCursor)
- MoveCursorTo 方法(同SetCursor)
- SetPoint 方法(同SetCursor)
- GetCursorPoint 函数
- GetCursorPosCurrent 函数(同GetCursorPoint)
- MouseLeftDown 方法
- MouseLeftUp 方法
- MouseRightDown 方法
- MouseRightUp 方法
- DragTo 方法
- DragToEx 方法
- 五、应用程序相关
- AppPath 函数
- AppName 函数
- IsWin64 函数
- CommandLine 函数
- AppCommandLine 函数(同CommandLine)
- CloseApp 函数
- ProcessID 函数
- PID 函数(同ProcessID)
- 六、公有方法属性等
- hWnd 公有变量
- DebugMe 公有变量
- Wait 方法
- Version 方法
- 使用范例
- 01 控制微信发送消息
- 02 控制QQ发送消息
- 03 QQ登录器
- 04 花式调用计算器
- 05 用鼠标在画图工具上画圆
- 06 控制记事本输入并保存
- 07 随机移动鼠标防锁屏
- 08 根据ID进入腾讯课堂
- 09 限制程序重复打开
- 10 控制c2p软件将ceb转换为pdf格式
- 11 实战:微便签-窗口特效
- 12 实战:窗口图钉-窗口置顶
- 13 实战:微型按键精灵,录制和播放鼠标动作
- 一些Q&A
- 01 这个框架是免费的吗?
- 02 无句柄的控件元素如何操作?
- 03 目标窗体中有相同类名输入框如何区分填写?
- 04 为什么win10下最大化不生效?
- 05 如何确定绝对或相对坐标?
- 06 相同标题的窗口如何得到所有句柄?
- 联系我们