背景
每天7点需要发送前一天编辑好的内容到指定的几个微信群
思路
- 前一天晚上将内容粘贴到每个群的对话框中,不发送
- 判断系统时间是不是7点,true则执行命令,false继续循环
- 获取每个微信群的窗口句柄
- 点击发送按钮
难点
1、微信PC端界面只有一个句柄,无法定位到每个具体的对话框;
------将需要的对话框单独拉出来可获得每个句柄
2、每个对话框只有一个句柄,无法定位到发送按钮;
------不管对话框大小如何,发送按钮相对于窗体的右下角坐标位置是固定的,可用窗体的相对位置设置坐标进行鼠标点击
代码
Rem 循环
If HOUR(NOW) = "7" Then
//第一个群
//下面这句是查找窗口类名("ChatWnd")或者标题("测试1群"),返回找到的句柄Hwnd
Hwnd = Plugin.Window.Find("ChatWnd", "测试1群")
//下面这句是得到窗口句柄的客户区大小
sRect = Plugin.Window.GetClientRect(Hwnd)
//下面这句用于分割字符串,将横坐标和纵坐标分成两个字符串
dim MyArray1
MyArray1 = Split(sRect, "|")
//下面这句将字符串转换成数值
//Msgbox "左" & L & ",右 "& R & ",上" & T & ",下" & B
L = Clng(MyArray1(0)): T = Clng(MyArray1(1))
R = Clng(MyArray1(2)) : B = Clng(MyArray1(3))
//获取"发送"按钮坐标
X = R - L - 70
Y = B - T - 30
//点击发送按钮
Call Plugin.Bkgnd.LeftClick(Hwnd, X, Y)
//第二个群,内容同上
Hwnd = Plugin.Window.Find("ChatWnd", "测试2群")
sRect = Plugin.Window.GetClientRect(Hwnd)
dim MyArray2
MyArray2 = Split(sRect, "|")
L = Clng(MyArray2(0)): T = Clng(MyArray2(1))
R = Clng(MyArray2(2)) : B = Clng(MyArray2(3))
X = R - L - 70
Y = B - T - 30
Call Plugin.Bkgnd.LeftClick(Hwnd, X, Y)
Else
Goto 循环
End If
想法
小白一枚,暂时只能想到这种笨办法,如各位有好的思路和代码,欢迎分享!