不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
按键精灵QQ群成员消息群发思路和脚本(For QQ7.9轻聊版)
编辑:dnawo 日期:2016-10-20

一、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群成员消息发送结束"
单个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 | 引用: 0 | 查看次数: 6599
发表评论
请登录后再发表评论!