| Opt('MustDeclareVars', 1) Opt("SendKeyDelay",250) Local $objCOMError, $objAppIE, $jQuery $objCOMError = ObjEvent("AutoIt.Error", "_COMErrorHandler") ;~ //創建IE對象 $objAppIE = ObjCreate("InternetExplorer.Application") $objAppIE.visible = True ;~ //定義好友列表 Local $avArray[1] $avArray[0] = "a"; ;~ //入口方法 Main() Func Main() ??? FOR $element IN $avArray ??????? Sleep(1000) ??????? if(StringLen ($element) <= 0) Then ContinueLoop ??????? SendGift($objAppIE, $element) ??? Next EndFunc ;~ //點擊按鈕,發送免費禮物 Func SendGift($objAppIE, $user) ??? Local $url = "http://www.kaixin001.com/!spiderman/gift.php" ??? $objAppIE.navigate($url) ??? $jQuery = _insertjQuery($objAppIE) ;~???? //找到“救急包”,并執行click事件 ??? $jQuery.jQuery('#free_Nlkuai_Inv').find('.sr_butt').get(0).click() ;~??? //彈出窗口,定位到第一個文本框 ??? $jQuery.jQuery('#gift_friend').get(0).focus() ;~?? //執行click ??? $jQuery.jQuery('#gift_friend').get(0).click() ??? Sleep(1000) ;~??? //輸入好友名稱 ??? Send($user) ;~??? //循環,直到好友名稱返回 ??? Local $Count = 0 ??? Do ??????? Sleep(1000) ??????? $Count = $Count + 1 ;~??????? //返回的值 ??????? Local $userName = $jQuery.jQuery('.sgt_on').get(0) ??????? If(IsObj($userName) == 1) Then ??????????? ExitLoop ??????? Else ;~?????????? //如果沒有返回名稱,再次輸入用戶名 ??????????? $jQuery.jQuery('#gift_friend').get(0).focus() ??????????? $jQuery.jQuery('#gift_friend').get(0).click() ??????????? Send($user) ??????? EndIf ??? Until $Count == 5 ;~???? //無法找到該用戶名稱,返回 ??? If($Count == 5) Then ??????? Return ??? EndIf ;~??? //返回的名稱 ??? Local $userName = $jQuery.jQuery('#f_suggest_0').get(0) ??? If(IsObj($userName) == 1) Then ??????? Send("{ENTER}") ;~??????? //點擊“贈送”圖標 ??????? $jQuery.jQuery('.btn_con').find('.promote').get(0).click(); ;~???????? //成功窗口 ??????? Local $Succ = $jQuery.jQuery('.xworld_popup').find('.popup_con > .promote').get(0) ??????? If(IsObj($Succ) == 1) Then ?????????? Local $text = $Succ.innerText; ?????????? if("關閉" == $text) Then ????????????? $jQuery.jQuery('.popup_con').find('.promote').get(0).click() ?????????? EndIf ??????? EndIf ??? Else ;~????????? //關閉窗口 ????????? $jQuery.jQuery('.btn_con').find('.promote').get(1).click() ??? EndIf EndFunc Func _insertjQuery($objAppIE) ??? Local $objWindow, $objHead, $objScript ??? _IEPageLoadWait($objAppIE) ??? $objWindow = $objAppIE.document.parentWindow ??? $objHead = $objAppIE.document.getElementsByTagName('head').item(0) ??? If Not(IsObj($objWindow.jQuery)) Then ??????? $objScript = $objAppIE.document.createElement('script') ??????? $objScript.type = 'text/javascript' ??????? $objScript.defer = 'defer' ??????? $objScript.text = FileRead(@ScriptDir & '\jquery-1.4.2.min.js') ??????? $objHead.appendChild($objScript) ??????? While Not(IsObj($objWindow.jQuery)) ??????????? Sleep(100) ??????? WEnd ??????? $objWindow.jQuery.noConflict() ??? EndIf ??? Return $objWindow EndFunc Func _IEPageLoadWait($objAppIE) ??? Do ??????? Sleep(100) ??? Until ($objAppIE.readyState = 'complete' Or $objAppIE.readyState = 4) ??? Do ??????? Sleep(100) ??? Until ($objAppIE.document.readyState = 'complete' Or $objAppIE.document.readyState = 4) EndFunc Func _COMErrorHandler() ??? Switch $objCOMError.number ??? Case -2147352570 ??????? Return 0 ??? Case Else ; Don't use central errorhandler ??????? MsgBox(8240, "Automation Error", "Unhandled COM Automation Error." & @CRLF & @CRLF & _ ??????????????????? "This operation resulted in an unhandled error." & @CRLF & @CRLF & _ ??????????????????? "Technical Information: " & @CRLF & _ ??????????????????? "Error Number: " & $objCOMError.number & @CRLF & _ ??????????????????? "Error Description: " & $objCOMError.winDescription & @CRLF & _ ??????????????????? "Line Number: " & $objCOMError.scriptLine & @CRLF & @CRLF & _ ??????????????????? "Contact technical support for furthur help.") ??????? Exit ??? EndSwitch EndFunc |