日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

用AutoIt写网页外挂系列之 开心网的X世界网页游戏自动送免费礼物

發布時間:2023/12/18 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用AutoIt写网页外挂系列之 开心网的X世界网页游戏自动送免费礼物 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

外掛是個不錯的東西, 它可以將你從重復和無聊的點擊中解放出來,幫助你更快的升級, 本文主要是針對開心網的X世界做的一個開發外掛教程。這個外掛的功能非常簡單,主要用來自動發送“急救包”給你的好友,開發這個外掛用到技術包括AutoIt和jQuery, 如果你有這2方面的經驗,應該能更好的理解以下的內容。

?

首先, 你要先登錄開心網。然后,轉到免費禮物頁面: “http://www.kaixin001.com/!spiderman/gift.php”。點擊右鍵->“查看源代碼”,在打開的窗口中搜索“急救包”, 我們注意到“急救包”所在的div塊, 它的id屬性是“free_Nlkuai_Inv”:

我們知道如果要發送一個免費禮品給好友,必須先點一個“送給好友”圖標 ,一般位于小窗口的底部。在源代碼的“急救包”下面第2行,大家能看到一個”a”標簽,它的title屬性正好就是“送給好友”, 這一行就是我們要找的點擊圖標。 我們可以看到它的class屬性值為”sr_butt”,那么, 我們在jQuery如何定位到這個元素呢? 其實很簡單, 可以參考以下代碼:

jQuery('#free_Nlkuai_Inv').find('.sr_butt')

?

我們的思路很簡單, 利用AutoIt找到這個發送按鈕節點,然后執行click事件。關于如何在AutoIt里使用JQuery,可以參考以前的文章“AutoIt結合JQuery開發教程”。打開AutoIt應用程序, 新建一個空白文件,主要代碼如下:

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

?

源代碼示例:http://files.cnblogs.com/zhaojin/kaixin_training.rar

轉載于:https://www.cnblogs.com/zhaojin/archive/2011/01/29/1947555.html

總結

以上是生活随笔為你收集整理的用AutoIt写网页外挂系列之 开心网的X世界网页游戏自动送免费礼物的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。