#RequireAdmin
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#PRE_Outfile=test.exe
#PRE_UseUpx=n
#PRE_Res_requestedExecutionLevel=None
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
Opt("SendKeyDownDelay", 20)
Global $wwpath, $idlist,$str
$str=FileRead(@ScriptDir&"\发送内容.txt")
$wwpath = IniRead(@ScriptDir & "\name.ini", "设置", "旺旺安装路径", "")
If Not FileExists($wwpath & "\AliIM.exe") Then
MsgBox(0, "错误", "指定的旺旺主程序不存在,请修改配置文件内相应项目~!")
Exit
EndIf
$idlist = IniReadSection(@ScriptDir & "\name.ini", "帐号=密码")
For $i = 1 To $idlist[0][0]
Dim $lasttitle = "", $Buttonid = 0, $wwuser, $wwpassword, $wwpid, $logonHWND, $userHWND, $n, $Buttonid = 0, $msgHWND, $title, $lasttitle = "lasttitle"
Dim $pos,$winpos
$wwuser = $idlist[$i][0]
$wwpassword = $idlist[$i][1]
;~ 删除安装目录残留的用户属性文件,防止群列表树显示不对应
DirRemove($wwpath & "\profiles\cnalichn" & $wwuser, 1)
$wwpid = Run($wwpath & "\AliIM.exe")
$logonHWND = WinWait("阿里旺旺2012", "", 10)
If Not IsHWnd($logonHWND) Then
MsgBox(0, "错误", "运行旺旺安装程序后为发现登陆窗口,请检查安装路径设置是否正确~!")
ExitLoop
EndIf
ControlClick($logonHWND, "", "StandardButton2")
Send("{DOWN}")
Send("{ENTER}")
ControlSetText($logonHWND, "", "EditComponent2", $wwuser)
ControlSend($logonHWND, "", "ATL:Edit1", $wwpassword)
;~ 以下为点登陆按钮代码,由于自动发送容易出现密码错误,所以做两次重试
BlockInput(1)
Sleep(300)
$pos=ControlGetPos($logonHWND, "", "StandardButton8")
$winpos=WinGetPos($logonHWND)
ControlClick($logonHWND, "", "StandardButton8")
Sleep(3000)
If Not WinExists($wwuser & "-阿里旺旺2012") Then MouseClick("left", $winpos[0]+$pos[0]+Int($pos[2]/2), $winpos[1]+$pos[1]+Int($pos[3]/2),1,0)
BlockInput(0)
$userHWND = WinWait($wwuser & "-阿里旺旺2012", "", 20)
If Not IsHWnd($userHWND) Then
MsgBox(0, "错误", "未检测到登陆后的旺旺窗口,请检查帐号密码设置是否正确~!")
ExitLoop
EndIf
Sleep(3000)
;~ 循环检测我的群按钮的控件id(此id为动态的)
For $n = 1000 To 2999
If StringInStr(ControlGetText($userHWND, "", $n), "群组") Then
$Buttonid = $n
ExitLoop
EndIf
Next
If $Buttonid = 0 Then
MsgBox(0, "错误", "获取(群组)按钮控件ID失败~!")
ExitLoop
EndIf
ControlClick($userHWND, "", $Buttonid)
WinActivate($userHWND)
ControlFocus($userHWND, "", "WWUI.SuperListView2")
ControlSend($userHWND, "", "WWUI.SuperListView2", "{HOME}")
ControlSend($userHWND, "", "WWUI.SuperListView2", "{DOWN}")
ControlSend($userHWND, "", "WWUI.SuperListView2", "{DOWN}")
Opt("WinTitleMatchMode", 2)
While 1
WinActivate($userHWND)
ControlFocus($userHWND, "", "WWUI.SuperListView2")
ControlSend($userHWND, "", "WWUI.SuperListView2", "{DOWN}")
ControlSend($userHWND, "", "WWUI.SuperListView2", "{ENTER}")
$msgHWND = WinWait("(群号:", "", 5)
If Not IsHWnd($msgHWND) Then ExitLoop
$title = WinGetTitle($msgHWND, "")
If $title = $lasttitle Then ContinueLoop
ControlSetText($msgHWND, "", "RichEditComponent1", $str)
;~ ControlSend($msgHWND, "", "RichEditComponent1", "^V")
ControlSend($msgHWND, "", "RichEditComponent1", "{ENTER}")
Sleep(500)
WinClose($msgHWND)
$lasttitle = $title
WEnd
Opt("WinTitleMatchMode", 1)
ProcessClose($wwpid)
Next
ProcessClose($wwpid)
Exit |