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绿色版

04-27 18:08