;
; QQ消息群发器V1.0 by nohacks
;
; QQ:23453161 web:http:
//hi
.baidu.com
/nohacksa
;
SendProc proc
LOCAL IsCheck,IsRet,Islen
mov IsRet,40
;检查循环设置
invoke SendDlgItemMessage,AppHwnd,IDC_CHK,BM_GETCHECK,0,0
mov IsCheck,eax
;检查展开设置
invoke SendDlgItemMessage,AppHwnd,IDC_CHK_LEN,BM_GETCHECK,0,0
mov Islen,eax
; 取用户输入
invoke GetDlgItemText,AppHwnd,IDC_EDT ,addr lpText,1024
;invoke LinkText,addr lpText,CTEXT(
" 本消息由AiQQ发送 "
) ;加点尾巴,^-^
start1:
invoke SetWindowForeground,QQHwnd ;QQ获取焦点
.
if
!eax
jmp
exit
.endif
start2:
.
if
IsExit
jmp
exit
.endif
invoke SimulateKey,IsRet,NULL,NULL,NULL ;向下或向上移动一次
.
if
IsCheck==0 && IsRet==38 ;如果循环设置关闭且光标向上就结束操作
jmp
exit
.endif
invoke SendReTurn
invoke Sleep,1000 ;等待窗口载入
invoke GetForegroundWindow ;取前台窗口
.
if
eax==QQHwnd
invoke SendReTurn ;没有创建新窗口,遇到分组,再回车下还原现场
;我们下移回车看下是否有窗口创建
invoke SimulateKey,IsRet,NULL,NULL,NULL ;
invoke Sleep ,100
invoke SendReTurn
invoke Sleep,100
invoke GetForegroundWindow
;下移回车后有3种情况:
;1,不在QQ窗口,为展开的分组
;2,在QQ窗口,没有展开
;3.到尾部
.
if
eax==QQHwnd ;没有窗口创建,说明分组没有展开,我们后退之前的操作
invoke SendReTurn ;回车
.
if
IsRet==40 && Islen ;注意必须为向下时
;invoke SendReTurn ;回车
invoke Sleep,100
invoke SimulateKey,38,NULL,NULL,NULL ;上移
;展开分组
invoke SendReTurn
.endif
;检查是否到尾部
invoke SimulateKey,IsRet,NULL,NULL,NULL ;按IsRet移动上或下方向键
invoke SendReTurn
invoke Sleep,1000
invoke GetForegroundWindow
.
if
eax==QQHwnd ;判断到达尾部 IsRet=取反(IsRet)
.
if
IsRet==40
mov IsRet,38
.
else
mov IsRet,40
.endif
jmp start2
.endif
.endif
.endif
start3:
invoke SetClipboardText,addr lpText ;设置输入到剪切板
invoke Sleep,100
invoke SimulateKey,VK_CONTROL,VK_V,NULL,NULL ;CTRL+V 粘贴
invoke Sleep,100
invoke SimulateKey,VK_MENU,VK_S,NULL,NULL ;ALT+S 发送
invoke Sleep,100
;invoke SimulateKey,VK_MENU,VK_C,NULL,NULL ;ALT+C 关闭
invoke GetForegroundWindow
.
if
eax!=QQHwnd
invoke SimulateKey,VK_MENU,VK_F4,NULL,NULL ;ALT+F4
.endif
invoke Sleep,1000
jmp start1
exit
:
invoke SendDlgItemMessage,AppHwnd,IDC_EDT,WM_ENABLE,TRUE,0
ret
SendProc endp