AutoIt 确实是个很强大的脚本工具。
如果早知道有这个,当初是怎么都不会去学易语言的 (๑•̀ω•́๑)
这是个简单脚本 = ๛ก(ー̀ωー́ก)
用来增加歌单播放次数和个人的听歌量。
原理不过是模拟鼠标点击去播放歌单,循环完几支歌单跳到私人FM去播放音乐。
为什么要用这么笨的方法呢?实在是因为不会反编译,不然就直接用C++写个外挂hook关键函数很快就搞定了,大神一定就是这么做的
可我不是,只能这样了。 (,,•́.•̀,,)
#Region ;**** 参数创建于 ACNWrapper_GUI **** #PRE_icon=C:\windows\syswow64\SHELL32.dll|-44 #PRE_UseX64=y #PRE_Change2CUI=y #PRE_Res_requestedExecutionLevel=None #EndRegion ;**** 参数创建于 ACNWrapper_GUI **** #include <AutoItConstants.au3> Local $version = 1; ;version 为1,网易云2.0以上版本 ;version 为0,网易云1.9.X版本 ;不同版本,坐标略有不同,故区分 ;启动主线程 Main() Func Main() ;循环执行N次,N为要刷的歌单数量 Local $N = 8 For $i = 1 To $N ;检查网易云状态,并激活窗口 CheckWind() ;歌单播放 Playlist($i) ;执行间隔3秒 Sleep(1000 * 3) If $i = $N Then ;私人FM播放 PlayFM() ;关闭窗口 WinClose("[CLASS:OrpheusBrowserHost]") Exit EndIf Next EndFunc Func PlayFM() ;移动鼠标到左侧列表位置 If($version) Then MouseMove(50, 136, 0) Else MouseMove(50, 126, 0) EndIf ; 鼠标滚轮往上 12 次,到达列表顶部 MouseWheel($MOUSE_WHEEL_UP, 12) ;停止歌单播放 Send("{MEDIA_STOP}") Sleep(500) ;打开其它页面 If($version) Then MouseClick($MOUSE_CLICK_LEFT, 50, 400) Else MouseClick($MOUSE_CLICK_LEFT, 50, 268) EndIf Sleep(1000) ;点击私人FM If($version) Then MouseClick($MOUSE_CLICK_LEFT, 50, 138) Else MouseClick($MOUSE_CLICK_LEFT, 50, 126) EndIf Sleep(1000) ;播放下一首 Send("{MEDIA_NEXT}") Sleep(1000) EndFunc ;==>私人FM播放 Func Playlist($i) ;获取窗口坐标 ;Local $aPos = WinGetPos("[ACTIVE]") ;移动鼠标到左侧列表位置 If($version) Then MouseMove(100, 500, 0) Else MouseMove(100, 428, 0) EndIf ; 鼠标滚轮往上 12 次,到达列表顶部 MouseWheel($MOUSE_WHEEL_UP, 12) Sleep(500) $tVar = Floor($i /3) If($tVar) Then ; 鼠标滚轮往下滚动,每次100像素 MouseWheel($MOUSE_WHEEL_DOWN, $tVar) If($version) Then MouseMove(100, 500 + 32*$i - 100 * $tVar, 0) Else MouseMove(100, 428 + 26*$i - 100 * $tVar, 0) EndIf ; Else If($version) Then MouseMove(100, 500 + 32*$i, 0) Else MouseMove(100, 428 + 26*$i, 0) EndIf ; EndIf MouseClick( $MOUSE_CLICK_RIGHT) Sleep(500) Send("{ENTER}") EndFunc ;==>歌单播放 Func CheckWind() ;检查网易云是否启动 If WinExists("[CLASS:OrpheusBrowserHost]") Then ;MsgBox($MB_SYSTEMMODAL, "", "已经启动") Else ;未启动则手动启动 Run("cloudmusic.exe") ;等待窗口出现. WinWaitActive("[CLASS:OrpheusBrowserHost]", "", 10) Sleep(3000) EndIf ;显示窗口 WinSetState("[CLASS:OrpheusBrowserHost]", "", @SW_SHOW) ;最大化窗口 WinSetState("[CLASS:OrpheusBrowserHost]", "", @SW_MAXIMIZE ) ;激活窗口 WinActivate("[CLASS:OrpheusBrowserHost]") EndFunc ;==>状态检查
脚本在以下环境测试通过:
Win7 64位 + 网易云2.1.2原版
Win Server 2008 64位 + 网易云1.9.4绿色版