欢迎光临

木子屋

标题: 按键精灵QQ群成员消息群发思路和脚本(For QQ7.9轻聊版)

作者: dnawo

日期: 2016-10-20 07:41 PM

分类: Win编程

内容:
一、QQ群成员消息群发思路
问题一：怎么打开所有QQ群成员聊天窗口？
思路：鼠标选定任一个QQ群成员，然后从这个位置开始，双击鼠标->按一下↓键->鼠标下移20像素，如此循环，当鼠标坐标y值大于QQ群窗口右下角坐标y值鼠标不再移动，双击鼠标->按一下↓键，如此循环。
问题二：怎么判断已经移到最后一个QQ群成员？
思路：每次选中一个QQ群成员，截一下屏，若和上一次截屏一样，说明已经移到最后一个QQ群成员。
二、按键精灵QQ群成员消息群发脚本
复制内容到剪贴板 程序代码/********************************
单个QQ群成员群发消息(先设置QQMessage的值)
********************************/
Delay 5000 //延时5秒供激活QQ群窗口
Dim QQMessage : QQMessage = "在吗？"//要发送的QQ消息
Dim QQHwnd : QQHwnd = Plugin.Window.Foreground() //QQ群窗口句柄
Dim ArrRect : ArrRect = Split(Plugin.Window.GetClientRect(QQHwnd), "|") //QQ群窗口坐标
Dim QQX1 : QQX1 = Clng(ArrRect(0)) //QQ群窗口坐标x1
Dim QQY1 : QQY1 = Clng(ArrRect(1)) //QQ群窗口坐标y1
Dim QQX2 : QQX2 = Clng(ArrRect(2)) //QQ群窗口坐标x2
Dim QQY2 : QQY2 = Clng(ArrRect(3))//QQ群窗口标y2
Plugin.Window.Top QQHwnd,0 //置顶窗口
Dim X, Y : GetCursorPos X, Y //鼠标位置
Dim PrintX1 : PrintX1 = QQX2-200 //截屏区域坐标x1
Dim PrintY1 : PrintY1 = Y //截屏区域坐标y1
Dim PrintX2 : PrintX2 = QQX2-140 //截屏区域坐标x2
Dim PrintY2 : PrintY2 = QQY2//截屏区域坐标y2
Dim PrintFile : PrintFile = Plugin.Sys.GetDir(0) + "\screen.bmp"//截屏图片保存路径
Plugin.Pic.PrintScreen PrintX1, PrintY1, PrintX2, PrintY2, PrintFile //保存截屏
Dim QQList : QQList = Replace("|{0}|", "{0}", Plugin.Window.SearchEx("TXGuiFoundation", 0, 0))//已打开QQ窗口句柄列表
Dim TmpQQList, TmpQQHwnd, TmpQQText, i
KeyPress "Up", 1
Delay 1500
KeyPress "Down", 1
/*** 第一步：逐个打开QQ群成员聊天窗口 ***/
Do
//打开选中的QQ群成员
LeftDoubleClick 1
Delay 1500
//移到下一个QQ群成员
Plugin.Window.Active QQHwnd
Plugin.Window.Move QQHwnd, QQX1, QQY1
KeyPress "Down", 1
If (Y + 25) < QQY2 Then
MoveTo X, Y + 20
GetCursorPos X, Y
Else
MoveTo X, Y
End If
LeftClick 1
//根据截屏判断是否已到末尾
If Plugin.Pic.FindPic(PrintX1-5, PrintY1-5, PrintX2+5, PrintY2+5, PrintFile, 0, 0.8)="-1|-1" Then
Plugin.Pic.PrintScreen PrintX1, PrintY1, PrintX2, PrintY2, PrintFile
Else
Exit Do
End If
Loop While True
Plugin.Window.Top QQHwnd, 1

/*** 第二步：逐个QQ群成员发送消息 ***/
TmpQQList = Split(Plugin.Window.SearchEx("TXGuiFoundation", 0, 0), "|")
If UBound(TmpQQList)>=0 Then
i=0
For UBound(TmpQQList)
TmpQQHwnd = Clng(TmpQQList(i))
TmpQQText = Plugin.Window.GetText(TmpQQHwnd)
If Instr(QQList, Replace("|{0}|", "{0}", TmpQQHwnd)) = 0 And TmpQQText <> "" And TmpQQText <> "TXMenuWindow" And TmpQQText <> "QQ" Then
TracePrint TmpQQText
Plugin.Window.Restore TmpQQHwnd
Plugin.Window.Active TmpQQHwnd
Plugin.Window.SendString TmpQQHwnd, QQMessage
KeyPress 13, 1 //按Enter
KeyDown 17, 1 //按Ctrl+Enter
KeyPress 13, 1
KeyUp 17, 1
Delay 1000
KeyDown 18, 1 //用Alt+F4关闭聊天窗口(Plugin.Window.Close会关闭整个QQ)
KeyPress 115, 1
KeyUp 18, 1
End If
i=i+1
Next
End If
MessageBox "QQ群成员消息发送结束"

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.707 ms

返回

标题: 按键精灵QQ群成员消息群发思路和脚本(For QQ7.9轻聊版)

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.707 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.738 ms

返回