实现功能: 能自定义QQ号码段,实现不加QQ,发送广告消息!
如在中途停止了脚本,下次启动时会自动检测,并提示你是否继续上次未完成的任务!
如遇到需要输入验证码的临时会话,则自动关闭!
如果30秒未有响应,则自动跳到下一个QQ号码继续任务!
注意:该脚本有个BUG,后来看到了 沉8 的帖子,才发现的该BUG,但也不愿意去改.
不过我想也无所谓了..该脚本只为学习使用^_^
沉8的脚本已经发在下面了,我加了个注释,方便大家理解! 呵呵
运行环境:分辨率:1440×900 色深:32位 操作系统:Windows XP 按键精灵版本:7.00.3730
UserVar startID=10001 从该QQ号码开始(大于等于10001的整数) UserVar endID=999999999 到该QQ号码结束(小于等于999999999的整数) UserVar msg=需要发送的广告内容 这里是你所需要发送的广告内容 VBS Dim objShell,fso,QQNo,lastNo,sx,sy,allx,ally,x,y,t //定义变量 Set objShell=CreateObject("WScript.Shell") //创建WScript.Shell对象 CurrPath=objShell.CurrentDirectory //取得当前路径 VBS set fso=CreateObject("Scripting.FileSystemObject") //创建FSO对象 VBS const forreading=1 //定义读方式 VBS const forwriting=2 //定义写方式 VBS const forappending=8 //定义追加方式 If startID<10001 MessageBox "你设置的起始QQ号不正确,请重新设置" EndScript EndIf //判断UserVar里设置的数字是否大于10001,如果不大于,则提示并退出脚本 If fso.FileExists(CurrPath&"\xintool.log")=0 //判断日志文件是否存在 VBS set myfile=fso.createtextfile(CurrPath&"\xintool.log") //如果不存在,就生成一个 Else VBS set myfile=fso.opentextfile(CurrPath&"\xintool.log",forreading) //如果存在,则以读方式打开文件 VBS lastNo=myfile.readline //读一行内容,赋予变量lastNo EndIf VBS myfile.Close //关闭文件 If lastNo="MsgEnd" QQNo=Int(startID) ElseIf lastNo>=10001 and lastNo<=999999999 VBSCall box=objShell.Popup("你上次的喊话任务尚未完成"&vbCr&vbCr&"如果需要继续上次任务请选择'是'"&vbCr&"如果要重新开始请选择'否'",0,"QQ广告工具",68) If box=6 QQNo=Int(lastNo) Else QQNo=Int(startID) EndIf Else QQNo=Int(startID) EndIf //以上是通过判断lastNo的内容,来确定上次是否完成了任务.如果没完成任务,是否继续上次任务.如完成了,则重新开始! Plugin allx=GetSysInfo.GetScreenResolutionX() Plugin ally=GetSysInfo.GetScreenResolutionY() //获得屏幕的分辨率 Rem 喊话任务开始 t=now //把当前的系统时间,赋予变量t VBS objShell.Run "tencent://message/?uin="&QQNo&"&Site=xintool&Menu=No",0 //运行QQ临时会话 sx=0:sy=0 //定义查找颜色的起始点坐标 Rem wait Delay 500 VBSCall FindColorEx(sx,sy,allx,ally,"59343",0,1,x,y) //先查找QQ临时回话上的一个点 If x>=0 IfColor x,y+1,fafafa,0 IfColor x,y+5,2ee9f,0 IfColor x-4,y+15,66523,0 IfColor x-3,y+6,b1f9eb,0 Delay 500 Goto saymsg Else If DateDiff("s",t,now)>=30 QQNo=QQNo+1 If QQNo>Int(endID) Goto 任务结束 EndIf Goto 喊话任务开始 EndIf sx=Int(x)+1:sy=Int(y)+1 Goto wait EndIf Else If DateDiff("s",t,now)>=30 QQNo=QQNo+1 If QQNo>Int(endID) Goto 任务结束 EndIf Goto 喊话任务开始 EndIf sx=Int(x)+1:sy=Int(y)+1 Goto wait EndIf Else If DateDiff("s",t,now)>=30 QQNo=QQNo+1 If QQNo>Int(endID) Goto 任务结束 EndIf Goto 喊话任务开始 EndIf sx=Int(x)+1:sy=Int(y)+1 Goto wait EndIf Else If DateDiff("s",t,now)>=30 QQNo=QQNo+1 If QQNo>Int(endID) Goto 任务结束 EndIf Goto 喊话任务开始 EndIf sx=Int(x)+1:sy=Int(y)+1 Goto wait EndIf Else If DateDiff("s",t,now)>=30 QQNo=QQNo+1 If QQNo>Int(endID) Goto 任务结束 EndIf Goto 喊话任务开始 EndIf Goto wait EndIf //如果找到了该点,则继续判断其相对坐标的点,如果全相同,则证明已经打开QQ临时会话,如果没找到,则把当前点定为起始坐标.如果查找时间超过30秒,则放弃查找,直接跳到下一个号码 Rem saymsg SayString msg //发送消息 Delay 1000 KeyDown 18,1 KeyPress 83,1 KeyUp 18,1 //按Alt+S发送消息 Delay 800 KeyDown 18,1 KeyPress 67,1 KeyUp 18,1 //按Alt+C关闭该临时会话窗口 Delay 800 sx=0:sy=0 Rem close Delay 500 VBSCall FindColorEx(sx,sy,allx,ally,"59343",0,1,x,y) If x>=0 IfColor x,y+1,fafafa,0 IfColor x,y+5,2ee9f,0 IfColor x-4,y+15,66523,0 IfColor x-3,y+6,b1f9eb,0 KeyDown 18,1 KeyPress 115,1 KeyUp 18,1 Delay 1000 KeyDown 18,1 KeyPress 115,1 KeyUp 18,1 Else sx=Int(x)+1:sy=Int(y)+1 Goto close EndIf Else sx=Int(x)+1:sy=Int(y)+1 Goto close EndIf Else sx=Int(x)+1:sy=Int(y)+1 Goto close EndIf Else sx=Int(x)+1:sy=Int(y)+1 Goto close EndIf EndIf //以上也是查找该窗口是否存在,如果存在,就用Alt+F4强行关闭,如果不存在,则继续下一个QQ号码 VBS set myfile=fso.opentextfile(CurrPath&"\xintool.log",forwriting) //以写方式打开日志文件 VBS myfile.writeline(QQNo) //写入刚操作完了的QQ号码,以方便下次继续任务 VBS myfile.Close //关闭文件 QQNo=QQNo+1 //QQ号码递增1 If QQNo>Int(endID) Goto 任务结束 EndIf //如果该号码大于设置的号码,则任务结束 Goto 喊话任务开始 Rem 任务结束 VBS set myfile=fso.opentextfile(CurrPath&"\xintool.log",forwriting) //以写方式打开日志文件 VBS myfile.writeline("MsgEnd") //写入任务完成信息 VBS myfile.Close //关闭文件 MessageBox "你所设置的广告任务已完成" //弹出窗口提示,任务完成
按键精灵qq临时会话
按键精灵qq
qq按键精灵